JSP 内置/隐式对象
参考 http://www.runoob.com/jsp/jsp-implicit-objects.html
JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量
JSP所支持的九大隐式对象
缓冲区:内存中的一块区域用来保存临时数据。
一粒一粒米和一碗米
1. out对象
2. request对象
a标签实例get方法
<a href="dologin.jsp?username=李四&&password=123">href提交</a>
表单的两种提交方式:get和post
get:安全性低,但效率低,最多不能超过2KB。
post:将用户提交的信息封装到HTML HEADER内。
在.jsp页面中,下列代码 可以 解决中文乱码问题
<% request.setCharacterEncoding("utf-8"); %>
或者
<%
// 解决中文乱码的问题
String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");
%>
request的一些方法
<% request.setCharacterEncoding("utf-8"); %>
请求体的真实路径<%= request.getRealPath("/") %><br>
请求体的上下文路径,项目虚拟路径<%= request.getContextPath() %>
3. response对象
response对象有页面作用域,其他页面的response对象对该页面无效
response.getWriter()获得输出流对象输出 提前于内置的out对象
<body>
<%
response.setContentType("text/html; charset=utf-8");
out.println("<h1>response内置对象</h1>");
//out.flush(); //可以实现先输出内置的out对象
PrintWriter outer = response.getWriter();//获得输出流对象
outer.println("大家好,我是response对象获得的输出流对象");
%>
</body>
请求重定向:重新定向客户的的请求
如果index.jsp页面有如下代码,当用户请求index.jsp时,就会跳转到dologin.jsp页面
<%
//out.flush(); 如果不注释掉,会抛出异常
response.sendRedirect("dologin.jsp");//请求重定向
request.getRequestDispatcher("dologin.jsp").forward(request, response);//请求转发
%>
请求重定向与请求转发的区别
请求重定向是客户器端行为而请求转发是服务器端行为
从用户角度来说,如果是请求转发,用户不知道A局的人去找了B局。
4. session对象
session 保存在服务器的内存中
session:从一个客户打开浏览器连接到服务器开始,到关闭浏览器离开这个服务器结束,这个过程被称为一个会话
session在各个浏览器之间可以保存
session:把这个服务器的所有页面都关闭或者在同一页面停留太久,没有请求
session生命周期
1.三个阶段:创建,活动和销毁
2.销毁session的三种方法:
(1)调用方法session.invalidate();
(2)当session处于非活动状态超过 超时时间,默认超时时间30分钟
两种方式设置session的超时时间
方式1 : 调用方法session.setMaxInactiveInterval(60);
单位是秒
方式2:在项目的xml文件中配置,单位是分钟
<!-- 设置session的超时时间 -->
<session-config>
<session-timeout>3</session-timeout>
</session-config>
(3)服务器重启,会销毁所有的session
3.如果把本次会话的所有页面都关闭,再重新打开这个服务器的某个页面,会创建新的session,但是旧的session也还存在,并没有被销毁,只是处于非活动状态。等到了超时时间,才会被销毁
5. application对象
开始于服务器启动,终止于服务器关闭