javaweb jsp整理 九大内置对象 - 猫九丶

zhushijun 2021-08-26 原文


javaweb jsp整理 九大内置对象

jsp, java server page
jsp页面是在服务器上运行的一个页面

动态网页
与后台有数据交互的页面

与其他语言的区别:
jsp 使用java语言进行开发, 安全性高, 适合大型项目, 企业级的文本应用
分布式项目, 服务器集群, hadoop
asp.net 使用c#, .Net平台, 简单易用, 因为不开源, 所以安全性低, 并且不能跨平台
使用.Net开发项目, 最好使用windows系统和sqlserver数据库
php 简单 高效 成本低 开发周期短, 适合中小型企业的web应用开发
php的黄金搭档—(LAMP: linux, Apache, Mysql, PHP)

Tomcat介绍
conf—Tomcat的所有配置
webapps—需要部署的项目
work—Tomcat运行之后编译的文件
lib运行Tomcat服务器所需要的 jar 文件

运行项目的虚拟路径
右键点击项目 –> properties –> web project settings –> context root 更改这个名字就可以修改项目的虚拟路径
改完以后要重新部署项目并且重新启动Tomcat

jsp的组成元素;
1, 指令
page指令
<%@ page ……….%>
language—当前页面使用的语言:java
import—当前页面引入的类库, 默认是啥也不引入
contentType—text/html; charset=\’字符集\’
iso-8859-1是字符集的默认值, 纯英文的字符集
include指令
taglib指令
2, 表达式
<%=变量名%>
3, 脚本
<% 代码内容 %>
4, 声明
<%! 代码声明 %>
5, 注释
可见<!– –>
不可见<%– –%>
脚本中使用的注释
/**/, //
?6, 一些静态内容

jsp九大内置对象:
5, response 响应对象
6, page 当前页面对象
7, out 输出流对象
8, exception 异常
9, config ServletConfig/FilterConfig对象

作用域(每一种作用域的生命周期是不一样的):
1, application 全局作用域
2, session 会话作用域
3, request 请求作用域
4, pageContext 页面作用域

 

优先级(按照生命周期的长短):
application > session > request > pageContext
ai pu \’lei kei shen>sai\’shen>rui\’kuai \’si\’t>pei\’zhi\’ kang\’tai\’si\’t

页面中的form表单提交方式:
post:
提交内容不可见, 没有长度限制
get:
有长度限制, 提交内容在地址栏可见

request对象:
request对象是HttpServletRequest这个类的实例
常用方法:
String getParameter(String name)—返回name指定的参数的值
String[] getParameterValues(String name)—返回一个数组, 是包含那个参数名的所有的人
void setAttribute(String, Object)—设置某个作用域中的属性
Object getAttribute(String name)—获取某个作用域中的属性
String getServerName()—返回请求服务器的主机名
String getContentType()—返回请求体的MIME类型
String getprotocol()—返回请求用的协议类型和版本号
int getServerPort()—获取服务器的端口号
int getContentLength()—返回请求体的长度(单位是字节)
String getRemoteAddr()—返回发送此请求的客户端的IP地址
String getRealPath(String path)—返回传入的这个路径的物理路径
String getContextPath()—返回上下文路径

解决request中出现中文乱码的问题
post方式:
通过使用request.setCharacterEncoding(“utf-8”)来设置
get方式:
通过修改Tomcat服务器中的server.xml配置文件来设置

response对象
response对象是HttpServletResponse的实例
常用方法;
setCharacterEncoding(String name)—设置响应页面使用的字符编码
setContentType(“text/html; charset=utf-8”)—设置(MIME类型)请求头
response.getWriter().append(String content)—向页面输出一段字符串
out对象的类型是JspWriter, 而response.getWriter()是一个PrintWriter, out对象也可以通过pageContext.getOut()获得, 这两个对象的类型不一样

out.print(null);会抛出异常, PrintWriter.print(null)不会抛出异常

JspWriter是一个抽象类, PrintWriter是一个继承了Writer的普通类

getWriter()方法可以在页面上输出一串字符, out也是一个输出对象, 两者的区别在于, getWriter()方法的执行结果, 总是优先于out对象, 可以使用out.flush()方法, 强行属性缓冲区的内容, 将out对象的输出结果先输出出来

造成这种现象的原因:
out对象实际上对PrintWriter是有依赖的, 他需要先将需要输出的内容存到response的缓冲区里面, 然后等待jsp页面中的out满足一定条件之后, 才会调用输出的方法把内容直接输出到页面上

而PrintWriter是可以直接输出出来的

转发和重定向(面试98%会问)
response.sendRedirect(String location)—请求重定向
客户端行为, 从本质上讲相当于两次请求, 第一次请求的对象不会被保存, 地址栏的Url地址会改变
request.getRequestDispatcher().forward(request, response)—请求转发
服务器行为, 相当于一次请求, 转发后请求对象会被保存, 地址栏url不会改变
举例说明: 办证
Session对象
session指的是用户在进入一个网站开始到关闭浏览器的时间, Tomcai服务器默认的session有效时间是30分钟, 也就是说, 打开一个网站30分钟之内没有动作, session对象同样也会失效
session存在服务器的内存中, 服务器中不同的用户对应的session也是不同的, 所以服务器用来判断当前登录的用户是否是同一个的时候就需要session
session对象是HttpSession的实例
常用方法:
long getCreationTime()—返回session对象创建的时间
String getId()—返回一个sessionid, 是唯一的
void setAttribute()—设置一个属性和一个属性值
Object getAttribute()—获取某个属性的属性值
String[] getValueNames()—以数组的形式获取session对象中所有可用属性的属性名
setMaxInactiveInterval()—设置session经过多长时间之后失效(默认30分钟)
getMaxInactiveInterval()—设置session的失效时间(单位是秒)

session的生命周期:
创建: 当用户第一次访问某个jsp或者servlet的时候, 服务器就会为当前的访问创建一个session, 并生成一个sessionId, 每次客户端向服务器发送请求的时候, 都会将这个sessionId带过去进行验证

活动: 在这个页面的各种活动, 比如通过超级连接打开另一个页面, 或者进行各种增删改查的操作, session失效除非要等到浏览器的相关页面全部关闭, 或者session超时, 当再次访问的时候会创建一个新的session, 但是原来的session还会存在, 只不过没有任何请求再带着那个旧的sessionId让服务器去验证了

销毁:
三种方法可以销毁session
1, 调用session.invalidate()方法
2, session自己过期了
设置session过期时间也可以在web.xml中设置
<session-conf>
<session-timeout>
10<!– 单位是分钟 ! –>
</session-timeout>
</session-conf>
3, 服务器重新启动

发表于
2017-07-01 08:35 
猫九丶 
阅读(186
评论(0
编辑 
收藏 
举报

 

版权声明:本文为zhushijun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhushijun/p/7101287.html

javaweb jsp整理 九大内置对象 - 猫九丶的更多相关文章

  1. 关于内存地址和内存空间的理解。 – VIPler

    关于内存地址和内存空间的理解。 1.内存地址用4位16进制和8位16进制表示的区别。例如经常可以看到某些书籍上 […]...

  2. Broadcom BCM94352z/DW1560驱动新姿势 – iitrust

    转自:https://blog.daliansky.net/Broadcom-BCM94352z-DW1560 […]...

  3. ALLTOALL在线格式转换 – Hi,王松柏

    ALLTOALL在线格式转换 PDF转WORD 以及更多 免费的在线格式转换工具 https://www.al […]...

  4. 帮你看懂 网络适配器 / 网卡

      右键“此电脑” -> “管理” -> “设备管理器” -> “网络适配器&# […]...

  5. 工控协议 – lydstory

    工控协议 OPC、Modbus、DNP3、IEC104、IEC61850、MMS、S7...

  6. xls0-python3my使用python.pandas修改excel样式 – shuzihua

    xls0-python3my使用python.pandas修改excel样式 xls0-python3my使用 […]...

  7. Zeus Rewrite – bluesky

    Zeus Rewrite Zeus Web Server 在虚拟主机配置中找到 Request Rewriti […]...

  8. 如何基于匹配预设句式,动态提取用户评价标签 – 马蜂窝技术

    如何基于匹配预设句式,动态提取用户评价标签 如何在保证标签内容准确性的同时,体现出更符合用户语言习惯、让用户更 […]...

随机推荐

  1. 老人桌面===花花绿绿的桌面

    最近着手一个老人桌面的改造,下面简单罗列一下市场上主流的老人桌面,使用数据是360手机助手上的。   1.如意 […]...

  2. Servlet入门详细教程(你不得不知道的Servlet知识点)

    “人生如一杯茶,不会苦一辈子,但要苦一阵子。”你好,我是梦阳辰!和我一起学习起来吧!   文章目录 01.Ja […]...

  3. 使用阿里云的短信服务发送短信 – 伍华聪

    使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商 […]...

  4. Web测试——翻页功能测试用例

    参考:https://wenku.baidu.com/view/e6462707de80d4d8d15a4f1 […]...

  5. JVM 初始

      我们刚学习java的时候,从来没有想过new一个对象后,需要我们手动去管理过他的内存空间释放,因为我们知道 […]...

  6. win10安装部分软件报错“应用程序无法启动,应用程序并行配置不正确,或使用命令行sxstrace.exe”

    1.操作系统win10企业版,激活。安装spssinc(生物分析软件),提示错误如下:   2.百度了很多方法 […]...

  7. CSS3 线性渐变(linear-gradient)

     CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradien […]...

  8. 70个Python练手项目列表(都有完整教程)

    70个Python实战项目列表,都有完整且详细的教程,你可以从中选择自己想做的项目进行参考学习练手,你也可以从 […]...

展开目录

目录导航