0

我已经建立了一个动态 Web 项目,其中包含一个 jsphome页面和一个 servlet HelloServletjava 类。

主页从 jsp 页面获取输入值,并有一个提交按钮将输入值传输到 servlet 类。

但是当我点击主页上的提交时,我得到一个HTTP Status 500 - Error instantiating servlet class HelloServlet

有谁知道我是否错过了设置这个步骤?或者如果我的 web.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>
4

1 回答 1

2

您需要在 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);
}
于 2014-12-09T17:54:07.293 回答