温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Session对象如何使用

发布时间:2022-09-28 15:36:49 来源:亿速云 阅读:167 作者:iii 栏目:编程语言

这篇文章主要介绍“Session对象如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Session对象如何使用”文章能帮助大家解决问题。

session在网络中被称为会话。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,知道关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。

创建及获取客户端的会话

setAttribute()方法:将信息保存在session范围内

session.setAttribute(String name, Object obj)

参数说明:

name:用于指定作用域在session范围内的变量名

obj:保存在session范围内的对象

getAttribute()方法:获取保存在session范围内的信息

session.getAttribute(String name)

参数说明:

name:指定保存在session范围内的关键字

说明:getAttribute()方法的返回值是Object类型,如果将获取到的信息赋值给String类型的变量,则需要进行强制类型转换或是调用其toString()方法。

移除session中指定的对象

session.removeAttribute()方法:移除存储在session会话中的对象

session.removeAttribute(String name)

参数说明:

name:指定作用域在session范围内的变量名。一定要保证该变量在session范围内有效,否则将抛出异常。

销毁session

session.invalidate()方法:销毁session

session.invalidate()

说明:session对象被销毁后,将不可以再使用该session对象了。如果在session被销毁后,再调用session对象的任何方法,都将报出Session already invalidated异常。

session会话超时管理

在应用session对象时应该注意session的生命周期。一般来说,session的生命周期在20~30分钟之间。当用户首次访问时将产生一个新的会话,以后服务器就可以记住这个会话状态,当会话生命周期超时时,或者服务器端强制使会话失效时,这个session就不能使用了。在开发程序时应该考虑到用户访问网站时可能发生的各种情况,例如用户登录网站后在session的有效期外进行相应的操作,用户会看到一张错误页面。这样的现象时不允许发生的。为了避免这种情况的发生,在开发系统时应该对session的有效性进行判断。

session.getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间

session.getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔

session.setMaxInactiveInterval():以秒为单位设置session的有效时间

session.getLastAccessedTime();session.getMaxInactiveInterval();session.setMaxInactiveInterval(int arg);

参数说明:

arg:seesion的有效期(单位:秒)

session对象的应用实例

index.jsp:提供用户输入用户名的文本框,并提交到session.jsp页面中

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session对象的使用-index.jsp</title></head><body><form id="form1" name="form1" method="post" action="session.jsp">
    <div align="center">
        <table width="28%" border="0">
            <tr>
                <td width="36%">
                    <div align="center">您的名字是:</div>
                </td>
                <td width="64%">
                    <label>
                        <div align="center">
                            <input type="text" name="name" />
                        </div>
                    </label>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <label>
                        <div align="center">
                            <input type="submit" name="Submit" value="提交" />
                        </div>
                    </label>
                </td>
            </tr>
        </table>
    </div></form></body></html>

session.jsp:将用户名保存到session中,并提供用户输入最喜欢去的地方的文本框

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session对象的使用-session.jsp</title></head><body>
    <%
        String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");      //获取用户填写的用户名        session.setAttribute("name", name);             //将用户名保存到session对象中
    %>
    <div align="center">
        <form id="form1" name="form1" method="post" action="result.jsp">
            <table width="28%" border="0">
                <tr>
                    <td>您的名字是:</td>
                    <td><%=name %></td>
                </tr>
                <tr>
                    <td>您最喜欢去的地方是:</td>
                    <td><label>
                        <input type="text" name="address" />
                    </label></td>
                </tr>
                <tr>
                    <td colspan="2"><label>
                        <div align="center">
                            <input type="submit" name="Submit" value="提交" />
                        </div>
                    </label></td>
                </tr>
            </table>
        </form>
    </div></body></html>

result.jsp:获取session中的用户名对象,再获取session.jsp页面提交过来的最喜欢去的地方,并在页面中显示出来

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session对象的使用-result.jsp</title></head><body>
    <%
        String name = (String)session.getAttribute("name");     //获取保存在session范围内的对象        String solution = new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8");
        //获取用户输入的最喜欢去的地方
    %>
    <form id="form1" name="form1" method="post" action="">
        <table width="28%" border="0">
            <tr>
                <td colspan="2"><div align="center"><strong>
                    显示答案                </strong></div></td>
            </tr>
            <tr>
                <td width="49%"><div align="left">
                    您的名字是:                </div></td>
                <td width="51%"><label><div align="left">
                    <%=name %>
                </div></label></td>
            </tr>
            <tr>
                <td><label><div align="left">
                    您最喜欢去的地方是:                </div></label></td>
                <td><div align="left">
                    <%=solution %>
                </div></td>
            </tr>
        </table>
     
    </form></body></html>

关于“Session对象如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI