1. 知识点
(1)session被称为会话,指从浏览器访问一个Web应用到离开这个Web应用的整个过程。
(2)在这个过程中,应用服务器从接收到第一次请求开始会为访问者生成一个唯一的session对象,这个对象在此会话过程中始终存在,用于存放这一过程中需要保存的数据。
(3)设置
session.setAttribute("属性名", 字符)
(4)提取
session.getAttribute("属性名")
(5)去除
session.removeAttribute("属性名")
2. 上课案例
(1) 按照以下图片进行创建目录文件
(2)index.jsp
<%@ page language="java" contentType="text/html;"
pageEncoding="UTF-8"%>
<%
session.removeAttribute("name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<center>
<h1>输入个人信息</h1>
<form action="a.jsp"/>
用户名:<input type="text" name="username" value=<%=request.getParameter("n") %>>
密码:<input type="text" name="password">
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
</center>
</body>
</html>
<%
String error = (String)request.getAttribute("error");
if (error != null){
out.println("<font color='red'>"+error+"</font>");
}
%>
(3)a.jsp
<%@ page language="java" contentType="text/html;"
pageEncoding="UTF-8"%>
<%
// 接收用户名和密码
String n = (String)request.getParameter("username");
String p = (String)request.getParameter("password");
%>
<!DOCTYPE html>
<%
String error = "";
// 中文显示问题
request.setCharacterEncoding("UTF-8");
// 判断用户名是否为空
if (n.equals("")){
error = "用户名未输入!";
}
// 判断密码是否为空
else if (p.equals("")){
error = "密码未输入!";
}
// 判断用户名和密码是否输入错误
else if (!n.equals("Li Hua") || !p.equals("123")){
error = "用户名或者密码输入错误!";
}
// 没有错误则将登陆的用户名存入session会话中
if (error.equals("")){
session.setAttribute("name", n);
%>
<h1>Hello,<font color="red"><%=n%></font>,恭喜你登录成功</h1>
at a.jsp<br>
<a href="b.jsp">to b.jsp</a><br>
<a href="c.jsp">to c.jsp</a><br>
<a href="index.jsp">退出</a><br>
<%
}
else{
request.setAttribute("e", error);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
%>
(4)b.jsp
<%@ page language="java" contentType="text/html;"
pageEncoding="UTF-8"%>
<%
// 从session中提取用户名的信息
String n = (String)session.getAttribute("name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>b.jsp page</title>
</head>
<body>
<h1>这里是B页面,你好<font color="red"><%=n %>></font></h1>
at b.jsp<br>
<a href="a.jsp">to b.jsp</a><br>
<a href="c.jsp">to c.jsp</a><br>
<a href="index.jsp">to index.jsp</a><br>
</body>
</html>
(5)c.jsp
<%@ page language="java" contentType="text/html;"
pageEncoding="UTF-8"%>
<%
// 从session中提取用户名的信息
String n = (String)session.getAttribute("name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>c.jsp page</title>
</head>
<body>
<h1>这里是C页面,你好<font color="red"><%=n %>></font></h1>
at b.jsp<br>
<a href="a.jsp">to b.jsp</a><br>
<a href="b.jsp">to c.jsp</a><br>
<a href="index.jsp">to index.jsp</a><br>
</body>
</html>
(6)运行结果
index.jsp
a.jsp
b.jsp
c.jsp
index.jsp(退出)