Java 如何更正JSP中的servlet映射?
我已经建立了一个动态web项目,其中包含一个jspJava 如何更正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
home
页面和一个servletHelloServlet
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);
}