session对象

当某个用户首次访问web应用系统时,jsp会自动创建出一个session对象,同时为它分配一个字符串String类型的唯一标识符ID值,该值为会话ID也称为session ID 。jsp会将这个ID 发送带客户端浏览器中,浏览器在将它保存在cookie中,而session本身的数据保存在服务器端,但是标识session ID的数据却能保存在客户机cookie

Session方法:

getAttribute(String name) 获取指定名字的属性值,若不存在,返回null

setAttribute(String name,object value ) 设置指定名字的属性值,并将其存储在session对象中

removeAttribute(String name) 删除指定属性(包括属性名、属性值)

getAttributeNames() 返回session对象中存储的第一个属性对象,结果集是一个Enumeration

getCreateTime() 返回session对象创建的时间,以毫秒计算

getId() 没生成一个session对象,服务器都会给其一个不重复的编号,返回当前session对象的ID

getLastAccessedTime() 返回session对象最后一次操作的时间,以毫秒计算

getMaxInpactiveInterval() 获得session对象生存时间

setMaxInpactiveInterval(int interval) 设置session对象的有效时间单位秒 ,也可以设置在 web.xml配置文件中

jsp 规范推荐采用getAttribute()方法代替getValue()方法

Session对象的主要作用: 为HTTP会话提供控制各种方法,可以存储在会话过程中所产生的各种结果数据,做为一个数据缓存器使用。因此在web项目中,可以使用session对象跟踪用户在线状态和保存用户请求的各种特征数据也可以用以识别用户身份类型、识别是否在线和系统中在线用户总数。

实例使用session对象,实现用户身份识别:

还是使用昨天的登录页面:

login.jsp

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

login.jspusername:

password:

userType:

user

master

View Code

对于登录action的response页面,登录成功,能看到权限内容

登录失败,forward到login.jsp

首先添加一个UserInfo类,设置三个属性,并添加get/set方法和一个验证数据的方法

packagemypackage;public classUserInfo {/***@paramargs

* two parameters add get/set methods*/String userName=null;

String passWord=null;

String userType=null;publicString getUserType() {returnuserType;

}public voidsetUserType(String userType) {this.userType =userType;

}publicString getUserName() {returnuserName;

}public voidsetUserName(String userName) {this.userName =userName;

}publicString getPassWord() {returnpassWord;

}public voidsetPassWord(String passWord) {this.passWord =passWord;

}public booleanverifyID( ) //如果用户名是young并且密码是1234返回true

{if(userName.equals("young") && passWord.equals("1234"))

{

System.out.print("login successful\n");return true;

}else{

System.out.print("login failure\n");return false;

}

}

}

response.jsp页面,登录成功直接跳转至welcome.jsp登录失败跳转到error.jsp

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

response login.jsp

RequestDispatcher rd=null;%>

login.setPassWord(request.getParameter("password"));

login.setUserType(request.getParameter("userType"));

login.verifyID();if(login.verifyID() )

{

out.print("登录成功,欢迎"+request.getParameter("userType") +login.getUserName());//out.print(request.getCookies().toString() +request.getSession());

targetPage="welcome.jsp";

request.setAttribute("userNameString",login.getUserName());

session.setAttribute("UserInfoVO",login);//登录成功保存用户基本信息在session对象中

}else{

request.setAttribute("errorMSG","登录失败,用户名或密码错误");

targetPage="error.jsp";

session.setAttribute("UserInfoVO",null);//登录失败 销毁对象保存在session

}

rd=request.getRequestDispatcher(targetPage);

rd.forward(request,response);%>

welcome页面,先判断用户是否登录,从session中到相应的类,如果是null,显示登录失败,forward登录页面

{

request.setAttribute("errorMSG","你没有登录,请登录");

String targetPage="login.jsp";

RequestDispatcher rd=request.getRequestDispatcher(targetPage);

rd.forward(request,response);//未登录跳转到login.jsp

}%>

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'welcome.jsp' starting page
your userType is

error.jsp页面

permission denied JSP page

permission denied to access this page,please login

View Code

控制会话声明期

通过修改web.xml文件

或者在web.xml直接添加:

1

此外还可以通过HttpSession接口中的setMaxInactiveInterval()方法设置,单位秒

java三级 高级证书6_java web 学习 --第六天(Java三级考试)相关推荐

  1. java catch空指针异常处理_Java基础学习:java文件空指针异常处理

    在Java编程中,我们或多或少地会遇到一些程序异常的情况,为了不影响程序的正常执行,我们需要在程序发生异常的情况下,进行一些操作来防止造成更大的损失.例如在我们平时的除法运算中,被除数是不能为0的,如 ...

  2. java实现一个感知机_感知机学习算法Java实现

    感知机学习算法Java实现. Perceptron类用于实现感知机, 其中的perceptronOriginal()方法用于实现感知机学习算法的原始形式: perceptronAnother()方法用 ...

  3. Web学习第六天用html5表格标签做个人简历

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>个人简 ...

  4. java 枚举高级应用_【后端】java基础(5.6)java高级基础之枚举

    java中除了类和接口,还有一个类型叫做枚举(enum),它出现得比较晚,在JDk1.5之后才出,因此对我们来说并不常用,但是它的作用还是不小. 创建的时候前面和创建类.接口一样,在new之后,我们选 ...

  5. JAVA不同类型数组重载_java学习笔记--java中的方法与数组

    方法 完成特定功能的代码块 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ //方法体 return 返回值: } 方法的调用方式 通过方法名调用方法 根据形 ...

  6. 【JAVA】关于自动化测试所需要学习的java基础知识笔记

    文章目录 1.JAVA相关 1.1 java三大特性 1.2 抽象类和接口的区别 1.3 反射 1.3.1 反射的思想 1.3.2 什么是反射 1.3.3 xml解析代码 1.3.4 通过字节码可以使 ...

  7. 大数据分析师高级证书_大数据分析师(ACP)认证考试大纲

    阿里云行业认证:大数据分析师专业认证考试( ACP 级)大纲 阿里云大数据行业认证 - 大数据分析师专业认证介绍: 阿里云大数据行业认证 - 大数据分析师专业认证( ACP - AlibabaClou ...

  8. c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?

    首先我说一下Java和web两者的区别: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. ...

  9. Java学习之java高级特性

    From:https://blog.csdn.net/w252064/article/details/79923999 [Java高级特性详解]:https://blog.csdn.net/qq_37 ...

  10. Java高级程序员需要学习哪些技术?

    Java高级程序员具备的特点,首先Java高级程序员必须具有一定的业务分析和流程意识.性能优化经验,大数据设计处理和功能开发.会语言设计和技能开发.很强的学习能力.具备Java内存模型.GC工作原理. ...

最新文章

  1. 安装linux和windows双系统
  2. 人工智能艺术:一场前所未有的新艺术创造
  3. 牛客华为机试第2题python
  4. Linux 常见的六大 IPC 通信方式
  5. InfluxData【环境搭建 02】时序数据库客户端 InfluxCLI 最新版本安装启动验证(在线安装+离线安装及各版本下载地址)
  6. C# 的扩展方法在 LINQ 中实现数组排序
  7. vue 如何获取图片的原图尺寸_阳台洗衣机组合柜如何设计|尺寸规范|案例图片...
  8. zoj 1406 Jungle Roads
  9. 西门子opc服务器注册,《西门子opc服务器的说明》.pdf
  10. 导 Kinect2库,opencv库,pcl库
  11. 【chrome】插件开发-教程00(如何开发插件)
  12. netron神经网络可视化
  13. Windows10内存泄漏,分页池高分析及解决方案
  14. java注释及注释颜色设置
  15. 极域课堂管理系统软件如何取消控制_青岛海运职业学校智能用电管理平台系统建设项目完成验收...
  16. PCIE原理-002:PCIE地址是如何映射的
  17. 【重要】有三AI知识星球不再对外公开!还想加入的有哪些途径?
  18. UWA 技术分享连载 转载
  19. 关于jacoco的学习
  20. 51单片机入门之五:数码管显示(动态),单片机驱动数码

热门文章

  1. CDOJ 1330 柱爷与远古法阵(高斯消元)
  2. 定时执行自动化脚本-(一)导入保存jmeter参数至文件的jar包
  3. tomcat 启动报错 解决办法 A child container failed duringnbsp
  4. JavaWEB前端向服务器端发送对象
  5. PHP中巧用curl 并发减少获取第三方网页内容时间
  6. 用正则表达式去除标点符号
  7. Oracle数据库之SQL单行函数---字符函数之TRIM
  8. 搭建Web站点和FTP站点
  9. 设计了一个JavaScript的源代码混淆器
  10. Openlayers layer 切换底图