从JSP页面的表单操作中调用servlet

时间:2014-12-09 01:06:15

标签: java jsp servlets

我试图将值输入传递给JSP页面中的文本框,将其传递给将存储值作为变量的servlet。但是当我单击提交按钮时,找不到servlet。我收到一条错误,指出the requested resource is not available

Servlet类:

    //parse input from hello.jsp input box 
    //and assign to fibNum variable


    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub




    }


}

我已经看过这样的一些问题:<form action="/sampleServlet" giving me exception但改变路径并没有改变结果。

有谁知道如何解决这个问题调用servlet?或者在连接servlet时我是否缺少一个步骤?

res

package

这也是我项目树的结构:

4 个答案:

答案 0 :(得分:1)

您需要在web.xml中创建servlet映射。另见here。 所以在你的web.xml中定义;

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class><package name>.HelloServlet</servlet-class>
</servlet>

然后为servlet创建映射(url模式)。

<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/say_hello/*</url-pattern>
</servlet-mapping>

现在在JSP中引用像

这样的servlet
 <form action="say_hello" method="get">            
   <b>Fibonacci Sequence Length </b>  <br>
   <input type="text" name="fibNum"size="20px" style="font-size:30pt;height:60px" >
   <input type="submit" value="submit" style="font-size:30pt;height:60px" > <br>  
   Value [1-100]<br>
 </form>  

答案 1 :(得分:1)

您必须将与url_pattern(web.xml)相同的servlet名称传递给表单的action标记。

答案 2 :(得分:1)

你必须在web.xml中使用url模式进行映射 - HelloServlet。

答案 3 :(得分:1)

我认为在您的代码中,您错过了 web.xml 文件中的一些servlet声明

<servlet>
   <servlet-name>...</servlet-name>
   <servlet-class>...</servlet-class>
</servlet>

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