该方法用于获取与指定名字相联系的属性值。
语法:
getAttribute(String name)
参数说明:
- name:要获取的属性名称。
返回值:name 指定的属性的值。
示例
获取保存在 session 对象中名称为 user 的属性信息,关键代码如下:
<% session.getAttribute("user"); %>
典型应用
- session 在网络术语中被称为会话。由于 HTTP 协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接便结束,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP 协议提供了 session。
- 通过 session,当用户需要在应用程序的 Web 页间进行跳转时,可以保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session 对象就会自动消失。这个时间取决于服务器,例如,Tomcat 服务器默认为 30 分钟。不过这个时间可以通过编写程序进行修改。使用 session 对象一个最常用的功能就是记录用户的状态。
- 下面将通过一个具体的实例介绍应用 session 对象实现用户登录。运行本示例,首先进入的是用户登录页面,输入用户名(mr)和密码(mrsoft)后,单击“登录”按钮,将显示系统主页,如果输入用户名"mr",密码不输入"mrsoft",则重新返回到用户登录页面。
创建 index.jsp 文件,在该文件中,添加用于收集用户登录信息的表单及表单元素,关键代码如下:
<form name="form1" method="post" action=""> 用户名:<input name="name" type="text" id="name" style="width:120px"><br> 密&nbsp;&nbsp;码:<input name="pwd" type="password" id="pwd" style="width:120px"><br> <br> <input type=" submit" name="Submit" value="提交"> </form>
编写 deal.jsp 文件,在该文件中,模拟用户登录(这里将用户信息保存到一个二维数组中),如果用户登录成功,将用户名保存到 session 范围内的变量中,并将页面重定向到 main.jsp 页面,否则将页面重定向到 index.jsp 页面,重新登录。deal.jsp 文件的具体代码如下:
<%@page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%> <%@page import = "java.util.*"%> <% String[][] userList = {{"mr","mrsoft"},{"wgh","111"},{"sk","111"}}; //定义一个保存用户列表的二维数组 boolean flag = false; //登录状态 request.setCharacterEncoding("GB18030"); //设置编码 String username = request.getParameter("username"); //获取用户名 String pwd = request.getParameter("pwd"); //获取密码 for(int i=0;i<userList.length;i++){ //遍历二维数组 if(userList[i][0].equals(username)){ //判断用户名 if(userList[i][1].equals(pwd)){ //判断密码 flag = true; //表示登录成功 break; //跳出for循环 } } } if(flag){ //如果值为true,表示登录成功 session.setAttribute("username",username); //保存用户名到session范围的变量 response.sendRedirect("main.jsp"); //跳转到主页 }else{ response.sendRedirect("index.jsp"); //跳转到用户登录页面 } %>
编写 main.jsp 文件,在该文件中,首先获取并显示保存到 session 范围内的变量,然后添加一个“[退出]”超链接。main.jsp 文件的具体代码如下:
<%@page language="java" contentType="text/html;charset=GB18030"pageEncoding="GB18030"%> <% String username = (String)session.getAttribute("username"); //获取保存在session范围内的用户名 %> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=GB18030"> <title>系统主页</title> </head> <body> 您好![<%=username%>]欢迎您访问!<br> <a href="exit.jsp">[退出]</a> </body> </html> 编写 exit.jsp 文件,在该文件中销毁 session,并重定向页面到 index.jsp 页面。exit.jsp 文件的具体代码如下: <%@page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%> <% session.invalidate(); //销毁session response.sendRedirect("index.jsp"); //重定向页面到index.jsp %>
运行结果如下:
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/22791.html