请求转发与请求重定向
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"%>
<%
response.setContentType("text/html;charset=utf-8");//设置响应的MIME号
out.println("<h1>response内置对象</h1>");
out.println("<br>");
PrintWriter outer = response.getWriter();//获得输出流对象
outer.println("我是response对象生成的输出流outer对象");
//请求重定向
//response.sendRedirect("request.jsp");
//请求转发
request.getRequestDispatcher("request.jsp").forward(request,response);
%>
什么是session
session表示客户端与服务器的一次会话
web中的session指的是用户在浏览器某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间
session实际上是一个特定的时间概念
在服务器的内存中保存着不同用户的session
JSP内置对象
session对象
session对象是一个JSP内置对象
session对象在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象
session对象是HttpSession类的实例。
session对象常用方法如下:
long getCreationTime():返回SESSION创建时间
public String getId():返回SESSION创建时JSP引擎为它设唯一ID号
public Object setAttribute(String name,Object value):使用指定名称将对象绑定到此会话
public Object getAttribute(String name):返回与此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,返回null
String[] getValueNames():返回一个包含此SESSION种所有可用属性的数组
int getMaxInactiveInterval():返回两次请求间隔多长时间此SESSION被取消(单位秒)
<body>
<h1>session内置对象</h1>
<hr>
<%
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
Date d =new Date(session.getCreationTime());
%>
S创建时间:<%=sdf.format(d) %><br>
</body>