我使用eclipse和tomcat7创建了一个Web应用程序我在html文件和java servlet类中有以下代码 在html文件中:
<form action="UserAccessServlet" method = "get">
在我的servlet类中
@WebServlet ("/UserAccessServlet")
然后我做了一些小的更改(新的println语句),但它显示没有效果我用下面的代码改变了服务器名称
html文件:<form action="SQA_Servlet" method = "get">
java class:@WebServlet ("/SQA_Servlet")
但似乎没有重新加载,我收到以下错误:
HTTP Status 404 - /SQA_Learning/SQA_Servlet
--------------------------------------------------------------------------------
type Status report
message /SQA_Learning/SQA_Servlet
description The requested resource (/SQA_Learning/SQA_Servlet) is not available.
我尝试清理模块,刷新,关闭重新打开项目的结果相同
我将@WebServlet ("/SQA_Servlet")
替换为@WebServlet(urlPatterns={"/SQA_Servlet"})
仍然没有效果..任何建议。
答案 0 :(得分:0)
WebServlet
name
属性不能以/
开头。相反,
@WebServlet("UserAccessServlet")
或将其留空(如果您希望WebServlet
使用Servlet类名的名称。示例:
@WebServlet
public class UserAccessServlet extends HttpServlet {
//Do stuff
}
我会建议在this example中完全宣布您的WebServlet
注释。
答案 1 :(得分:0)
我不确定您何时以及在什么条件下您收到此错误。但是如果要部署到tomcat,可能会发生以下情况:
假设您的webapp被称为“my.webapp”,导致my.webapp.war
假设您有一个Servlet“servlet1”,它执行action1 =&gt; @WebServlet(urlPatterns = "/action1")
(注意action1前面的斜线)
假设您使用html表单调用此操作:
<form action="/action1" method="GET">
这可能不起作用,因为action1前面的斜杠
什么时候tomcat会重定向到localhost:8080 / action1?.. 它应该重定向到localhost:8080 / my.project / action1?..
解决方案改变了html,因此表单如下所示:
<form action="action1" method="GET">
,请勿更改@WebServlet(urlPatterns = "/action1")
希望这有助于某人!