我设置了一个动态的Web项目,其中包含一个jsp home
页面和一个HelloServlet
java类的servlet。
主页从 jsp 页面获取一个输入值,并有一个提交按钮将输入值传输到 servlet 类。
但是当我在主页上单击提交时,我得到了一个HTTP Status 500 - Error instantiating servlet class HelloServlet
有谁知道我是否缺少设置这个的步骤?或者如果我的网络中有错误.xml描述符?
Servlet 类的 doPost 方法如下:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
// read form fields
String fibNum = req.getParameter("fibNum");
//print input from home page
System.out.println("username: " + fibNum);
}
这就是我在 Web 中设置映射的方式.xml描述符:
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/say_hello/*</url-pattern>
</servlet-mapping>
您需要在 web 中指定包和类.xml:
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>ie.gmit.HelloServlet</servlet-class>
</servlet>
你也可以在这里摆脱*:
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/say_hello</url-pattern>
</servlet-mapping>
此外,您正在处理 servlet 中的 post 方法,但通过表单发送 get 请求。 您可以将表单更改为method="post"
或将其放入 servlet 中:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
// TODO Auto-generated method stub
doPost(request, response);
}