当前位置: 代码迷 >> Java Web开发 >> 怎么阻止手写url跳转
  详细解决方案

怎么阻止手写url跳转

热度:338   发布时间:2016-04-17 12:29:00.0
如何阻止手写url跳转
在我的工程里有一个装一些需要显示的html,

现在手动输入html的地址就能打开html。

现在希望如果没有登陆的话,手动输入html地址跳转到login画面。

请问各位高手怎么在web.xml里配置,或者有其他什么方法。

------解决方案--------------------
登录后把用户信息存session里面
每次进入页面时判断session,如果为空,则跳转至login页面
------解决方案--------------------
过滤器,采用 /* 形式进行过滤,在Filter中判断session中是否为空,通过URI排除登录页面。

过滤器中的doFilter方法基本上如下:

Java code
public void doFilter(ServletRequest request, ServletResponse response,        FilterChain chain) throws IOException, ServletException {    HttpServletRequest httpRequest = (HttpServletRequest)request;    HttpServletResponse httpResponse = (HttpServletResponse) response;    HttpSession session = httpRequest.getSession();    if(session.getAttribute(ApplicationSource.USER) == null            && !httpRequest.getRequestURI().endsWith("/login.jsp") // 这些都是一些需要排除的页面              && !httpRequest.getRequestURI().endsWith("/calendar/")            && (httpRequest.getRequestURI().indexOf("/calendar/img") < 0)            && (httpRequest.getRequestURI().indexOf("/calendar/resources") < 0)            && (httpRequest.getRequestURI().indexOf("/calendar/servlet") < 0)            && !httpRequest.getRequestURI().endsWith("/login.do")){        httpResponse.sendRedirect(httpRequest.getContextPath() + "/login.jsp");    }        chain.doFilter(request, response);}
  相关解决方案