`
echo46219519
  • 浏览: 11340 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

filter and listener config in my project

 
阅读更多
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext*.xml
</param-value>
</context-param>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml,/WEB-INF/struts-config-incident.xml,/WEB-INF/struts-config-survey.xml,
/WEB-INF/struts-config-stock.xml,
/WEB-INF/struts-config-bizOrder.xml,/WEB-INF/struts-config-productList.xml,
/WEB-INF/struts-config-account.xml,/WEB-INF/struts-config-user.xml,
/WEB-INF/struts-config-rolepower.xml,/WEB-INF/struts-config-supplier.xml,
/WEB-INF/struts-config-login.xml,/WEB-INF/struts-config-salesProject.xml,
/WEB-INF/struts-config-salesContract.xml,/WEB-INF/struts-config-orgorganization.xml,
/WEB-INF/struts-config-orgposition.xml,/WEB-INF/struts-config-employee.xml,
/WEB-INF/struts-config-work.xml,/WEB-INF/struts-config-kms.xml,
/WEB-INF/struts-config-project.xml,/WEB-INF/struts-config-finance.xml,
/WEB-INF/struts-config-calender.xml,
/WEB-INF/struts-config-financeFee.xml,
                /WEB-INF/struts-config-common.xml,
                /WEB-INF/struts-config-financeEmployeeFee.xml,
                /WEB-INF/struts-config-inPurchase.xml,
/WEB-INF/struts-config-software.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>
freemarker.ext.servlet.FreemarkerServlet
</servlet-class>
<!-- FreemarkerServlet settings: -->
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/</param-value>
</init-param>
<init-param>
<param-name>NoCache</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html</param-value>
</init-param>
<!-- FreeMarker settings: -->
<init-param>
<param-name>template_update_delay</param-name>
<param-value>0</param-value>
<!-- 0 is for development only! Use higher value otherwise. -->
</init-param>
<init-param>
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>

<init-param>
<param-name>locale</param-name>
<param-value>zh_CN</param-value>
</init-param>
<init-param>
<param-name>number_format</param-name>
<param-value>0.##########</param-value>
</init-param>

<load-on-startup>1</load-on-startup>
</servlet>
<!-- ================================================================================= -->
<!-- 定时任务处理 tsing -->
<!-- ================================================================================= -->
<!--  <servlet>
    <servlet-name>TaskServlet</servlet-name>
    <servlet-class>com.sino.mis.incident.task.TaskManagerServlet</servlet-class>
    <init-param>
    <description>定时任务列表</description>
    <param-name>task</param-name>
    <param-value>
    com.sino.mis.incident.task.AssignTask,
    com.sino.mis.incident.task.UpgradeTask
    </param-value>
    </init-param>
    <init-param>
    <description>定时任务执行周期(分钟)</description>
    <param-name>period</param-name>
    <param-value>1</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>-->

<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


<!--close by wm :reason is the spring has  CharacterEncodingFilter-->
<!-- filter>
<description>character encoding</description>
<display-name>character encoding</display-name>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.sino.mis.equipment.common.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping-->

<!-- edit by wm in 2007-02-08-->
<filter>
<filter-name>clickstreamFilter</filter-name>
<filter-class>
com.opensymphony.clickstream.ClickstreamFilter
</filter-class>
</filter>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter>
<filter-name>rewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>commons</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>clickstreamFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>rewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<!--dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher-->
</filter-mapping>
<!-- ==================================================== -->
<!-- 身份认证 tsing-->
<!-- ==================================================== -->
    <filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>
com.sino.mis.system.web.servlet.AuthenticationFilter
</filter-class>
<init-param>
<param-name>loginPage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
<init-param>
<param-name>loginAction</param-name>
<param-value>/login.do?actionType=setSession</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<listener>
<listener-class>
com.opensymphony.clickstream.ClickstreamListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.util.IntrospectorCleanupListener
</listener-class>
</listener>
<session-config>
<session-timeout>240</session-timeout>
</session-config>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

    <!-- 捕获常见的Http错误 tsing -->
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>

<!--
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/displaytag-11.tld</taglib-uri>
<taglib-location>/WEB-INF/displaytag-11.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/extremecomponents.tld</taglib-uri>
<taglib-location>/WEB-INF/extremecomponents.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/sino-common.tld</taglib-uri>
<taglib-location>/WEB-INF/sino-common.tld</taglib-location>
</taglib>
</jsp-config>
-->
</web-app>



=================================

package com.sino.mis.system.web.servlet;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sino.mis.common.Global;

public class AuthenticationFilter implements Filter {

private FilterConfig config;
private String loginPage;
private String loginAction;
private boolean isFromLoginPage = false;
private boolean enabled = true;

public void init(FilterConfig config) throws ServletException {
this.config = config;
loginPage = config.getInitParameter("loginPage");
if(loginPage == null)
loginPage = "/login.jsp";
loginAction = config.getInitParameter("loginAction");
if(loginAction == null)
loginAction = "/login.do";
String e = config.getInitParameter("enabled");
if(e != null && !Boolean.parseBoolean(e))
enabled = false;
}
public void destroy() {
this.config = null;
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

if(enabled){
//验证是否己登录
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;

if (!isLogin(req)) {
String forwardURL = getForwardURL(req);
ServletContext context = config.getServletContext();
            RequestDispatcher reqDisp = context.getRequestDispatcher(forwardURL);
            if (reqDisp == null)
            res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Login page doesn't exist");
           
            reqDisp.forward(req,res);

            return ;
}
}
chain.doFilter(request, response);
}

private boolean isLogin(HttpServletRequest request) {
// 简单验证用户标示是否存在
return request.getSession().getAttribute(Global.USER_ID) != null;
}

private String getForwardURL(HttpServletRequest req) {
StringBuffer url = null;
isFromLoginPage = "true".equals(req.getParameter("loginFlag")) ? true: false;
if (isFromLoginPage)
url = new StringBuffer(loginAction);
else {
url = new StringBuffer(loginPage);
}

return url.toString();
}

}
=========================



分享到:
评论

相关推荐

    maven servlet 3.0 eclipse config video

    3. **监听器和过滤器**: 可以使用注解`@WebListener`和`@WebFilter`声明监听器和过滤器,简化了配置。 4. **部署描述符**: 虽然可以不写web.xml,但仍然支持传统的XML配置方式,方便兼容旧版本的代码。 在视频教程...

    图文并茂讲解SSH2框架的搭建

    2. **新建Web项目**:选择“File” -&gt; “New” -&gt; “Web Project”,输入项目名称,选择Java EE 5.0,点击“Finish”。 #### 五、添加Spring支持 1. **选择Spring版本**:在项目中选择Spring 2.5的支持。 2. **设置...

    搭建SSH框架步骤.doc

    - 在Eclipse中新建Web项目:右击工程栏 -&gt; New -&gt; Web Project。 - 输入项目名称(如Demo),选择Java版本(如Java 5.0),完成创建。 - 在Src文件夹下创建dal、bll、entity、bll.biz、bll.action三个包以及两个子包...

    spring搭建

    web.xml 文件是 Java web 应用程序的核心配置文件,用于配置 Servlet、Filter、Listener 等组件。在这里,我们需要配置 DispatcherServlet,以便将所有的请求交给 SpringMVC 处理。 springmvc.xml 配置 在第四步中...

    MyEclipse下SSH配置详细步骤及异常处理

    在MyEclipse中创建一个新的Dynamic Web Project,命名为你的项目名,例如"MySSHProject"。 ### 2. 添加SSH库 你需要为项目添加SSH框架的JAR文件。这些库可以通过Maven或者手动下载获取。在`WEB-INF/lib`目录下添加...

    ssh框架搭建教程doc

    然后,配置web.xml,添加Struts的过滤器,例如`&lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;`。 3. **分包**: 建立良好的包结构,如...

    ssh框架搭建教程.pdf

    这涉及到导入Struts的相关库,修改web.xml文件,配置Struts的Filter,以及创建struts-config.xml文件来定义Action和Form Bean。 第四步,引入Spring框架。Spring作为核心容器,负责管理对象的生命周期和依赖关系。...

    Web应用打包与webxml

    - `&lt;filter&gt;`和`&lt;filter-mapping&gt;`:定义过滤器及其映射,过滤器可以拦截请求并在Servlet处理之前或之后执行操作。 - `&lt;context-param&gt;`:全局参数,可以在整个Web应用中使用,比如设置页面大小。 - `&lt;listener&gt;`:...

    eclipse+Maven+SSM

    6. **Web应用配置**:在`web.xml`中配置DispatcherServlet、Filter和Listener,使SSM框架能够正常工作。 7. **Eclipse与Maven的集成**:配置Eclipse的Maven设置,使其能自动编译、打包和运行项目。 8. **测试与...

    CAS客户端开发说明1

    在进行客户端开发时,务必正确配置CAS客户端的相关组件,如Listener、Filter和FilterMapping,以确保SSO机制的正常运作。 总的来说,这个指南详细阐述了建立CAS客户端开发环境、配置、测试以及开发中的关键步骤,为...

    JavaEE项目之SSM+Maven实例2源码包

    - `web.xml`:Web应用的部署描述符,配置Servlet、Filter、Listener等。 - `spring-servlet.xml`:Spring MVC的配置文件,配置DispatcherServlet、视图解析器、拦截器等。 - `applicationContext.xml`:Spring的...

    Java Web中解决路径(绝对路径与相对路径)问题

    3. **Spring框架的解决方案**:Spring提供了一种在`web.xml`中设置`webAppRootKey`参数的方法,然后在Servlet、Filter或Listener中获取并将其作为系统属性写入。这样,通过`System.getProperty("webapp.root")`可以...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    15.2.3 [listener]元素 457 15.2.4 [tag]元素 458 15.2.5 [tag-file]元素 460 15.2.6 [function]元素 461 15.3 传统标签的开发 462 15.3.1 实例一:[hello]标签 462 15.3.2 实例二:[max]标签 465 15.3.3 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    15.2.3 [listener]元素 457 15.2.4 [tag]元素 458 15.2.5 [tag-file]元素 460 15.2.6 [function]元素 461 15.3 传统标签的开发 462 15.3.1 实例一:[hello]标签 462 15.3.2 实例二:[max]标签 465 15.3.3 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    15.2.3 [listener]元素 457 15.2.4 [tag]元素 458 15.2.5 [tag-file]元素 460 15.2.6 [function]元素 461 15.3 传统标签的开发 462 15.3.1 实例一:[hello]标签 462 15.3.2 实例二:[max]标签 465 15.3.3 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    15.2.3 [listener]元素 457 15.2.4 [tag]元素 458 15.2.5 [tag-file]元素 460 15.2.6 [function]元素 461 15.3 传统标签的开发 462 15.3.1 实例一:[hello]标签 462 15.3.2 实例二:[max]标签 465 15.3.3 ...

Global site tag (gtag.js) - Google Analytics