什么是JSP内置对象
JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以使用的对象。
JSP中的常用内置对象
- out
out是在JPS开发中使用最频繁的,也是最简单的。out用于输出数据。
<%
out.print("Hello World");
%>
- request
request用于处理有关浏览器的请求信息,可以通过调用request对象的方法来获取请求中的数据及浏览器中的相关信息。
request对象的常用方法
名称 | 说明 |
---|
String getParameter(String name) | 根据页面表单组件名称获取页面提交数据 |
String[] getParameterValues(String name) | 获取一组以相同名称命名的表单组件提交的数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码,可以解决中文乱码问题 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个RequestDispatcher对象,该对象的forward()用于转发请求 |
- response
response用于设置响应参数及取得响应流等。
response对象的常用方法
名称 | 说明 |
---|
void addCookie(Cookie cookie) | 向客户端添加Cookie |
void setContentType(String type) | 设置HTTP响应的contentType类型 |
void setCharacterEncoding(String charset) | 设置响应所采用的字符编码类型 |
void sendRedirect(String location)[常用] | 将请求重新定位到一个新的URL上 |
- session
session对象允许用户访问会话的相关信息,以及绑定数据到会话。绑定到会话的数据可以在多次请求之间持续有效。
session对象的常用方法
名称 | 说明 |
---|
String getId | 获取sessionId |
void setMaxInactiveInterval(int interval) | 设定session的非活动时间 |
int getMaxInactiveInterval() | 获取session的有效非活动时间,以秒为单位 |
void invalidate() | 设置session对象失效 |
void setAttribute(String key,Object value) | 以key/value 形式将对象保存到session中 |
Object getAttribute(String key) | 通过key获取session中保存的对象 |
void removeAttribute(String key) | 从session中删除指定key对应的对象 |
提交时解决中文乱码的方法
- 以post方法提交表单数据
调用request对象的setCharacterEncoding(“UTF-8”)方法,将请求的解码方式设为UTF-8。 - 以get方法提交表单数据
get调用request对象的setCharacterEncoding方法是不起作用的,需要得到请求参数值进行编码转换。
或者设置Tomcat的字符集。找到Tomcat的server.xml配置文件,在中添加URIEncoding属性,将值设为"UTF-8"。
String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
<Connector port="4399" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URLEncoding="UTF-8"/>
转发与重定向
- 什么是转发
转发就是客户端发送一个请求到服务器,服务器在容器内部完成请求跳转,然后将最终结果发送给浏览器。整个过程都是在容器内部完成的,因而客户端的URL地址不会发生改变。转发可以在多个页面交互过程中实现请求数据的共享。
转发的实现
request.getRequestDispatcher("html/jsp文件地址").forward(request,response);
- 什么是重定向
重定向是客户端重新向服务器请求一个地址链接,因为是发送新的请求,因而上次请求中的数据将随之丢失,这种行为称为重定向。由于服务器重新定向了URL,因而客户端浏览器中显示的是新的URL地址,所以重定向可以理解为浏览器至少提交了两次请求。
重定向的实现
response.sendRedirect("html/jsp文件地址");
会话和include指令
- 什么是会话
会话机制是一种服务器端的机制,当用户向服务器发出第一次请求时,服务器会为该用户创建唯一的会话,会话将一只延续到用户访问结束。
服务器判断是否创建会话是通过一个唯一的标识sessionid来实现的。 - 会话的失效
使会话失效的方式有两种:一种是会话超时,另一种时手动调用方法设置失效。
会话超时是指:两次请求的时间间隔超过了服务器允许的最大时间间隔。
手动调用方法设置失效是通过session对象的invalidate()方法实现的,主要用于用户注销的场合。 - include
include指令表示,在JSP编译时插入一个包含文本或代码的文件,这个包含的过程是静态的。包含的文件可以是JSP页面、HTML页面、文本文件等。
<%@ include file="文件路径" %>