Servlet到JSP问题

Servlet到JSP问题,jsp,servlets,http-status-code-404,Jsp,Servlets,Http Status Code 404,我是web开发新手,正在开发一个将使用servlet和JSP的web应用程序,我创建了servlet和JSP,但是我很难让servlet将请求转发给JSP 在我的主页中,有一个使用get方法,操作指向我的servlet(SelectSupportUnit.do): 在我的web.xml文件中,它声明了JSP(这是它在Head First servlet和JSP一书中所说的将请求从servlet转发到JSP时要做的事情): 您必须在表单中提到servlet的名称 <form method="

我是web开发新手,正在开发一个将使用servlet和JSP的web应用程序,我创建了servlet和JSP,但是我很难让servlet将请求转发给JSP

在我的
主页
中,有一个
使用
get
方法,操作指向我的servlet(
SelectSupportUnit.do
):

在我的web.xml文件中,它声明了JSP(这是它在Head First servlet和JSP一书中所说的将请求从servlet转发到JSP时要做的事情):


您必须在表单中提到servlet的名称

<form method="get" action="SelectSupportUnit">


然后它将转到Servlet的
doGet()
方法。您不需要添加
选择SupportUnit。只需在表单操作中添加

您必须将servlet和jsp文件正确映射到单独的URL

下面是web.xml的一个简单示例:

<web-app>
  <servlet>
    <servlet-name>SelectSupportUnit</servlet-name>
    <servlet-class>my.package.path.SelectSupportUnit</servlet-class>
  </servlet>

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

  <servlet-mapping>
    <servlet-name>SelectSupportUnit</servlet-name>
    <url-pattern>SelectSupportUnit.do</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>QueryResults</servlet-name>
    <url-pattern>/QueryResults.html</url-pattern>
  </servlet-mapping>
</web-app>  

选择支持单元
my.package.path.SelectSupportUnit
查询结果
QueryResults.jsp
选择支持单元
选择SupportUnit.do
查询结果
/QueryResults.html

您的操作缺少上下文路径。操作应该是
action=“${pageContext.request.contextPath}/SelectSupportUnit.do”
,或者作为
JSTL操作的结果创建(该操作将自动插入上下文路径)

第二个问题是.do名称,这似乎不合适。我建议对servlet使用提示性名称


404的出现是因为动作URL格式不正确。您永远不会直接寻址JSP。始终寻址其servlet控制器

实际上什么意思
选择SupportUnit.do
?您的Servlet名称中有点(.)吗?要么是@ThisaruGuruge提到的问题(Servlet的拼写错误),要么是您忘记在web.xml中提到它(不是pom,为什么出错)。如果你不想绕过它,你应该明确地调用servlet而不是JSP。@这是一个错误,是的,这就是它的形成方式。@Minsk只是为了确定:你的包名是
SelectSupportUnit
,类名是
do
?我在那里犯了一个错误,我将名称更正为
SelectSupportUnit
。在某些示例中,我不明白不需要.do。这不是一个好的做法。不要要求别人投你一票,这样你也可以投他们一票。这是连续投票。如果你觉得某篇文章值得投票,就投它一票。不要因为他投了你的票就投帖子的票。事实上,我喜欢你的答案,想投你的票,但我不能投,因为我得不到分数。
<servlet> 
<servlet-name>SelectSupportUnit</servlet-name> 
<jsp-file>/QueryResults.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
<servlet-name>SelectSupportUnit</servlet-name> 
<url-pattern>/QueryResults.jsp</url-pattern> 
</servlet-mapping>
<form target="_blank" method="get" action="${PageContext.request.contextPath}/SelectSupportUnit"> 
<form method="get" action="SelectSupportUnit">
<web-app>
  <servlet>
    <servlet-name>SelectSupportUnit</servlet-name>
    <servlet-class>my.package.path.SelectSupportUnit</servlet-class>
  </servlet>

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

  <servlet-mapping>
    <servlet-name>SelectSupportUnit</servlet-name>
    <url-pattern>SelectSupportUnit.do</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>QueryResults</servlet-name>
    <url-pattern>/QueryResults.html</url-pattern>
  </servlet-mapping>
</web-app>