Java 如何更正JSP中的servlet映射?

Java 如何更正JSP中的servlet映射?,java,apache,jsp,servlets,servlet-mapping,Java,Apache,Jsp,Servlets,Servlet Mapping,我已经建立了一个动态web项目,其中包含一个jsphome页面和一个servletHelloServletjava类 主页从jsp页面获取一个输入值,并有一个submit按钮将输入值传输到servlet类 但是当我在主页上单击submit时,我得到一个HTTPStatus 500-实例化servlet类HelloServlet时出错 有人知道我在设置这个过程中是否遗漏了一步吗?或者我的web.xml描述符中是否有错误 Servlet类的doPost方法如下所示: @Override

我已经建立了一个动态web项目,其中包含一个jsp
home
页面和一个servlet
HelloServlet
java类

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

但是当我在主页上单击submit时,我得到一个
HTTPStatus 500-实例化servlet类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>

你好
HelloServlet
你好
/打招呼/*

您需要在web.xml中指定包和类:

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>ie.gmit.HelloServlet</servlet-class>
</servlet>

上述解决方案奏效了,太棒了!我现在想知道,在传递了值之后,如何从JavaServlet类
HelloServlet
调用另一个页面
result
?基本上,它将是反向操作,因为它将把值从servlet传递回jsp页面。非常感谢您的帮助。@BrianJ您可以使用
response.sendRedirect(“jsp页面的url”)
重定向到jsp页面。如果您只想向jsp发送几个参数,您可以将它们放在url末尾的url中?name=value&nam1=value1,或者如果您愿意,您可以在会话中存储一个对象并在jsp页面中检索它。要获取url参数,请使用
request.getParameter(“name”)
获取会话,您可以执行
(WhateverObject)会话。getAttribute(“name”)
;要在servlet中存储会话,请执行
request.getSession().setAttribute(yourObject)
好的,我假设我在web.xml中为
结果
页面添加了相同的映射,然后呢?这样:
result ie.gmit.HelloServlet result/say_result
@BrianJ如果您重定向到jsp,它将自动处理。您不需要另一个servlet重定向到jsp,直接转到jsp即可。您正在尝试从HelloServlet->result.jsp转到吗?根据
result.jsp
文件的位置,此示例适用于它是否在根目录中:
response.sendRedirect(((“result.jsp?fibNum=“+fibNum”);
要检索jsp中的值,可以使用scriplet标记并执行以下操作:
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/say_hello</url-pattern>
</servlet-mapping>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
        // TODO Auto-generated method stub
        doPost(request, response);
}