(七)JSP教程——session对象

        浏览器和Web服务器之间的交互通过HTTP协议来完成,HTTP协议是一种无状态的协议,服务器端无法保留浏览器每次与服务器的连接信息,无法判断每次连接的是否为同一客户端。为了让服务器端记住客户端的连接信息,可以使用session对象来记录每个客户端与服务器的连接信息。

        客户端与服务器端的一次会话,从客户连接到服务器开始,直到与服务器断开连接为止,这之间可以访问session对象的属性和方法。session对象可以用来保存每个用户的信息,从而跟踪每个用户的操作状态。

        当客户端第一次访问服务器时,JSP引擎会为客户端创建一个session对象用来保存客户端在访问各个页面期间所提交的各种信息,并且为该对象分配一个String类型的ID号。

        在响应客户端请求的同时,把ID号发送到客户端的Cookie中。这样就建立了客户端与服务器端的一一对应关系,不同的客户端有不同的session,服务器可以通过不同的ID号来识别不同的客户端。

        下面的实例就是通过表单将数据传递到服务器端,然后再将数据保存到session中。

        此处我们省略掉创建Web项目的步骤。

        首先我们创建一个login.jsp页面,页面的代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>Refresh实例</title>

</head>

<body bgcolor="pink">

<center>

<form action="loginCL.jsp" method="post">

用户名: <input type="text" name="username"/> <br> <br>

密 码: <input type="password" name="password"/> <br> <br>

<input type="submit" value="提交"/>

</form>

</center>

</body>

</html>

        然后创建session的处理界面loginCL.jsp,界面的代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>session实例</title>

</head>

<body>

<%

//接收用户名和密码,完成对用户的验证

String u = request.getParameter("username");

String p = request.getParameter("password");

//在session中保存用户名和密码

session.setAttribute("userName", u);

session.setAttribute("userPassword", p);

%>

    您的用户名和密码已被写入session中,请<a href="context.jsp">猛击</a>查看内容

</body>

</html>

        最后创建context.jsp页面用来查看session信息,界面代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Session实例</title>
</head>
<body>
<%
   String uName = (String) session.getAttribute("userName");
   String uPassword = (String) session.getAttribute("userPassword");
   if (uName == null || uPassword == null) {
      out.println("您还未登录!");
   } else {
      out.println("您的用户名:" + uName + "<br>");
      out.println("您的密码:" + uPassword + "<br>");
   }
   out.println("session对象的创建时间:" + session.getCreationTime() + "毫秒<br>");
   out.println("session对象ID号:" + session.getId() + "<br>");
   out.println("上次方位的最后时间:" + session.getLastAccessedTime() + "毫秒<br>");
   out.println("session的生存时间:" + session.getMaxInactiveInterval() + "<br>");
   out.println("该session对象是否是创建的:" + session.isNew() + "<br>");
%>
</body>
</html>

        启动该应用后,在浏览器地址栏中输入URL:http://localhost:8080/s001/login.jsp
打开的界面如下图所示

        输入相应的用户名和密码,然后点击提交按钮后的界面显示如下图所示

        然后点击页面中的超链接后界面展示如下图所示

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
<br>JSP Login.jsp <br><br><br><br><%@ page contentType="text/html;charset=GB2312" %><br><br><html><br><head><br><title>CH5 - Login.jsp</title><br></head><br><body><br><br><h2>javax.servlet.http.HttpSession - session 对象</h2> <br><form action=Login.jsp method="POST" ><br>Login Name: <input type="text" name="Name"><br><br>Login Password: <input type="text" name="Password" ><br><br><input type="submit" value="Send"><br><br><form><br><br><% if (request.getParameter("Name") != null &&<br> request.getParameter("Password") != null) { <br>String Name = request.getParameter("Name");<br>String Password = request.getParameter("Password");<br><br>if (Name.equals("mike") && Password.equals("1234")) { <br>session.setAttribute("Login", "OK");<br>response.sendRedirect("Member.jsp");<br>}<br>else { <br>out.println("登录错误,请输入正确名称"); <br>} <br>}<br>%><br><br></body><br></html> <br><br><br>JSP Member.jsp <br><br><br><br><%@ page contentType="text/html;charset=GB2312" %><br><br><html><br><head><br><title>CH5 - Member.jsp</title><br></head><br><body><br><br><h2>javax.servlet.http.HttpSession - session 对象</h2> <br><% <br>String Login = (String)session.getAttribute("Login");<br><br>if (Login != null && Login.equals("OK")) { <br>out.println("欢迎进入");<br>session.invalidate(); <br>} <br>else { <br>out.println("请先登录,谢谢") ;<br>out.println("<br>经过五秒之后,网页会自动返回Login.jsp");<br><br>response.setHeader("Refresh","5;URL=Login.jsp"); <br>}<br>%><br><br></body><br></html> <br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry95270628

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值