首页 > 编程笔记 > Java笔记

JSP Session.getAttribute()方法:根据属性名获取属性值

该方法用于获取与指定名字相联系的属性值。

语法:

getAttribute(String name)

参数说明:
返回值:name 指定的属性的值。

示例

获取保存在 session 对象中名称为 user 的属性信息,关键代码如下:
  1. <%
  2. session.getAttribute("user");
  3. %>

典型应用

  1. session 在网络术语中被称为会话。由于 HTTP 协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接便结束,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP 协议提供了 session。
  2. 通过 session,当用户需要在应用程序的 Web 页间进行跳转时,可以保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session 对象就会自动消失。这个时间取决于服务器,例如,Tomcat 服务器默认为 30 分钟。不过这个时间可以通过编写程序进行修改。使用 session 对象一个最常用的功能就是记录用户的状态。
  3. 下面将通过一个具体的实例介绍应用 session 对象实现用户登录。运行本示例,首先进入的是用户登录页面,输入用户名(mr)和密码(mrsoft)后,单击“登录”按钮,将显示系统主页,如果输入用户名"mr",密码不输入"mrsoft",则重新返回到用户登录页面。

创建 index.jsp 文件,在该文件中,添加用于收集用户登录信息的表单及表单元素,关键代码如下:
  1. <form name="form1" method="post" action="">
  2. 用户名:<input name="name" type="text" id="name" style="width:120px"><br>
  3. 密&nbsp;&nbsp;:<input name="pwd" type="password" id="pwd" style="width:120px"><br>
  4. <br>
  5. <input type=" submit" name="Submit" value="提交">
  6. </form>
编写 deal.jsp 文件,在该文件中,模拟用户登录(这里将用户信息保存到一个二维数组中),如果用户登录成功,将用户名保存到 session 范围内的变量中,并将页面重定向到 main.jsp 页面,否则将页面重定向到 index.jsp 页面,重新登录。deal.jsp 文件的具体代码如下:
  1. <%@page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%>
  2. <%@page import = "java.util.*"%>
  3. <%
  4. String[][] userList = {{"mr","mrsoft"},{"wgh","111"},{"sk","111"}}; //定义一个保存用户列表的二维数组
  5. boolean flag = false; //登录状态
  6. request.setCharacterEncoding("GB18030"); //设置编码
  7. String username = request.getParameter("username"); //获取用户名
  8. String pwd = request.getParameter("pwd"); //获取密码
  9. for(int i=0;i<userList.length;i++){ //遍历二维数组
  10. if(userList[i][0].equals(username)){ //判断用户名
  11. if(userList[i][1].equals(pwd)){ //判断密码
  12. flag = true; //表示登录成功
  13. break; //跳出for循环
  14. }
  15. }
  16. }
  17. if(flag){ //如果值为true,表示登录成功
  18. session.setAttribute("username",username); //保存用户名到session范围的变量
  19. response.sendRedirect("main.jsp"); //跳转到主页
  20. }else{
  21. response.sendRedirect("index.jsp"); //跳转到用户登录页面
  22. }
  23. %>
编写 main.jsp 文件,在该文件中,首先获取并显示保存到 session 范围内的变量,然后添加一个“[退出]”超链接。main.jsp 文件的具体代码如下:
  1. <%@page language="java" contentType="text/html;charset=GB18030"pageEncoding="GB18030"%>
  2. <%
  3. String username = (String)session.getAttribute("username"); //获取保存在session范围内的用户名
  4. %>
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html;charset=GB18030">
  8. <title>系统主页</title>
  9. </head>
  10. <body>
  11. 您好![<%=username%>]欢迎您访问!<br>
  12. <a href="exit.jsp">[退出]</a>
  13. </body>
  14. </html>
  15. 编写 exit.jsp 文件,在该文件中销毁 session,并重定向页面到 index.jsp 页面。exit.jsp 文件的具体代码如下:
  16. <%@page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%>
  17. <%
  18. session.invalidate(); //销毁session
  19. response.sendRedirect("index.jsp"); //重定向页面到index.jsp
  20. %>
运行结果如下:

所有教程

优秀文章