javaweb学习(6)--Session

来源:互联网 发布:淘宝banner图片 编辑:程序博客网 时间:2024/06/05 05:37

Session

    和cookie类似,但是session是保存在服务器端的缓存    给当前的浏览器窗口赋一个id,这个sessionId就是这块缓存的值。    如果当前浏览器支持cookie,则会保存这个id到cookie里面,每次调用的时候就会从cookie里面取出这个值,然后访问服务器。    如果浏览器不支持cookie,则需要通过URL重写的方式,会在地址后面加上session(resp.encodeURL())。    只要是 同一个窗口下&&同一app 下的servlet和jsp都共享同一个session

下面贴代码:
主要有几个地方注意的就是下面获取session主要是2种途径,一种是在cookie里面获取,一种是在URL里面重写。
后面添加了往session里面写东西的代码

//请求地址http://localhost:8080/test/SessionInfoServletpublic class SessionInfoServlet extends HttpServlet{    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        HttpSession mSession = req.getSession(true);            resp.setContentType("text/html");        PrintWriter writer = resp.getWriter();        writer.println("<html>");        writer.println("<head>");        writer.println("<title>Session信息</title>");        writer.println("</head>");        writer.println("<body>");        //访问的时候就有cookie,这时候查看他的信息        writer.println("<h3>Session infomation</h3>");        writer.println("new Session: "+ mSession.isNew());        writer.println("<br /> Session ID: " + mSession.getId());        writer.println("<br /> Session created time: " +                 new java.util.Date(mSession.getCreationTime()));        writer.println("<br /> Session Accessed  time: " +                 new java.util.Date(mSession.getLastAccessedTime()));        //请求时候的session        writer.println("<h3>request infomation</h3>");        writer.println("<br /> Session ID from request: " + req.getRequestedSessionId());        writer.println("<br /> Session via cookie: " + req.isRequestedSessionIdFromCookie());        writer.println("<br /> Session via url: " + req.isRequestedSessionIdFromURL());        writer.println("<br /> Valid Session ID: " + req.isRequestedSessionIdValid());        //使用cookie,获取session        writer.println("<br /> <a href=\"SessionInfoServlet\">refresh</a>");        //使用URL重写的方式        //writer.println("<br /> <a href=" +resp.encodeRedirectURL("SessionInfoServlet")+ ">refresh</a>");        //往session里面写东西,一般是键值对        Integer accessCount = (Integer) mSession.getAttribute("accessCount");        if(accessCount==null){            accessCount=new Integer(0);        }else{            accessCount=new Integer(accessCount.intValue()+1);        }        mSession.setAttribute("accessCount", accessCount);        writer.println("<h3>accessCount:"+accessCount+"</h3>");        writer.println("</body></html>");        writer.close();    }}
0 0
原创粉丝点击