现在我遇到以下问题: 我正在尝试使用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>
- 标记来调用。
提前感谢您的帮助! 最大
答案 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。