`
yunhuisdu19811011
  • 浏览: 94696 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论
  • fightingIOW: 案例看了,能实现上传,但是不是异步的,怎么改成页面可以预览呢? ...
    swfUpload实例
  • kizz: 您好,实例我看了,确实不错。您有struts2版的吗?现在项目 ...
    swfUpload实例

创建和配置过滤器

    博客分类:
  • java
阅读更多

1.第一步:过滤器是实现

    package interceptor;

import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

import utils.StringContonts;
import model.UserInfo;

public class AutoInterceptor extends MethodFilterInterceptor {
    @Override
    protected String doIntercept(ActionInvocation ai) throws Exception {
        // TODO Auto-generated method stub
        Map<String, Object> session = ai.getInvocationContext().getSession();
        //当前角色id
        UserInfo userInfo =(UserInfo) session.get(StringContonts.SESSION_USER);
        String path=ServletActionContext.getServletContext().getContextPath();
        String realPath=ServletActionContext.getRequest().getServletPath();
        //登录验证
        if(userInfo == null&&!realPath.contains("loginAdmin")) {
            HttpServletResponse res=ServletActionContext.getResponse();
            res.setCharacterEncoding("UTF-8");
            if(realPath.contains("personcenter")){
                res.getWriter().write("<script>alert(\"你未登录或登录已超时,请重新登录! \");self.parent.parent.location=\""+path+"\";</script>");

               // return "toPerson";
                return null;
            }else if(realPath.contains("manage")){
                res.getWriter().write("<script>alert(\"你未登录或登录已超时,请重新登录! \");self.parent.parent.location=\""+path+"/administrator/login.jsp\"</script>");

      // return "toAdmin";
                return null;
            }else{
                return ai.invoke();
            }
           
        }
        return ai.invoke();
    }

}

2. 第二步 配置过滤器

<package name="sdzn" extends="struts-default">
    <interceptors>
            <!-- 权限拦截器 -->
         <interceptor name="lauthority" class="interceptor.AutoInterceptor" ></interceptor>
                <interceptor-stack name="lcsfAuthStack">
                    <interceptor-ref name="lauthority" />
                    <interceptor-ref name="defaultStack" />
                </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="lcsfAuthStack" />
        <global-results>
            <!-- 没通过登录验证 -->
            <result name="toAdmin" type="redirect">/administrator/login.jsp</result>
            <result name="toPerson" type="redirect">/forepage/counties/index.jsp</result>
            <!-- 错误页面 -->
            <result name="error">/administrator/error.jsp</result>
        </global-results>
    </package>

 

分享到:
评论

相关推荐

    过滤器的基本用法

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,尤其在JSP应用中扮演着不可或缺的角色...在`t12practise`这样的练习项目中,你可以通过创建和配置过滤器,实践上述理论,从而加深对过滤器工作的理解和应用。

    Java中配置过滤器

    ### Java中配置过滤器 在Java Web开发中,过滤器(Filter)是一种非常重要的机制,它可以在请求到达目标资源之前或响应返回客户端之后执行特定的操作。例如,可以使用过滤器来实现统一的编码设置、安全控制、日志...

    jsp中过滤器选择过滤器的写法详解.docx

    理解如何创建和配置过滤器是每个Java Web开发者必备的技能。通过上述的`LoginCheckFilter`示例,我们可以看到过滤器如何拦截请求并控制请求的流向,从而确保只有已认证的用户才能访问特定的资源。

    java配置过滤器,解决乱码

    总结来说,Java配置过滤器解决乱码问题的核心在于确保请求和响应的编码与预期一致。通过设置请求的字符编码和响应的Content-Type,可以有效地防止乱码的产生,提升用户体验。在实际开发中,理解字符编码的工作原理,...

    过滤器实现多层权限控制

    下面我们将通过一个简单的例子来展示如何创建和配置过滤器。假设我们有一个名为`LoginFilter`的过滤器,用于检查用户是否已经登录: ```java public class LoginFilter implements Filter { @Override public ...

    如何配置Filter过滤器处理JSP中文乱码

    【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...

    servlet过滤器实例经典过滤器

    通过实例化和配置过滤器,我们可以实现诸如字符集转换、权限控制、日志记录等多种功能,提升应用的安全性和性能。在学习和使用过程中,一定要深入理解Filter接口的方法和生命周期,以及如何在web.xml中正确配置过滤...

    Java servlet过滤器配置详解

    Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被...理解并熟练配置过滤器对于提升Web应用的质量和性能至关重要。在实践中,结合`web.xml`和自定义过滤器类,我们可以构建出强大且灵活的应用架构。

    dshow简易应用

    8. **代码示例**:通常,"Serialize_source"可能是指一个序列化源文件,可能包含创建和配置过滤器图的示例代码,例如设置捕获设备、添加Sample Grabber过滤器、连接到渲染过滤器等。 9. **调试与测试**:在开发过程...

    基于directshow驱动的摄像头播放和录像软件

    在项目"recorder"中,源代码很可能会展示如何创建和配置过滤器图,以及如何管理和控制过滤器的连接。例如,可能会有代码用于初始化DirectShow库,创建捕获过滤器,然后通过IAMFilterGraph接口添加其他必要的过滤器,...

    vc下用directshow开发usb摄像头的例子

    这个例子可能包括了创建和配置过滤器图、处理事件、显示视频窗口等功能。通过学习和理解这个示例代码,开发者可以更好地掌握在VC环境下利用DirectShow与USB摄像头进行交互的方法。 总结来说,本例旨在教给开发者...

    过滤器文档过滤器使用中的方法过滤器.pdf

    如果一个过滤器决定阻止请求,那么后续的过滤器和目标Servlet都不会收到这个请求。 总结起来,过滤器是Web应用中不可或缺的一部分,它们提供了强大的功能,如数据安全、编码一致性以及自动化操作。通过合理地使用...

    过滤器和监听器的使用与区别

    过滤器.doc中,可能会包含如何配置过滤器的XML示例,以及如何在过滤器中实现doFilter方法,将请求和响应对象传递给下一个过滤器或目标资源。 监听器(Listener)则是用于监听特定事件的Java类,当这些事件发生时,...

    DirectShow AV 视频管理源码

    - 初始化:通常会涉及设置默认的设备、初始化COM库、创建和配置过滤器等步骤。 - 构建过滤器图:根据应用场景选择合适的源过滤器、解码过滤器、转换过滤器和渲染过滤器,并通过`IAMFilterGraph::AddFilter`方法...

    基于DirectShow控制台的摄像头录制工具

    这可能涉及到创建和配置过滤器图,设置捕获参数(如分辨率、帧率),以及处理事件,如录制开始和结束。 在使用这个压缩包时,用户应先了解DirectShow的基本概念,然后根据提供的代码学习如何建立和操纵过滤器图。...

    Servlet过滤器的简单使用源码+文档

    Servlet过滤器是基于Java的Servlet API实现的,主要通过实现`javax.servlet.Filter`接口来创建。`Filter`接口定义了三个核心方法:`doFilter()`, `init()`, 和 `destroy()`。`doFilter()`方法是过滤器的核心,每当有...

    过滤器(Filter)

    `Filter创建.exe`可能是一个用于创建过滤器实例或者配置过滤器的工具,而`说明.txt`可能包含了关于如何使用这个工具或者过滤器的详细步骤和注意事项。 过滤器还可以与其他框架集成,比如Spring MVC中的Filter,可以...

    过滤器.zip

    2. **配置过滤器**:在web.xml文件中,我们可以定义过滤器的类名、过滤器名称,以及它应该拦截哪些URL模式。例如: ```xml &lt;filter-name&gt;myFilter &lt;filter-class&gt;com.example.MyFilter&lt;/filter-class&gt; ...

    使用过滤器的方法!教你如何使用过滤器

    5. **使用注解配置过滤器**: 在Java EE 6及以上版本,还可以使用`@WebFilter`注解来代替`web.xml`配置: ```java @WebFilter(filterName = "myFilter", urlPatterns = "/*") public class MyFilter implements ...

    DirectShow获取摄像头信息,打开摄像头例子Amcap

    通过分析和研究Amcap的源代码,开发者可以学习如何创建和配置过滤器图形,如何查找和连接合适的过滤器,以及如何使用DirectShow API来控制媒体流。这对于理解DirectShow的工作原理以及构建自己的多媒体应用非常有...

Global site tag (gtag.js) - Google Analytics