【问题标题】:Help creating servlet in existing jsf project帮助在现有 jsf 项目中创建 servlet
【发布时间】:2011-08-23 09:57:21
【问题描述】:

我正在尝试在 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

当您单击提交按钮时,它会显示 url http://localhost:8080/catalog/catalog/WelcomeServlet 并给出 404 错误。我认为我的 web.xml 文件中存在问题,但我不确定,我无法弄清楚。

谢谢

【问题讨论】:

  • 您是否在 web.xml 中声明了任何其他 servlet-mappings?
  • 是的。我已经用 jsf 片段的其余 servlet-mappings 编辑了这个问题。

标签: java jsf servlets


【解决方案1】:

尝试在第一个 servlet 映射之后添加:

<servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/catalog/WelcomeServlet</url-pattern>
</servlet-mapping>

【讨论】:

  • 这可行,但我认为这是一种解决方法。我无法想象 url catalog/catalog/WelcomeServlet 会是开发者的意图。
  • 有一些路径问题需要解决:上下文根可能更清晰,但我希望特定的工件基于 JSP 页面生成链接的方式。如果 JSP 没有在上下文根上加倍,那么额外的目录就不必在那里。
【解决方案2】:

据我所知,您的 servlet 映射到 contextroot/WelcomeServlet,而您正在导航到 contextroot/catalog/WelcomeServlet。它们不是一回事。

我猜你在 html 中忘记了一个斜线。

【讨论】:

  • 抱歉,我没有遵循需要做的事情。能详细点吗?
猜你喜欢
  • 2011-02-15
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 2020-11-29
  • 2011-05-16
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多