jsp之session(二)

举报
兮动人 发表于 2021/10/24 17:44:51 2021/10/24
【摘要】 jsp之session(二)

注销session及共享session案例
在这里插入图片描述
login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="check.jsp" method="post">
		用户名:<input type="text" name="uname"><br/>
		密码:<input type="password" name="upwd"><br/>
		<input type="submit" value="登陆"><br/>
	</form>
</body>
</html>

check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
		<%
			request.setCharacterEncoding("utf-8") ;
			String name = request.getParameter("uname");
			String pwd = request.getParameter("upwd");
			if(name.equals("zs") && pwd.equals("abc")){//假设 zs abc
				//只有登录成功,session中才会存在uname /upwd
				session.setAttribute("uname", name)		 ;
				session.setAttribute("upwd", pwd)		;
				System.out.println("sessionId"+session.getId());
				
				//Cookie cookie = new Cookie("uname" ,namxe);
				//response.addCookie(cookie) ;
				//服务端在第一次响应客户端时,会发送一个 JSESSIONID的cookie
				
				//session.setMaxInactiveInterval(10) ;
				
				request.getRequestDispatcher("welcome.jsp").forward(request, response) ;
				
			
			}else{
				//登录失败
				response.sendRedirect("login.jsp") ;
			}
		
		%>
</body>
</html>

welocame.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	欢迎您:
		<%
			String name = (String)session.getAttribute("uname") ;
			//如果 用户没有登录,而是直接 通过地址栏 访问welcome.jsp,则必然获取到的name是null
			if(name!=null){
				out.print(name);
				
				
				System.out.println();
		%>
			<a href="invalidate.jsp">注销</a>
		<%
				
			}else{//如果没有登录,应该跳转登录页面
				response.sendRedirect("login.jsp");
			}
			
		
		%>
</body>
</html>

a.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
		<%

			out.print(session.getAttribute("uname"));
			Cookie[] cookies = request.getCookies();
			for(Cookie cookie:cookies){
				if(cookie.getName().equals("JSESSIONID")){
					System.out.print("JSESSIONID"+cookie.getValue());
				}
			}
		
		
		%>
</body>
</html>

通过登录和直接访问a.jsp在控制台分别输出
在这里插入图片描述
cookie和session的区别:

session cookie
保存的位置 服务端 客户端
安全性 较安全 较不安全
保存的内容 Object String

在这里插入图片描述
登录后点击 注销 跳回到登录页面
在这里插入图片描述
再次访问a.jsp时
在这里插入图片描述
登录之后不点击注销,直接访问a.jsp页面
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。