获取网站验证码地址,网站设计欣赏移动,用什么系统程序做评测网站,为什么用MyEclipse做网站Session是服务端使用记录客户端状态的一种机制#xff0c;Session使用简单#xff0c;但是和Cookie相比#xff0c;增加了服务器的存储压力【因为为了追求速度#xff0c;服务器将Session放置在了内存中】。Cookie是保存在客户端的#xff0c;然而Session是保存在服务器上… Session是服务端使用记录客户端状态的一种机制Session使用简单但是和Cookie相比增加了服务器的存储压力【因为为了追求速度服务器将Session放置在了内存中】。Cookie是保存在客户端的然而Session是保存在服务器上的。初次访问的服务端的时候会把客户端的信息保存起来再次访问的时候直接从Session中获取即可。【客户端初次访问服务器的时候会自动创建Session,如果没有生成Session则可以使用request.getSession(true)方式强制生成Session】 但是值得注意的是Session的使用需要Cookie的支持因为单独的Session还是无法知道当前访问服务器的是否是同一个客户端它要根据存储在Cookie中的JSESSIONID来进行判断[这个Cookie是客户端自动创建的]如果客户端关闭了Cookie那么Session是没有什么效果的。这个时候需要使用URL重写的方式将JSESSIONID直接放置在URL中访问服务器的时候可以直接进行解析。 大家都知道Cookie是可以设置过期时间的它允许设置永久有效并且它是存储在客户端电脑上的并不会占用服务器的内存。所以如果想实现永久登录的话使用Cookie是首选并且Cookie中可以通过设置domain属性来达到跨域使用[多个窗口公用Cookie]。然而Session需要占用太多的服务器内存并且不支持跨域使用不同的窗口访问客户端都会创建一个Session,Session过多会造成内粗溢出【当然服务端也有相应的措施应对溢出那就是通过设置Session的有效期有效期到达之后就会将Session清除】 但是Session中可以存储多种类型的数据不仅能存储String还可以直接存储一个javaBean对象然而Cookie中仅仅能存储String。并且Session的安全性要比Cookie的安全性高的多因为它是存储在服务器上的外部人员不能轻易更改然而Cookie是保存在客户端电脑上的随时都有可能被更改虽然说可以将信息加密然后存储在Cookie中但是跟Session相比安全性还是比较低的。 所以通常会话跟踪的时候通常是两者配合使用以达到想要的效果
*:通常利用Session保存当前登录用户的信息我们可以操作Session如移除Session中的userInfo或者设置Session失效当Session中没有userInfo则跳转到登录界面进行登陆操作【也就意味着该用户已经下线】所以通常都是操作Session来进行【踢出用户】操作使用户被迫下线。 一代码演示利用Session存储用户信息然后在欢迎界面获取用户信息【此处登录界面和欢迎界面是一个】 1 % page languagejava contentTypetext/html; charsetUTF-82 pageEncodingUTF-8%3 !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd4 html5 head6 meta http-equivContent-Type contenttext/html; charsetUTF-87 title演示Session的使用/title8 /head9 body
10 !-- 利用JSP的行为创建一个User实例 ,存放在默认的page域中--
11 jsp:useBean iduser classcn.woo.entity.User scopepage/jsp:useBean
12 jsp:setProperty propertyusername nameuser valuewoo/
13 jsp:setProperty propertypassword nameuser value123456/
14
15 %!
16 //定义要显示的错误提示信息
17 String message ;
18 //登录标志
19 boolean login false;
20 %
21
22 !-- 接收请求 --
23 %
24 System.out.println(request.getMethod());
25 if(request.getMethod().equalsIgnoreCase(post)){
26 request.setCharacterEncoding(utf-8);
27 response.setCharacterEncoding(utf-8);
28
29 //获取用户名和密码
30 String username request.getParameter(username);
31 String password request.getParameter(password);
32
33 //验证用户名和密码是否正确
34 if((username!null !username.isEmpty()) (password!null !password.isEmpty())){
35 if((username.equals(user.getUsername())) (password.equals(user.getPassword()))){
36 login true; 37 //利用Session记录用户信息
38 session.setAttribute(userInfo,user);
39 //重定向至该页面,添加参数System.currentTimeMillis防止客户端缓存页面数据
40 response.sendRedirect(request.getRequestURI() ? System.currentTimeMillis());
41 return;
42 }else{
43 message 用户名密码错误请重新登录;
44 }
45 }else{
46 message 用户名和密码不能为空;
47 }
48 }else{
49 message 请先登录;
50 }
51 %
52
53 %
54 if(login){
55 %
56 !-- 利用EL表达式获取存放在Session中的userInfo --
57 p stylewidth:200px;height:200px;border:1px solid black;margin:100px auto;line-height:200px;text-align:center;欢迎:span${userInfo.username}/span/p
58 %
59 }else{
60 %
61 !-- 登录界面 --
62 form action%request.getRequestURI() ? System.currentTimeMillis()% methodpost
63 table
64 tr
65 td colspan2%message %/td
66 /tr
67 tr
68 td alignrightlabel forname用戶名:/label/td
69 tdinput typetext nameusername idname/td
70 /tr
71 tr
72 td alignrightlabel forpwd密码:/label/td
73 tdinput typepassword namepassword idpwd/td
74 /tr
75 tr
76 td colspan2input typesubmit value登录/td
77 /tr
78 /table
79 /form
80 %
81 }
82 %
83 /body
84 /html 下方图片就是服务端需要的Cookie可以看到Cookie中存放了一个JSESSIONID 二有时候客户端不支持Cookie,或者说客户端禁用Cookie这个时候可以使用URL重写的方式添加JSESSIONID到URL中一并发送到服务器 1 % page languagejava contentTypetext/html; charsetUTF-82 pageEncodingUTF-8%3 !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd4 html5 head6 meta http-equivContent-Type contenttext/html; charsetUTF-87 title演示Session的使用/title8 /head9 body
10 !-- 利用JSP的行为创建一个User实例 ,存放在默认的page域中--
11 jsp:useBean iduser classcn.woo.entity.User scopepage/jsp:useBean
12 jsp:setProperty propertyusername nameuser valuewoo/
13 jsp:setProperty propertypassword nameuser value123456/
14
15 %!
16 //定义要显示的错误提示信息
17 String message ;
18 //登录标志
19 boolean login false;
20 %
21
22 !-- 接收请求 --
23 %
24 System.out.println(request.getMethod());
25 if(request.getMethod().equalsIgnoreCase(post)){
26 request.setCharacterEncoding(utf-8);
27 response.setCharacterEncoding(utf-8);
28
29 //获取用户名和密码
30 String username request.getParameter(username);
31 String password request.getParameter(password);
32
33 //验证用户名和密码是否正确
34 if((username!null !username.isEmpty()) (password!null !password.isEmpty())){
35 if((username.equals(user.getUsername())) (password.equals(user.getPassword()))){
36 login true;
37 //设置Session的有效期单位为s
38 session.setMaxInactiveInterval(30*60);
39 //利用Session记录用户信息
40 session.setAttribute(userInfo,user);
41 //重定向至该页面,添加参数放置客户端缓存页面数据
42 //response.sendRedirect(request.getRequestURI() ? System.currentTimeMillis());
43 //客户端不支持Cookie或者关闭Cookie的时候使用该方式进行URL的重写
44 response.encodeRedirectURL(request.getRequestURI() ? System.currentTimeMillis());
45 return;
46 }else{
47 message 用户名密码错误请重新登录;
48 }
49 }else{
50 message 用户名和密码不能为空;
51 }
52 }else{
53 message 请先登录;
54 }
55 %
56
57 %
58 if(login){
59 %
60 !-- 利用EL表达式获取存放在Session中的userInfo --
61 p stylewidth:200px;height:200px;border:1px solid black;margin:100px auto;line-height:200px;text-align:center;欢迎:span${userInfo.username}/span/p
62 %
63 }else{
64 %
65 !-- 登录界面 --
66 !-- 客户端不支持Cookie或者关闭Cookie的时候使用该方式进行URL的重写
67 response.encodeURL(request.getRequestURI() ? System.currentTimeMillis())
68 --
69 form action%response.encodeURL(request.getRequestURI() ? System.currentTimeMillis()) % methodpost
70 table
71 tr
72 td colspan2%message %/td
73 /tr
74 tr
75 td alignrightlabel forname用戶名:/label/td
76 tdinput typetext nameusername idname/td
77 /tr
78 tr
79 td alignrightlabel forpwd密码:/label/td
80 tdinput typepassword namepassword idpwd/td
81 /tr
82 tr
83 td colspan2input typesubmit value登录/td
84 /tr
85 /table
86 /form
87 %
88 }
89 %
90 /body
91 /html 点击登录的时候会清晰的看到URL的内容变化中间包含jsessionid
http://localhost:8080/JSPDemo/session.jsp;jsessionidD01238B61D0544108E0C04AA5E17EE6C?1534577455038
通常Cookie被禁用的方式很常见所以一般都是禁用Cookie然后直接同意采用URL重写的方式进行Session的使用
【Session中禁用Cookie的方式】 更多专业前端知识请上
【猿2048】www.mk2048.com