JSP----session

session对象是java.servlet.http.HttpServlerSession 接口的实例。

在session 中,最重要的就是属性的操作,可是对属性的操作除了setAttribute( )  getAttribute( )   removeAttribute( )  之外,还有一组废弃了的属性操作。

1、session id

   每一个用户实际上表示一个个不同的session, 那么服务器就是靠session id 来区分这些用户的。即,每个通过浏览器连接到服务器上的用户都会由服务器自动分配的唯一的编号。取得这个ID 使用的 public string getId( ).

<body>
<%String id = session.getId();%>
  id=<%=id %><br>
  id长度=<%=id.length() %>
</body>

这里可以看出,id 的操作不是成对的,因为id 是由服务器自动分配的,不需要set。而且服务器重启之后,则session id 需要重新分配。但是可以通过在server.xml中自动配置,完成序列化操作可以保留session id

2、登录以及注销

登录

session 在所有项目中使用最多的就是 登录以及注销。

<body>
<form action="aa.jsp" method="post"> // -------先创建一个登录界面的表单----------
用户名:<input type="text" name="uname">
密码: <input type="password"name="upass"><br>
      <input  type="submit" value ="登录">
      <input  type="reset" value ="重置">
      </form>
      
      <%  //直接通过一个固定的用户名和密码
      String name =request.getParameter("uname");
      String passw =request.getParameter("upass");
      //---------这里固定用户zpp以及密码1234.并判断在上面登录界面中输入的是否与固定用户相同------------
      if("zpp".equals(name)&&"1234".equals(passw)){            
       %>           
  <h3>用户登录成功</h3> 
  <%} else
	{%>
	<h3>用户登录失败</h3>
	<%} %>
</body>
// 这里没有数据输入时,也被判为与固定用户不相等

 输出: 

所以应该先判断输入的用户名以及密码是否为空

<body>
<form action="session.jsp" method="post"> // 这里的form 是提交到自己的页面!!!(本程序运行于session.jsp中)
用户名:<input type="text" name="uname">
密码: <input type="password"name="upass"><br>
      <input  type="submit" value ="登录">
      <input  type="reset" value ="重置">
      </form>
      <%  //直接通过一个固定的用户名和密码
      String name =request.getParameter("uname");
      String passw =request.getParameter("upass");
      if(!(name==null||"".equals(name)||passw==null||"".equals(passw))) //  判断是否为空!!
     { if("zpp".equals(name)&&"1234".equals(passw)){
       
           // 如果登录成功,则设置session属性范围。。这样在跳转后的页面可以通过session.getAttribute("userid")来判断是否为注册过的用户
         session.setAttribute("userid", name);
         response.setHeader("refresh","2;URL=hello.jsp");        
       %>     
  <h3>用户登录成功,2秒后自动跳转到欢迎页面,<a href="hello.jsp">如果没有跳转请点击这里</a></h3>
  <%} else
    {%>
    <h3>用户登录失败</h3>
    <%}} %>
</body>

登录成功页面:



在hello.jsp 中通过在 session.jsp 中设置的session属性范围, 判断是否属于已注册客户

<body>
<%if(session.getAttribute("userid")!=null){ %>
<h3>欢迎<%=session.getAttribute("userid") %>注册成功</h3>
<%}
else{%>
	
	<h3>请先<a href="session.jsp">注册</a></h3>
	
<% }
%>
</body>

如果注册成功,则提示 :


  否则 ,直接打开

http://localhost:8080/helloworld/result.jsp

会提示



注销

session中通过invalidate()来注销

在欢迎页面加上注销的选项:

<body>
<%if(session.getAttribute("userid")!=null){ %>
<h3>欢迎<%=session.getAttribute("userid") %>注册成功</h3>

 <br><h4><a  href="logout.jsp">注销</a></h4>   //-------注销选项------------
<%}
else{%>
	
	<h3>请先<a href="session.jsp">注册</a></h3>
	
<% }
%>
</body>

在注销logout.jsp 页面中

<body>
<%
   response.setHeader("refresh", "2;URL=session.jsp");
   session.invalidate(); //----已注销--------
%>

<h3>您已成功退出本系统,两秒后跳会主页。//--------response.setHeader来wqnacheng完成跳转----------
<br>  如果没有跳转,请点击<a href="session.jsp">这里</a></h3>
</body>

判断新用户

session中可以通过isNew( )方法来判断用户是否是第一次访问。

<body>
<% if(session.isNew()){ %>
欢迎第一次

<%} %>
</body>
即可,刷新一次浏览器之后,就不是新用户了。。

取得用户操作时间

   一个session的具体操作时间,可以通过计算的方法取得。

getCreationTime( )--->表示创建时间。getLastAccessedTime( )  ---> 表示最后访问时间。最后访问时间-创建时间=操作时间(毫秒)

<body>
<%
long start =session.getCreationTime();
long end =session.getLastAccessedTime();
long time = (end-start)/1000; // -----------因为是毫秒  需要除以1000----------
%>
<h3>您已经操作了<%=time %>秒。</h3>
</body>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值