服务器端(HttpSession)
Posted dotzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器端(HttpSession)相关的知识,希望对你有一定的参考价值。
阅读文本大概需要 2 分钟。
本篇是对 Servlet 中的关于 HttpSession 的介绍和讨论。
HttpSession 对象用于存储与特定客户端的整个会话,我们可以从 HttpSession 对象存储,查询和删除属性。任何 servlet 类都可以通过 HttpServletRequest 对象的getSession()方法中访问 HttpSession 对象。
工作原理
1. 在客户端的第一个请求中,Web 容器生成唯一的会话 ID,并通过响应将其返回给客户端,这是由 Web 容器创建的临时会话。
2. 客户端发送每个请求的会话 ID。使 Web 容器更容易识别请求的来源。
3. 该 Web 容器使用这个 ID,ID 为找到匹配的会话和会话与请求关联。
HttpSession接口
HttpSession重要的方法
getCreationTime(),返回创建会话的时间,以格林威治标准时间 1970 年 1 月 1 日午夜以来,单位为毫秒。
getId(),返回包含分配给会话的唯一标识符的字符串。
getLastAccessedTime() ,返回客户端上次发送与会话关联的请求的时间。
getMaxInactiveInterval(),返回最大无效的时间间隔,以秒为单位,换句话说就是会话过了多长时间会失效。
invalidate(),使会话无效。
isNew(),判断会话是否是新的。
setMaxInactiveInterval(int interval),设置会话过期时间。
HttpSession示例
index.html
<form method="post" action="Validate">
User: <input type="text" name="user" /><br/>
Password: <input type="text" name="pass" ><br/>
<input type="submit" value="submit">
</form>
web.xml
<web-app>
<servlet>
<servlet-name>Validate</servlet-name>
<servlet-class>Validate</servlet-class>
</servlet>
<servlet>
<servlet-name>Welcome</servlet-name>
<servlet-class>Welcome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Validate</servlet-name>
<url-pattern>/Validate</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Welcome</servlet-name>
<url-pattern>/Welcome</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Validate.java
public class Validate extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String name = request.getParameter("user");
String pass = request.getParameter("pass");
if(pass.equals("1234"))
{
//creating a session
HttpSession session = request.getSession();
session.setAttribute("user", name);
response.sendRedirect("Welcome");
}
}
}
Welcome.java
public class Welcome extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
String user = (String)session.getAttribute("user");
out.println("Hello "+ user);
}
}
funnyZhang,工科男
一条迷途的咸鱼,正在游向属于它的天地
恰同学少年风华正茂,数风流人物还看今朝
长按二维码关注funnyZhang
以上是关于服务器端(HttpSession)的主要内容,如果未能解决你的问题,请参考以下文章