JSP页面访问用户验证
jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问。本文讨论内容是通过权限验证的用户,才可以访问特定的页面。
JSP 页面验证,涉及到的知识有Session, 网页权限, 用户验证等。
session对象
session对象用来存储有关用户会话的所有信息,一个会话就是浏览器与服务器之间的一次通话,它包含浏览器与服务器之间的多次请求、响应过程。session是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息,信息保存在服务器端。
session信息获取
1) JSP
session.setAttribute("userinfo", USERNAME); // session保存登录信息和用户名
2) Java(Servlet)
request.getSession().setAttribute("userinfo", USERNAME); // session保存登录信息和用户名
其中,request为HttpServletRequest对象,在doPost(HttpServletRequest request, HttpServletResponse response){...}引用
session超时设置
1) web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
...
<session-config>
<session-timeout>30</session-timeout> <!-- 单位为分钟,例如30分钟 -->
</session-config>
</web-app>
2) Java
request.getSession().setMaxInactiveInterval(30*60); // 设置session失效时间(timeout),单位为秒
注: setMaxInactiveInterval() 比 web.xml 优先级高,如果两者同时设置则采用 setMaxInactiveInterval()
JSP 网页权限
JSP 网页权限,有两种配置方式:
1) include 文件
如: 验证文件 logincheck.jsp
[html]
<%
if(session.getAttribute("userinfo") == null) {
%>
<script type="text/javascript" language="javascript">
alert("您还没有登录,请登录...");
window.document.location.href="userlogin.html";
</script>
<%
}
%>
在需要验证的jsp网页起始位置,包含 logincheck.jsp , 例如在需要验证的jsp网页 page111.jsp 中添加
<%@ include file="logincheck.jsp" %>
2) filter 过滤
首先,在web.xml配置文件中设置过滤页
[html]
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.homer.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/page222.jsp</url-pattern>
相关新闻>>
- 发表评论
-
- 最新评论 更多>>