Session

   Session是服务器临时建立的服务器保存用户信息一个对象。比如用户名,你的购物清单等。当用户购物时,用户的购物清单被放置在这个session中临时保存,当用户确认时,这些保存在session中的数据才被提交至数据库。session是由服务器自动建立的,有一个唯一的id,生命周期从用户打开浏览器访问服务器到到关闭浏览器离开服务器为止。

   使用session最大的一个作用就是验证登陆,比如在welcom.jsp中就可以直接获得用户名等信息了。而且只要用户不关闭浏览器(可以关闭页面)这些信息就会一直存在,使用自己找个类来保存当然无法做到这一点。


<%@ page language="java" import="org.test.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>

<body>
	<h3>
		session:<%=session.getId()%></h3>

</body>
</html>

只要你不关闭浏览器,仅仅是关闭页面不会造成session消失。

使用session的一个作用就是登陆验证。代码如下

Index.jsp:

<%@ page language="java" import="org.test.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<form action="index.jsp" method="post">
姓名:<input type="text" name="username"><br>
年龄:<input type="text" name="userage"><br>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
<%
String username=request.getParameter("username");
String userage=request.getParameter("uerage");
if(username!=null&&username.equals("hello")&&userage!=null&&userage.equals("12345"))
{
session.setAttribute("username", username);
session.setAttribute("userage", userage);
 %>
	<h3>用户登录成功!</h3>
	<%
	}
	else{
		 %>
<h3>用户登录失败</h3>
<%} %>
</body>
</html>
这里容易出现一个问题,就是:不是username!=null,而是等于空的字符串,等于空与等于空的字符串是不同的!
此外:
username.equals("hello")与"hello".equals(username)也是不同的。因为username可能是为空的,一旦为空就会出错,出现所谓的空指针异常。

正确的做法是:

<%@ page language="java" import="org.test.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<form action="index.jsp" method="post">
姓名:<input type="text" name="username"><br>
年龄:<input type="text" name="userage"><br>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
<%
String username=request.getParameter("username");
String userage=request.getParameter("userage");
if(!"".equals(username)&&!"".equals(userage)){
if("hello".equals(username)&&"12345".equals(userage))
{
session.setAttribute("username", username);
session.setAttribute("userage", userage);
 %>
	<h3>用户登录成功!</h3>
	<%
	}}
	else{
	 %>
<h3>用户登录失败</h3>
<% }%>
</body>
</html>
Welcome.Jsp:

<%@ page language="java" import="org.test.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>

<body>
	<%
        if(session.getAttribute("username")!=null)		{
       
	%>
	<h3>欢迎<%=session.getAttribute("username") %>进入本系统,点击这里可以<a href="logout.jsp">注销</a></h3>
<%} 
  else{
    %>
<h3>您还没有登陆,点击这里<a href="index.jsp">登陆</a></h3>
<%} %>
</body>
</html>
Logout.Jsp:

<%@ page language="java" import="org.test.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
	<%
        if(session.getAttribute("username")!=null)		{
        session.invalidate();
	%>
	<h3>您已经注销</h3>
<%} %>
 
</body>
</html>





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值