jsp 会话

session和cookie的区别:
1、session是保存在服务器端,cookie是保存在客户端。
2、session可以保存任何对象,cookie只能保存字符串对象。
3、session更安全,cookie不安全,不能存储敏感数据,对保存的数据进行加密处理。
4、session默认过期时间30分钟,cookie默认过期时间关闭浏览器后。
5、session适合保存客户状态,cookie适合保存持久化的数据状态。

 

1.Session对象

session机制是一种服务器机制,在服务器保存信息,当程序接收到客户端的请求时,服务器首先会检查这个客户端是否已经创建了Session.

session保存数据:

session.setAttribute(String key,Object value)

session中读取数据:

(Object)session.getAttribute(String key)

 

方法                 返回值类型                                            说明                          
setAttribute(String key,Object value) void 以key-vlaue的形式保存对象值
getAttribute(String key) Object 通过key获取对象值
getId() String 获取sessionID
Invalidate void 设置session对象失效
setMaxInactiveInterval(int interval) void 设置session的有效期
removeAttribute(String key) void 移除session中的属性

注册页面

    if(username.equals("admin")){
            //不允许注册,返回注册页面
            request.setAttribute("mess", "注册失败,请使用其他用户名");
            //response.sendRedirect("login.jsp");//返回注册页面没有任何提示信息(实现页面跳转)
            request.getRequestDispatcher("login.jsp").forward(request, response);//返回注册页面并提示信息
        }else{
            //注册成功
            session.setAttribute("user", username);//session保存数据
            response.sendRedirect("newsDetail.jsp");
        }

注册成功 后跳转到的页面

        <%     Object o=session.getAttribute("user");
            if(o==null){
                //显示用户名密码,可在此登陆(java代码和HTML代码结合使用情况)
            %>    
            <label>用户名</label><input type="text" name="uname" /><label>密码</label><input type="text" name="upassword" /><button>登录</button>
            <%
            }else{
                //显示“欢迎你,xxx”
                out.print("欢迎你,"+o.toString());
            }
        %>

 session有效期的设置

if(username.equals("admin")){
            //不允许注册,返回注册页面
            request.setAttribute("mess", "注册失败,请使用其他用户名");
            //response.sendRedirect("login.jsp");//返回注册页面没有任何提示信息(实现页面跳转)
            request.getRequestDispatcher("login.jsp").forward(request, response);//返回注册页面并提示信息
        }else{
            //注册成功
            session.setAttribute("user", username);//session保存数据
            //session.setMaxInactiveInterval(10);//设置有效期为10秒
            response.sendRedirect("newsDetail.jsp");
        }
    <%     Object o=session.getAttribute("user");
            if(o==null){
                //显示用户名密码,可在此登陆(java代码和HTML代码结合使用情况)
            %>    
            <label>用户名</label><input type="text" name="uname" /><label>密码</label><input type="text" name="upassword" /><button>登录</button>
            <%
            }else{
                //显示“欢迎你,xxx”
                out.print("欢迎你,"+o.toString());
                
                %>
                &nbsp;<a href="userLogout.jsp">注销</a>//创建注销链接
                <% 
            }
        
        %>

tomcat中wed.xml设置失效(这里10表示10分钟)

   </welcome-file-list>
        <session-config>
            <session-timeout>10</session-timeout>
        </session-config>
</web-app>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。