Session在网络应用中被称为会话。
具体到web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间,因此从概述上我们可以看到,session实际上是一个特定的时间概念。
需要注意的是:一个session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的session同B用户和C服务器建立连接时所处的Session是两个不同的session。
实现一个页面跳转的过程:
@WebServlet("/Hello")
public class Hello extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
//取值
String arr = req.getParameter("username");
String brr= req.getParameter("userpwd");
//建一个Session,往容器装值
HttpSession session=req.getSession();
session.setAttribute("name",arr);
session.setAttribute("pwd",brr);
//转发案例,即登录跳转页面
if(arr.equals("nihao") && brr.equals("123456")) {
RequestDispatcher a = req.getRequestDispatcher("/chenggong.jsp");
a.forward(req, resp);
}else {
RequestDispatcher a = req.getRequestDispatcher("/shibai.jsp");
a.forward(req, resp);
}
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<!-- 表单 -->
<form action="/WEB2/Hello" method="POST">
账户:<input type="text" name="username"><br/>
密码:<input type="password" name="userpwd"><br/>
<button id="btnOK" type="submit">提交</button>
爱好:<input type="checkbox" value="iq" name="hobby">篮球
<input type="checkbox" value="zq" name="hobby">足球
<input type="checkbox" value="pqq" name="hobby">乒乓球
</form>
</body>
</html>
前端会显示:东方红登录成功(东方红为登录者录入的名字)
chenggong.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>运动小组测试</title>
</head>
<body>
<p>${sessionScope.name}用户登录成功</p>
</body>
</html>
shibai.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<p>${sessionScope.name}用户登录失败</p>
</body>
</html>
前端会显示:东方红登录失败(东方红为登录者录入的名字)
${sessionScope.name}为去会话容器中去取值