Java JSP/Servlet: controller servlet throwing the famous stack overflow

后端 未结 2 1063
灰色年华
灰色年华 2020-12-18 10:33

I\'ve read several docs and I don\'t get it: I know I\'m doing something wrong but I don\'t understand what. I\'ve got a website that is entirely dynamically generated: the

相关标签:
2条回答
  • 2020-12-18 10:44

    Try using struts in which front controller pattern is inbuilt. There you will have a action class and you can define forwards in struts-config file using which you can easily manage the forwards.

    Go through the tutorial http://www.roseindia.net/struts/struts2/index.shtml. Hope this helps you.

    0 讨论(0)
  • 2020-12-18 10:59

    Unfortunately, Serlvet spec doesn't allow to create a servlet mapping to match only incoming request, not forwards. However, this can be done for filter mappings (and by default filter mappings match only incoming requests).

    So, the typical solution for intercepting everything with a single servlet is to use a UrlRewriteFilter:

    <filter>
        <filter-name>urlRewrite</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>urlRewrite</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <servlet>
        <servlet-name>application</servlet-name>
        <servlet-class>...</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>application</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>
    

    /WEB-INF/urlrewrite.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE urlrewrite
        PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
        "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
    
    <urlrewrite default-match-type="wildcard">
        <rule>
            <from>/**</from>
            <to>/app/$1</to>
        </rule>
        <outbound-rule>
            <from>/app/**</from>
            <to>/$1</to>
        </outbound-rule>    
    </urlrewrite>
    

    This way also allows you to specify exceptions from /* mapping for static files.

    0 讨论(0)
提交回复
热议问题