博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP Session对象
阅读量:5835 次
发布时间:2019-06-18

本文共 2111 字,大约阅读时间需要 7 分钟。

  hot3.png

##Session

Session用于区分不同的用户,每一个session就表示一个用户。 在jsp中javax.servlet.http.HttpSession对象。 Session在实际的操作中主要的功能是判断用户是否登陆。常用方法:

No 方法 描述
1 Public void setAttribute(String name,Object value) 设置属性
2 Public Object getAttribute(String name) 取得属性
3 Public void removeAttribute(String name) 删除属性
4 Public Boolean isNew() 判断是否是新的session
5 Public String getId() 返回sessionID
6 Public void invalidate() 让session失效
7 Public void setValue(String name),Object value) 设置属性
8 Public Object getValue(String name) 取得属性
9 Public void removeValue(String name) 删除属性

setValue()之类的方法,是session最早的操作,如果在一些比较旧的书上可能会发现这样的用法,因为后来为了强调JSP中四种属性范围,所以将方法修改了。

##2.session中的主要操作方法

###1.1.取得sessionID

<%=session.getId()%>

###1.2.让session失效:注销

每次执行invalidate方法的时候,就表示session失效。 例子:

<%=session.getId()%>	//取得sessionID<%session.invalidate();	//让session失效%>

###1.3、session的主要功能在于系统登录上

在所有的系统之中,session对象中使用最多的操作就是设置和取得属性。 范例:login.jsp

<%@page contentType="text/html;charset=gbk"%>

登陆界面

用户名:
密  码:
<% String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); if(!(("".equals(name) || name==null) &&( "".equals(pwd) || pwd==null ))){ if(name.length()>5 && pwd.length()>5){ session.setAttribute("name",name); response.sendRedirect("welcome.jsp"); } else{ %>

<%="用户名或密码错误"%>

<% } }%>

范例:welcom.jsp

<%@ page contentType="text/html;charset=gbk"%><%	if(session.getAttribute("name")!=null){%>		

欢迎光临!

注销

<% }else{ %>

请先登录

<% }%>

为程序加入注销功能的页面 范例:loginout.jsp

<%	//注销session,	session.invalidate();%>

一个好的程序,应该加入验证码的操作。

###1.4判断是否是新的session

当用户第一次连接到服务器的时候,可以通过isNew()方法来判断此用户是否是新用户。 范例:判断新用户

<%@page contentType="text/html;charset=gbk"%>

<% if(session.isNew()){%> <%="欢迎新用户"%><% }else{%> <%="您是老用户了!"%><% }%>

此方法的原理实际上是在于Cookie的设置上,回顾一下 如果用户第一次访问服务器的话,Cookie中并不会存在JSESSIONID 而如果用户第二次访问的话,Cookie中已经存在了JSESSIONID,所以就不认为他是新用户了。

##SESSION与Cookie的关系

  • Session在服务器端
  • Cookie在客户端

转载于:https://my.oschina.net/csmw00/blog/678285

你可能感兴趣的文章
由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
查看>>
spring cloud config 中的application.yml 和 bootstrap.yml
查看>>
转-Pentaho技术白皮书中文版(一)----用 Eclipse 构建和调试 Pentaho
查看>>
cannot be cast to javax.servlet.Servlet
查看>>
【转载】logcat在华为手机上运行时无法抓取log的问题
查看>>
由php的单例模式到php对象的创建方式
查看>>
PE文件格式”1.9版 完整译文
查看>>
汇编器工作原理
查看>>
信号和线程
查看>>
I2C的SCL和SDA的定义
查看>>
jvisualvm 远程监控配置方式
查看>>
svn 打tag
查看>>
NodeJs 学习(一) HelloWorld
查看>>
fikker反向代理服务器的网站缓存加速特别说明
查看>>
ubuntu 12.04 安装sublime
查看>>
Android 闪退分析:WIN DEATH(情况之一)
查看>>
ArrayList 和 LinkedList 的区别
查看>>
ios 延迟加载执行 dispatch_after
查看>>
1、直接插入排序(Straight Insertion Sort)
查看>>
Gradle 下载jar包缓慢
查看>>