我试图将值输入传递给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时我是否缺少一个步骤?
这也是我项目树的结构:
答案 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>