跳过登陆页面直接访问该jsp文件了,这样不好,请问大家如何避免这种问题...
发布网友
发布时间:2024-10-03 04:17
我来回答
共5个回答
热心网友
时间:2024-10-03 09:47
用session。 一般用户登陆信息都存在session中。
我给2中解决方式
(1)如果需要登陆验证才能访问的页面少的话可以通过include文件方式。
把下面代码保存文件名字为checksession.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%
if(session.getAttribute("userinfo")==null){
//用户没有登陆
response.sendRedirect("/login.jsp");
}
%>
//把需要登陆才能访问的页面中包含这个文件。
(2)如果需要登陆验证的页面多的话建议采用filter.
package com.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/*
*TestFilter 在web.xml中配置说明
*
*<filter>
* <filter-name>TestFilter</filter-name>
* <filter-class>com.filter.TestFilter</filter-class>
* </filter>
*配置需要经过login.jsp登陆过才能访问的区域
*目前配置方式仅仅是在用户访问product.jsp的时候才走过滤器,可以配置/*,/user/*等。
* <filter-mapping>
* <filter-name>TestFilter</filter-name>
* <url-pattern>/product.jsp</url-pattern>
* </filter-mapping>
* 韩卫召
*/
public class TestFilter implements Filter {
public void destroy() {
//过滤器销毁,一般是释放资源
}
/**
* 韩卫召
* 某些url需要登陆才能访问(session验证过滤器)
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
HttpSession session=request.getSession();
//userinfo,需要通过login.jsp 登陆后向session中写入用户信息,标示用户已经登陆
if(session.getAttribute("userinfo")==null){
String errors = "请先登陆,再访问此服务!";
request.setAttribute("errors", errors);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else{
arg2.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
//初始化操作,读取web.xml中过滤器配置的初始化参数,满足你提的要求不用此方法
}
}
热心网友
时间:2024-10-03 09:49
验证COOKIE 空或不存在 跳到登陆页面
热心网友
时间:2024-10-03 09:44
在所有需要登录才能看到的页面中加入验证
验证方法:用户登陆成功后在session中保存一个变量(例如username),用来保存用户的信息,然后在每个页面通过request.getAttribute方法获取这个参数,然后判断是否为空(null),不为空则合法可以访问,如果为空,则自动跳转到登陆页面
可以把验证的部分单独写一个jsp文件,然后在需要验证的文件中include,这样子比较方便修改,可以减少很多麻烦
热心网友
时间:2024-10-03 09:45
增加过滤器,当请求一个URL的时候先经过过滤器过滤,判断权限
热心网友
时间:2024-10-03 09:51
增加权限控制机制,在成功登录后将权限信息存放到Session中,每访问一个地址(登录页面除外),都验证下权限。