【问题标题】:how to redirect url to jsp in web.xml如何将url重定向到web.xml中的jsp
【发布时间】:2011-03-25 18:59:06
【问题描述】:

(应该很简单-)

如何将模式 yada*.js 的所有 url 重定向到我的特定 jsp。
这个添加到我的 web.xml 中是否有效:

<servlet-mapping>
        <servlet-name>MySpecific.jsp</servlet-name>
        <url-pattern>yada*.js</url-pattern>
</servlet-mapping>

或者我必须使用 javax.servlet.filter 来达到这个目的?

【问题讨论】:

    标签: java jsp web-applications


    【解决方案1】:

    我会将这些文件放在名为 /yada 的文件夹中,然后使用 url-pattern/yada/*

    如果您不想这样做,那么在过滤器中手动确定它确实是唯一的办法。


    更新:根据您的更新,您实际上还有第二个问题,这与您最初的问题并不直接明显:“如何将 JSP 文件声明为 servlet?”。答案是:使用&lt;jsp-file&gt; 而不是&lt;servlet-class&gt;

    <servlet>
        <servlet-name>foo.jsp</servlet-name>
        <jsp-file>/foo.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>foo.jsp</servlet-name>
        <url-pattern>/foo/*</url-pattern>
    </servlet-mapping>
    

    尽管如此,如 cmets 中所述,这不是最佳做法。这对 JSP 文件中的原始 Java 代码有异味,您应该在所有范围内 avoid

    【讨论】:

    • 但是 servlet-name 属性可以直接指向 jsp 文件而不是 servlet 吗?
    • 哦,我以为你已经有一个 &lt;servlet&gt;&lt;jsp-file&gt; 了。不,你不能独自做到这一点。在&lt;servlet&gt; 中使用&lt;jsp-file&gt; 而不是&lt;servlet-class&gt;,它会起作用。然而,这不是推荐的方式。 JSP 是错误的工具。 JSP 中的原始 Java 代码应为avoided
    • @helios: 经常问这类问题的人:)
    • 那是我最终使用的解决方案。
    【解决方案2】:

    根据服务器的不同,您可以放入 url-pattern 的内容非常有限。

    两个有效:

    • 绝对路径(无通配符)
    • *.ext

    所以该规范不匹配。我确实会使用过滤器。

    PS:不要忘记在生成的 JSP 中指定 :)。并且 content-type 应该包括 charset=xxxxx

    【讨论】:

    • 好的,但是如何从过滤器转发到 JSP。我必须在转发命令之后或之前调用'chain.doFilter()'。如果找到 pattarn 或仅当未找到该模式时,我是否必须调用它
    • 我在stackoverflow.com/questions/3415240/… 继续这个帖子,因为我目前只能在这个帖子中写评论,而且问题还没有解决
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2018-09-19
    相关资源
    最近更新 更多