我正在尝试在JSF项目中创建一个servlet。这是我创建的第一个servlet,我以http://www.servletworld.com/servlet-tutorials/simple-servlet-example.html为例让我开始。
唯一的问题是我的文件夹结构因现有的jsf而略有不同。
我可以显示form.html页面,但是当我输入我的名字并点击提交时,我会得到一个404.
我的文件夹结构如下(仅显示相关文件)
catalog (my project in eclipse)
- src
- a
- b
- c
- catalog
- backing
- WelcomeServlet.java
- WebContent
- catalog
- form.html
- WEB-INF
- web.xml
- classes
- a
- b
- c
- catalog
- backing
- WelcomeServlet.class
这是web.xml中的servlet映射
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>a.b.c.catalog.backing.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/form.html </welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
<welcome-file>/index.html</welcome-file>
</welcome-file-list>
此网址显示了form.html页面http://localhost:8080/catalog/catalog/form.html
当您点击提交按钮时,会显示网址http://localhost:8080/catalog/catalog/WelcomeServlet并显示404错误。我在想我的web.xml文件中存在一个问题,但我不确定,我无法解决这个问题。
由于
答案 0 :(得分:3)
尝试在第一个servlet映射后添加它:
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/catalog/WelcomeServlet</url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
从我看到的,你的servlet被映射到 contextroot / WelcomeServlet,你正在导航到 contextroot / catalog / WelcomeServlet。他们不是一回事。
我猜你忘记了你的HTML中的斜杠。