##Session
Session用于区分不同的用户,每一个session就表示一个用户。 在jsp中javax.servlet.http.HttpSession对象。 Session在实际的操作中主要的功能是判断用户是否登陆。常用方法:
No | 方法 | 描述 |
---|---|---|
1 | Public void setAttribute(String name,Object value) | 设置属性 |
2 | Public Object getAttribute(String name) | 取得属性 |
3 | Public void removeAttribute(String name) | 删除属性 |
4 | Public Boolean isNew() | 判断是否是新的session |
5 | Public String getId() | 返回sessionID |
6 | Public void invalidate() | 让session失效 |
7 | Public void setValue(String name),Object value) | 设置属性 |
8 | Public Object getValue(String name) | 取得属性 |
9 | Public void removeValue(String name) | 删除属性 |
setValue()之类的方法,是session最早的操作,如果在一些比较旧的书上可能会发现这样的用法,因为后来为了强调JSP中四种属性范围,所以将方法修改了。
##2.session中的主要操作方法
###1.1.取得sessionID
<%=session.getId()%>
###1.2.让session失效:注销
每次执行invalidate方法的时候,就表示session失效。 例子:
<%=session.getId()%> //取得sessionID<%session.invalidate(); //让session失效%>
###1.3、session的主要功能在于系统登录上
在所有的系统之中,session对象中使用最多的操作就是设置和取得属性。 范例:login.jsp
<%@page contentType="text/html;charset=gbk"%><% String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); if(!(("".equals(name) || name==null) &&( "".equals(pwd) || pwd==null ))){ if(name.length()>5 && pwd.length()>5){ session.setAttribute("name",name); response.sendRedirect("welcome.jsp"); } else{ %> <%="用户名或密码错误"%>
<% } }%>
范例:welcom.jsp
<%@ page contentType="text/html;charset=gbk"%><% if(session.getAttribute("name")!=null){%>欢迎光临!
注销
<% }else{ %>请先登录!
<% }%>
为程序加入注销功能的页面 范例:loginout.jsp
<% //注销session, session.invalidate();%>
一个好的程序,应该加入验证码的操作。
###1.4判断是否是新的session
当用户第一次连接到服务器的时候,可以通过isNew()方法来判断此用户是否是新用户。 范例:判断新用户
<%@page contentType="text/html;charset=gbk"%><% if(session.isNew()){%> <%="欢迎新用户"%><% }else{%> <%="您是老用户了!"%><% }%>
此方法的原理实际上是在于Cookie的设置上,回顾一下 如果用户第一次访问服务器的话,Cookie中并不会存在JSESSIONID 而如果用户第二次访问的话,Cookie中已经存在了JSESSIONID,所以就不认为他是新用户了。
##SESSION与Cookie的关系
- Session在服务器端
- Cookie在客户端