5.1 简介
有一些对象在JSP页面里面不用声明与初始化,并且不是静态的,但可以直接使用。这些对象就称之为内置对象,至于是为啥呢,就是因为JSP转译城java文件时,java文件会自己创建这些对象,所以我们在JSP中可以不用声明。常用的内置对象有resquest 、response、session、application、out
5.2 request对象
5.2.1 简介:
requst对象那个里封装的是用户请求的信息,比如登陆密码,账号等参数。
5.2.2 表单请求:
<form action="路径" method="get/post">
<input>
</form>
action的值是资源路径,不管是servlet还是jsp,都有自己的路径。
5.2.3 request中文转码:
String s1 = request.getParameter("...");
byte[] b = s1.getBytes("字符集编码"); //ISO-8859-1、utf8、gb2312等
s1 = new String(b);
上面是将request请求里的中文,以指定字符集编码格式从字符串解码回字节。假设原本的文字是utf8的,但是你解码回字节的时候,指定的字符集编码并不是utf8,并且重新把自己转换为字符,可能会乱码。
但是一般,我们都是用:
request.setCharacterEncoding("字符集编码");
5.2.5 常用方法
方法名 | 作用 | 备注 |
---|---|---|
getProtocol() | 获取请求所使用的协议 | |
getServletPath() | 获取用户请求的Servlet的路径 | |
getContentPath() | 获取当前web目录的服务目录,就是web根目录 | 在前端表单提交中,action=“${request.getContentPath}/…” |
getRemoteAddr() | 获取用户的IP | |
getRemoteHost() | 获取主机的名字,获取失败则返回IP | |
getServletName() | 获取服务器的名称 | |
getServletPort() | 获取服务器的端口号 |
5.2.6 input标记
名字 | 语法 | 备注 |
---|---|---|
文本框 | ||
单选框 | ||
复选框 | ||
密码框 | ||
隐藏输入 | 主要是为了传参数 | |
提交键 | ||
重置键 |
5.3 response对象
5.3.1 简介
前面提到的request是客户端请求,说白了就是给服务器发条消息。但是人家服务器也得回你消息啊,所以有了response对象。
5.3.2 contentType属性
简介: 服务器给客户端回消息,并不只是单纯地回一个文字,可能回了网页、图片什么的,因此我们可以动态设置响应的类型:response.setContentType(“参数”);
参数值: text/html、text/plain、image/gif等。
5.3.3 设置头文件
简介: 主要就是给网页传一些值,比如,多久自动刷新、时间、时间、编码、是否缓存等。
语法: response.setHeader(String head,String value);
例子:
Host: ilxdh.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Tue, 22 Jun 2021 14:21:53 GMT
If-None-Match: W/"60d1f201-1f74"
Cache-Control: max-age=0, no-cache
Pragma: no-cache
5.3.4重定向
简介: 就是页面跳转
语法: response.sendRedirect(“目标页面”);
响应状态码:
- 1xx:主要是实验性质的
- 2xx:用来表明请求成功的,例如,状态代码200可以表明已成功取得了请求的页面
- 3yy:用来表明在请求满足之前应采取进一步的行动。
- 4yy:当浏览器做出无法满足的请求时,返回该状态代码,例如404表示请求的页面不存在
- 5yy:用来表示服务器出现问题。例如,500说明服务器内部发生错误。
5.4 Session对象
5.4.1 简介
Http协议是无状态的协议,当客户端发出请求,服务器响应了,然后就没了,服务器并不会保留连接信息。每次的请求响应都是新的,这并不是能否区分两个不同的用户,而是根本就识别不了用户。假设一个网页里有两个请求,用户点了一个请求,然后又点了另一个,在用户看来这是自己一个人的行为。但是,在服务器看来,这是两个全新的请求,它根本就不知道是同一个人点的。**因此,tomcat使用了内置对象Session来记录连接信息。**说白了,就是服务器上,为每个用户开辟了一点点小空间。
5.4.2 SessionID
简介: SessionID是一个字符串,每个用户独立拥有,并且唯一。当客户访问服务器上的JSP或者Servlet时,服务器便会为客户创建一个session,并且以cookie的形式,把seesionID传回客户端,也就是浏览器。而每一次请求,又都会带着这个ID,于是服务器就知道了谁是谁。
5.4.5 Session对象存储数据
语法:
session.setAttribute(String key,Object value); //存入数据
session.getAttribute(String key,Object value); //获得数据
session.removeAttribute(String key); //移除数据
用处: 我们可以把用户实体类存入Session,用来判断用户当前的登录状态。或者我们把购物车临时存在session里面,毕竟反复对象数据库,服务器压力大。
5.5 application对象
5.5.1 简介
跟Session差不多,都是在服务器上面开辟了一个空间,但是这一次并不会因为客户不同而不同,同一个Web服务目录,共享application对象。就好比,可以不适用数据库,也可以建一个临时的留言板,反正大家都看得见。
5.5.2 语法
session.setAttribute(String key,Object value); //存入数据
session.getAttribute(String key,Object value); //获得数据
session.removeAttribute(String key); //移除数据
5.6 out对象
5.6.1 简介
一个输出流,用于给客户端输出数据。
5.6.2 常用方法
out.print(char)
out.println(char)
out.newLine()
out.flush()
内容并不完整,有空补充