用户会话

用户会话

一次会话(浏览器打开-浏览器关闭)包含多次request和response组成,同一个次会话sessionId相同,获得的session相同。

session

常用api

  • getId() 获取sessionId
  • getMaxInactiveInterval() 获得sesion失效时间,单位秒
  • setMaxInactiveInterval(int second) 设置失效时间
  • invalidate() session立刻失效
  • getAttribute(String) 获得属性
  • setAttribut(String,Object) 设置属性

场景

用户登录保存用户信息
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
    <form action="/loginServlet" method="post">
    <table>
        <tr>
            <td>用户名</td>
            <td><input id="name" name="name" type="text"></td>
        </tr>
        <tr>
            <td>密码</td>
            <td><input id="password" name="password" type="password"></td>
        </tr>
    </table>
    <input type="submit" name="提交" value="提交"/>
    </form>
</body>
</html>
<servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.claudxyz.servlet.LoginServlet</servlet-class>
    <init-param>
        <param-name>name</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>password</param-name>
        <param-value>root123</param-value>
    </init-param>
</servlet>
<servlet-mapping>
     <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
    @Override
    //登陆
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        String password = req.getParameter("password");

        ServletConfig servletConfig = this.getServletConfig();
        resp.setContentType("text/html;charset=UTF-8");
        if(name.equals(servletConfig.getInitParameter("name")) && password.equals(servletConfig.getInitParameter("password"))){
            HttpSession session = req.getSession();
            session.setAttribute("userName",name);
            resp.sendRedirect("Welcome.jsp");
        }else{
            resp.sendRedirect("login.jsp");
        }
    }
    @Override
    //登出
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        session.invalidate();
        resp.sendRedirect("login.jsp");
    }
用户会话的一种方式,客户端浏览器存储,小文本形式,保存cookie后请求和响应会来回传递,直到cookie失效

创建

    Cookie cookie = new Cookie("name","hello");
    response.addCookie(cookie);

获取

    Cookie[] cookies = request.getCookies();
    for (Cookie cookie : cookies){
        System.out.println(cookie.getName() + ":" + cookie.getValue());
    }

常用api

  • getMaxAge() 获得cookie失效时间,-1代表关闭浏览器失效
  • setMaxAge(int) 设置cookie失效时间
  • getName() 获得key
  • getValue() 获得value
posted @ 2020-03-07 21:09  末日浪漫  阅读(210)  评论(0)    收藏  举报