Java Servlet映射不起作用
我使用JSP和servlet创建了一个简单的程序。毕竟,我已经在web.xml中设置并映射了servlet,如下所示。但我总是得到空白页Java Servlet映射不起作用,java,jsp,servlets,web.xml,Java,Jsp,Servlets,Web.xml,我使用JSP和servlet创建了一个简单的程序。毕竟,我已经在web.xml中设置并映射了servlet,如下所示。但我总是得到空白页 <servlet> <servlet-name>example</servlet-name> <servlet-class>exampleServlet</servlet-class> </servlet> <servlet-mapping>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>exampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/exampleServlet</url-pattern>
</servlet-mapping>
我的文件结构是
JSP file --> tomcat/webapps/application/index.jsp
Servlet --> tomcat/webapps/application/WEB-INF/classes/exampleServlet.class
我哪里出错了?我犯了什么错误?你能推荐我吗
编辑:我正在将表单元素发布到该servlet。到那时,它会像这样传递URL
http://localhost:8080/application/exampleServlet
您的请求可能与URL模式不匹配。试着这样做:
<url-pattern>/exampleServlet/*</url-pattern>
/exampleServlet/*
如果在提交表单时出现“错误”,那是因为servlet不提供任何输出,也不返回任何响应。在您的doPost
中,您应该将响应写回浏览器,或者将请求交给执行操作的人
public void doPost(HttpServletRequest req, HttpServletResponse res) {
PrintWriter out = res.getWriter();
out.println("<html><body>Hello world</body></html>");
}
public void doPost(HttpServletRequest-req,HttpServletResponse-res){
PrintWriter out=res.getWriter();
out.println(“你好世界”);
}
至少会打印一些东西,虽然没有什么有用的东西
“正确”的做法是重定向或包含进行渲染的视图。应用程序中的一切都很好。您得到的是空白页,因为您的
doPost
方法没有任何作用。它只将值打印到控制台输出
将其更改为,例如:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.print("something");
}
然后查看浏览器中是否出现
内容。尝试使用与url模式不同的servlet clas
名称。
类似于跟随,或者反之亦然
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>exampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/egServlet</url-pattern>
</servlet-mapping>
例子
示例servlet
例子
/egServlet
在改变之后重新启动服务器
你是如何访问它的,它什么时候给出空白页?如果你的DOPOST方法除了打印之外什么都不做,你还希望得到什么?@ NILSH我用所需的细节编辑了我的帖子。请看that@PauliusMatulionis我想获取要上载的选定文件的文件路径。但最初我想测试流程是否正常。这就是我打印值的原因。但它不在函数内部。您正在使用哪个tomcat容器?已编辑。。这个应该走了/应用程序/应该在webcontext路径中。我这样更改了。但它不起作用。它再次显示空白页面在进行更改后是否重新启动了Tomcat?天哪。我疯了。我一直在尝试,没有重启Tomcat。现在它正在工作。谢谢,没问题。记住,在进行任何更改之后,必须重新启动servlet容器。如果你继续重新部署你的应用程序,它最终会耗尽内存。设置一个断点或向控制台写入一些东西,看看你的servlet是否被调用。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.print("something");
}
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>exampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/egServlet</url-pattern>
</servlet-mapping>