【Java.Web】Session —— 示例 —— JSP —— 登陆功能及重写URL
2014-10-08 01:17
561 查看
Session JSP 程序示例
一个简单的用户登陆过程;包括3个JSP页面:sessiontest_login.jsp —— 提供一个登陆界面;登陆后进入sessiontest_home.jsp页面
sessiontest_home.jsp —— 显示当前登陆用户;如果没有用户登陆,将请求重定向到sessiontest_login.jsp
sessiontest_logout.jsp —— 销毁当前Session对象,并提供进入sessiontest_login.jsp的链接
在浏览器中输入URL:
http://localhost:8080/base-webapp/jsp/session/sessiontest_login.jsp
输入用户名和密码,点击SUBMIT:
点击LOGOUT,
点击LOGIN AGAIN,再次进入登陆页面;此时Session ID的值不同,生成了一个新的Session。
代码如下:
sessiontest_login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Session Test Login</title> </head> <body bgcolor="#ffffff" onLoad="document.loginForm.username.forcus()"> <% String name = ""; if (!session.isNew()){ name = (String)session.getAttribute("username"); if (name == null){ name = ""; } } %> <p>Welcome to the Session Test Login Page</p> <p>Session ID : <%= session.getId() %></p> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <form name="loginForm" method="post" action="sessiontest_home.jsp"> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="401"><div align="right">User Name: </div></td> <td width="399"><input type="text" name="username" value="<%=name%>"/></td> </tr> <tr> <td width="401"><div align="right">Password: </div></td> <td width="399"><input type="password" name="password" /></td> </tr> <tr> <td width="401"> </td> <td width="399"><input type="submit" name="submit" value="SUBMIT"/></td> </tr> </table> </form> </td> </tr> </table> </body> </html>
sessiontest_home.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Session Test Home Page</title> </head> <body> <% String name = null; name = request.getParameter("username"); if (name != null){ session.setAttribute("username", name); }else{ name = (String)session.getAttribute("username"); if (name == null){ response.sendRedirect("sessiontest_login.jsp"); } } %> <a href="sessiontest_login.jsp">Login</a> <a href="sessiontest_logout.jsp">Logout</a> <p>Current User is : <%= name %></p> </body> </html>
sessiontest_logout.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Session Test Logout Page</title> </head> <body> <% String name=(String)session.getAttribute("username"); session.invalidate(); %> <%= name %>Good Bye; <p/> <p/> <a href="sessiontest_login.jsp">Login again!</a> </body> </html>
改进 —— 重新URL
讲上面代码中的sendRedirect()方法中的JSP路径值改为:sessiontest_login.jsp
... <form name="loginForm" method="post" action="<%= response.encodeURL("sessiontest_home.jsp") %>"> ...
sessiontest_home.jsp
... if (name == null){ response.sendRedirect(response.encodeRedirectURL("sessiontest_login.jsp")); } } %> <a href="<%= response.encodeURL("sessiontest_login.jsp")%>">Login</a> <a href="<%= response.encodeURL("sessiontest_logout.jsp")%>">Logout</a> ...
sessiontest_logout.jsp
... <a href="<%= response.encodeURL("sessiontest_login.jsp")%>">Login again!</a> ...
将浏览器中的Cookie禁用:
再次访问,点击SUBMIT后,在浏览器地址栏中可以看到对应的URL后面加入了SESSION ID的信息:
http://localhost:8080/base-webapp/jsp/session/sessiontest_home.jsp;jsessionid=F6CF509FB2723BCAB3F04E1E0ED1813D
如果浏览器没有禁用Cookie,则虽然重写了URL,但是生成的URL中也不包含Session ID的信息。
相关文章推荐
- 【Java.Web】Session —— 示例 —— Servlet —— 购物车示例,与JSP区别
- java web 程序---登陆验证注销/重定向session_login.jsp/
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第二篇:登陆和注销功能实现
- javaweb之Session实现简单的购物(URL重写。Cookie重写指定有效日期)和简单的验证结论
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第三篇:新闻发布,新闻修改,新闻删除功能的实现
- 教你用Java安全有效的实现两星期内自动登陆功能-Session
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- Java客户端通过HttpURLConnection连接Web服务器的Session保存问题
- JavaWeb-10(会话技术之session&JSP)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- 教你用Java安全有效的实现两星期内自动登陆功能-Session
- Java客户端通过HttpURLConnection连接Web服务器的Session保存问题
- Java_JSP2_Servlet3_Servlet文件上传、Servlet异步处理、Servlet web模块简单示例;
- jsp的session完成登陆功能
- 【Java.Web】Session —— Session的持久化(容器实现此功能)
- Java客户端通过HttpURLConnection连接Web服务器的Session保存问题
- javaWeb_session案例一:09-利用session完成用户登陆
- java web 程序---登陆验证session。提示登陆
- java web 程序---登陆验证session。提示登陆