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

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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页面

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

permission denied JSP page

permission denied to access this page,please login

View Code

控制会话声明期

通过修改web.xml文件

或者在web.xml直接添加:

1

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

de8f5a5b4ddf08771884f33feeeb439e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值