Servlet映射失败

时间:2011-09-14 21:49:26

标签: jsp tomcat servlets web.xml

现在我遇到以下问题: 我正在尝试使用Tomcat 7和JSP创建一个网站。 但我无法正确配置服务器。 我想要一个在浏览器地址栏中显示的网站,例如mydomain.com/about,没有任何* .jsp或* .html。 为了实现这一点,我有一个重定向Bean,由JSP-Page调用,解析请求的URI并返回应该转发到的JSP-File的路径。问题是web.xml中的servlet映射 在那里,我试图为例如创建一个servlet映射。 / about将映射到调用bean的redirect.jsp。问题是,我收到以下异常:

javax.servlet.ServletException:没有为servlet重定向指定servlet类

以下是web.xml的代码:

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/engine</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/about</url-pattern>
</servlet-mapping>

BTW:正确调用index.jsp,因为它位于welcome-file-list中。问题是重定向到其他站点而不在地址栏中显示其路径。

也许有一种方法可以在Javabean中前进。这可以通过servlet映射中的<servlet-class> - 标记来调用。

提前感谢您的帮助! 最大

2 个答案:

答案 0 :(得分:4)

  

没有为servlet重定向指定servlet类

此错误仅表示在redirect中没有名称为web.xml的servlet已定义

<servlet>
    <servlet-name>redirect</servlet-name>
    <servlet-class>com.example.YourServletClass</servlet-class>
</servlet>

<servlet>
    <servlet-name>redirect</servlet-name>
    <jsp-file>/redirect.jsp</jsp-file>
</servlet>

相应地修复web.xml


对于具体问题

无关,我建议使用单个Filter和一些(XML?)配置文件。像Tuckey's URL rewrite filter这样的东西,与Apache HTTPD的mod_rewrite非常相似。

答案 1 :(得分:1)

对不起, 这只是web.xml中的一个块

<servlet>
    <servlet-name>redirect</servlet-name>
    <description>The main redirection thing</description>
    <jsp-file>/jsp/redirect.jsp</jsp-file>
</servlet>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/engine</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>redirect</servlet-name>
    <url-pattern>/about</url-pattern>
</servlet-mapping>

不是解决方案。 我很确定,想要一个定义servlet的节点。 但正如我所说,我需要一个JSP-File。