struts登录拦截器问题

问题描述

struts登录拦截器问题

问题:登录之后跳转到一个jsp页面,该页面上通过跳转时被登录拦截器拦截。
我想问的是,明明已经登录之后再跳转的,为什么会被登录拦截器拦截呢?刚开始接触这一块,不是很懂,希望能尽快得到大神们的帮助,谢谢谢谢谢谢!!

解决方案

struts实现拦截器的问题
STRUTS2 登录拦截器
struts2登录拦截器代码实例

解决方案二:

what are you 说啥累?不粘代码怎么知道哪里错了?

解决方案三:

拦截器在action动作的前后都会拦截的。估计你的拦截器在invoke方法之后还有其他行为吧

解决方案四:

说明你的拦截器没有判断是否已登录 已登录应该执行 return invoker.invoke();

解决方案五:

Filter代码:
public class UserAuthenticationFilter implements javax.servlet.Filter {
protected FilterConfig filterConfig = null;
private String redirectURL = null;
private List notCheckURLList = new ArrayList();
private String sessionKey = null;

public void doFilter(ServletRequest servletRequest,
        ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;

    HttpSession session = request.getSession();
    if (sessionKey == null) {
        filterChain.doFilter(request, response);
        return;
    }
    if ((!checkRequestURIIntNotFilterList(request))
            && session.getAttribute(sessionKey) == null) {
        response.sendRedirect(request.getContextPath() + redirectURL);
        return;
    }
    filterChain.doFilter(servletRequest, servletResponse);
}

public void destroy() {
    notCheckURLList.clear();
}

private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) {
    String uri = request.getServletPath()
            + (request.getPathInfo() == null ? "" : request.getPathInfo());
    return notCheckURLList.contains(uri);
}

public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
    redirectURL = filterConfig.getInitParameter("redirectURL");
    sessionKey = filterConfig.getInitParameter("checkSessionKey");

    String notCheckURLListStr = filterConfig.getInitParameter("notCheckURLList");

    if (notCheckURLListStr != null) {
        StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";");
        notCheckURLList.clear();
        while (st.hasMoreTokens()) {
            notCheckURLList.add(st.nextToken());
        }
    }
}

}

解决方案六:

struts.xml部分配置:
<action name="login"  class="com.action.LoginAction"  method="loginAction">
            <result name="ordinaryUser" type="chain">getProjectHomePage</result>
</action>
<action name="getProjectHomePage" class="com.action.OnloadProjectHomePage" method="onloadProjectHomePage">
            <result name="success">/homepage.jsp</result>(注:我把这里的homepage.jsp改成了另外一个页面main.jsp)
            <result name="error">/error.jsp</result>

解决方案七:

web.xml部分配置:

UserAuthenticationFilter
com.filters.UserAuthenticationFilter

checkSessionKey
loginUser

redirectURL
/loginTimeout.jsp

notCheckURLList
/error.jsp;/notFound.jsp;/login.jsp;/loginTimeout.jsp;/web/login;/web/index;/web/loginOut

解决方案八:

web.xml部分配置:

UserAuthenticationFilter
com.filters.UserAuthenticationFilter

checkSessionKey
loginUser

redirectURL
/loginTimeout.jsp

notCheckURLList
/error.jsp;/notFound.jsp;/login.jsp;/loginTimeout.jsp;/web/login;/web/index;/web/loginOut

解决方案九:

web.xml部分配置:

<filter>
        <filter-name>UserAuthenticationFilter</filter-name>
        <filter-class>com.filters.UserAuthenticationFilter</filter-class>
        <init-param>
            <param-name>checkSessionKey</param-name>
            <param-value>loginUser</param-value>
        </init-param>
        <init-param>
            <param-name>redirectURL</param-name>
            <param-value>/loginTimeout.jsp</param-value>
        </init-param>
        <init-param>
            <param-name>notCheckURLList</param-name>
            <param-value>/error.jsp;/notFound.jsp;/login.jsp;/loginTimeout.jsp;/web/login;/web/index;/web/loginOut</param-value>
        </init-param>
    </filter>

解决方案十:

main.jsp页面跳转部分:

<a href="modifyUser.jsp">个人信息修改</a>(注:此处modifUser.jsp为原项目的页面,main.jsp为本人添加的新页面)

问题:以上修改本意是登录成功之后跳转到main页面,然后通过点击 个人信息修改 希望能够跳转到个人信息修改页面,但是在跳转的实际情况中要求重新登录,希望大神们指点迷津

时间: 2024-11-02 09:47:22

struts登录拦截器问题的相关文章

ajax-springmvc 登录拦截器

问题描述 springmvc 登录拦截器 拦截器起到了作用,跳到了登陆页面,登录页面是通过ajax提交请求给后台的,后台执行完了之后会返回一个map给ajax的success方法,从而进行页面的跳转.可是现在的问题是,后台执行了,但是跳不回前台,map也传回不去,更不说页面的跳转了. 解决方案 SpringMVC 登录拦截器实现springMVC之拦截器SpringMVC拦截器实现登录控制 解决方案二: 小机器人已经给你答案了: 1.不要拦截此跳转: 2.登录在后台执行了后,如果登录成功,直接更

struts-关于Struts自定义拦截器的问题

问题描述 关于Struts自定义拦截器的问题 Struts自定义拦截器里只能设置不拦截指定的方法或者只拦截指定的方法.如果我有两个Action(Action1,Action2)而里面的方法有相同方法名的方法(foo()),而我想拦截Action1的foo()方法,不想拦截Action2的foo()方法,该怎么做呢,能不能指定拦截器不拦截指定的Action呢?*_* 解决方案 运行逻辑是先运行拦截器再运行action,拦截器配置可作用于一个action下,两个action完全可以分开配置 解决方案

struts中用拦截器实现登录验证功能AuthorizationInterceptor

  用拦截器实现登录验证功能AuthorizationInterceptor   package com.interceptor;     import com.opensymphony.xwork2.ActionInvocation;   import com.opensymphony.xwork2.interceptor.*;   import com.opensymphony.xwork2.*;   import java.util.*;   public class Authorizat

基于Struts 2拦截器实现细粒度的基于角色的存取控制

引言 Apache Struts 作为最成功的 MVC Web 框架早已得到了广泛的应用,但是其自身也暴露出不少缺点,从而引出了 Struts 2 . Struts 2 摒弃了原来 Struts 1 的设计, 而是转向了 webwork2,并结合 Struts 已有的优点,试图打造出一个集众家所长的完美 Web 框架. Struts 2 因此也具备 webwork2 中的一个非常重要的特性 - 拦截器 (Interceptor) .拦截器会在 Action 执行之前和之后被执行(如下图),是一种

基于 Struts 2 拦截器实现细粒度的基于角色的存取控制

http://www.ibm.com/developerworks/cn/java/j-lo-struts2-rbac/    

拦截器问题 谢谢-不进Struts拦截器,麻烦帮解决,谢谢~~~~~

问题描述 不进Struts拦截器,麻烦帮解决,谢谢~~~~~ test.jsp <%@ page contentType="text/html;charset=GB2312"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

struts实现拦截登录问题

问题描述 struts实现拦截登录问题 ajax提交数据到后台--->struts分配请求映射到具体的action-->action返回result json字符串并且设置session-->ajax的success解析json 成功就跳转到拦截action去获取session-->用户名密码正确就返回"login"跳转到main.html的路径 这里可以实现跳转...但是以上的流程在拦截器里面获取不到session,但是我自己写一个简单的跳转action到具体

SpringMVC拦截器实现登录认证_java

博客以Demo的形式讲诉拦截器的使用 项目结构如图: 需要的jar:有springMVC配置需要的jar和jstl需要的jar SpringMVC包的作用说明: aopalliance.jar:这个包是AOP联盟的API包,里面包含了针对面向切面的接口.通常spring等其它具备动态织入功能的框架依赖这个jar spring-core.jar:这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统

Java的Struts框架中Action的编写与拦截器的使用方法_java

Struts2 Action/动作动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架.每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑. 但动作也提供其他两个重要的能力.首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果.二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回. 创建动作:在Struts2的动作,唯一的要求是必须有一个无参数的方法返回String或结果的对象,必