JSP Session对象
##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"%>
<center>
<form action="login.jsp" method="get" >
<table border="1" >
<tr>
<td colspan="2"><h1>登陆界面</h1></td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
<%
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{
%>
<h2><%="用户名或密码错误"%></h2>
<%
}
}
%>
</center>
范例:welcom.jsp
<%@ page contentType="text/html;charset=gbk"%>
<%
if(session.getAttribute("name")!=null){
%>
<h1>欢迎光临!</h1>
<h1><a href="loginout.jsp">注销</a></h1>
<%
}else{
%>
<h1>请先<a href="login.jsp">登录</a>!</h1>
<%
}
%>
为程序加入注销功能的页面 范例:loginout.jsp
<%
//注销session,
session.invalidate();
%>
一个好的程序,应该加入验证码的操作。
###1.4判断是否是新的session
当用户第一次连接到服务器的时候,可以通过isNew()方法来判断此用户是否是新用户。 范例:判断新用户
<%@page contentType="text/html;charset=gbk"%>
<h1>
<%
if(session.isNew()){
%>
<%="欢迎新用户"%>
<%
}else{
%>
<%="您是老用户了!"%>
<%
}
%>
</h1>
此方法的原理实际上是在于Cookie的设置上,回顾一下 如果用户第一次访问服务器的话,Cookie中并不会存在JSESSIONID 而如果用户第二次访问的话,Cookie中已经存在了JSESSIONID,所以就不认为他是新用户了。
##SESSION与Cookie的关系
- Session在服务器端
- Cookie在客户端
转载于:https://my.oschina.net/csmw00/blog/678285
上一篇: 数字在排序数组中出现的次数
下一篇: 选择一条数据来生成图片