帮助在现有的jsf项目中创建servlet

时间:2011-05-11 15:07:15

标签: java jsf servlets

我正在尝试在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文件中存在一个问题,但我不确定,我无法解决这个问题。

由于

2 个答案:

答案 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中的斜杠。