Created
May 31, 2011 06:37
-
-
Save troter/1000070 to your computer and use it in GitHub Desktop.
SAStrutsと生Servletを共存させる
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package jp.troter.sandbox.seasar.struts.filter; | |
import java.io.IOException; | |
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 org.seasar.framework.util.StringUtil; | |
import org.seasar.struts.filter.RoutingFilter; | |
import org.seasar.struts.util.RequestUtil; | |
public class ExtendedRoutingFilter extends RoutingFilter { | |
@Override | |
public void init(FilterConfig config) throws ServletException { | |
super.init(config); | |
// TODO ignorePatternsをconfig.initParameter("ignorePatterns")から取得、設定 | |
} | |
/** | |
* IgnorePatternsを利用してSAStrutsに渡さないPathを判断 | |
* @param request | |
* @return | |
*/ | |
protected boolean isIgnorePattern(HttpServletRequest request) { | |
if (StringUtil.equals("/test/", RequestUtil.getServletPath(request))) { | |
return true; | |
} | |
return false; | |
} | |
@Override | |
public void doFilter(ServletRequest request, ServletResponse response, | |
FilterChain chain) throws IOException, ServletException { | |
if (! isIgnorePattern((HttpServletRequest) request)) { | |
super.doFilter(request, response, chain); | |
return ; | |
} | |
chain.doFilter(request, response); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" | |
version="2.4"> | |
<filter> | |
<filter-name>encodingfilter</filter-name> | |
<filter-class>org.seasar.extension.filter.EncodingFilter</filter-class> | |
<init-param> | |
<param-name>encoding</param-name> | |
<param-value>UTF-8</param-value> | |
</init-param> | |
</filter> | |
<filter> | |
<filter-name>s2filter</filter-name> | |
<filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class> | |
</filter> | |
<filter> | |
<filter-name>routingfilter</filter-name> | |
<filter-class>jp.troter.sandbox.seasar.struts.filter.ExtendedRoutingFilter</filter-class> | |
<!-- TODO | |
<init-param> | |
<param-name>ignorePatterns</param-name> | |
<param-value> | |
regexp 1 | |
regexp 2 | |
... | |
regexp N | |
</param-value> | |
</init-param> | |
--> | |
</filter> | |
<filter-mapping> | |
<filter-name>encodingfilter</filter-name> | |
<url-pattern>/*</url-pattern> | |
</filter-mapping> | |
<filter-mapping> | |
<filter-name>s2filter</filter-name> | |
<url-pattern>/*</url-pattern> | |
<dispatcher>REQUEST</dispatcher> | |
<dispatcher>FORWARD</dispatcher> | |
<dispatcher>INCLUDE</dispatcher> | |
</filter-mapping> | |
<filter-mapping> | |
<filter-name>routingfilter</filter-name> | |
<url-pattern>/*</url-pattern> | |
<dispatcher>REQUEST</dispatcher> | |
</filter-mapping> | |
<servlet> | |
<servlet-name>test</servlet-name> | |
<servlet-class>jp.troter.sandbox.seasar.struts.filter.action.TestServlet</servlet-class> | |
</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</param-value> | |
</init-param> | |
<init-param> | |
<param-name>configFactory</param-name> | |
<param-value>org.seasar.struts.config.S2ModuleConfigFactory</param-value> | |
</init-param> | |
<load-on-startup>1</load-on-startup> | |
</servlet> | |
<servlet> | |
<servlet-name>s2container</servlet-name> | |
<servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class> | |
<load-on-startup>2</load-on-startup> | |
</servlet> | |
<servlet-mapping> | |
<servlet-name>test</servlet-name> | |
<url-pattern>/test</url-pattern> | |
<url-pattern>/test/</url-pattern> | |
<url-pattern>/test.do</url-pattern> | |
</servlet-mapping> | |
<servlet-mapping> | |
<servlet-name>action</servlet-name> | |
<url-pattern>*.do</url-pattern> | |
</servlet-mapping> | |
<servlet-mapping> | |
<servlet-name>s2container</servlet-name> | |
<url-pattern>/s2container</url-pattern> | |
</servlet-mapping> | |
<error-page> | |
<error-code>404</error-code> | |
<location>/WEB-INF/view/error/404.jsp</location> | |
</error-page> | |
<error-page> | |
<error-code>500</error-code> | |
<location>/WEB-INF/view/error/500.jsp</location> | |
</error-page> | |
<jsp-config> | |
<jsp-property-group> | |
<url-pattern>*.jsp</url-pattern> | |
<el-ignored>false</el-ignored> | |
<page-encoding>UTF-8</page-encoding> | |
<scripting-invalid>false</scripting-invalid> | |
<include-prelude>/WEB-INF/view/common/prelude.jsp</include-prelude> | |
<trim-directive-whitespaces>true</trim-directive-whitespaces> | |
</jsp-property-group> | |
</jsp-config> | |
</web-app> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment