1

我使用 eclipse 和 tomcat7 创建了一个 Web 应用程序,我在 html 文件中有以下代码,在 html 文件中有 java servlet 类:

<form action="UserAccessServlet" method = "get">

在我的 servlet 类中

@WebServlet ("/UserAccessServlet")

然后我只是做了一些小改动(新的 println 语句),但没有效果我用以下代码更改了服务器名称

html 文件: <form action="SQA_Servlet" method = "get"> java 类:@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"})

仍然没有效果..任何建议。

4

2 回答 2

0

WebServlet name属性不能以/. 宁可做,

@WebServlet("UserAccessServlet")

或将其留空(如果您希望WebServlet使用 Servlet 类名的名称。例如:

@WebServlet
public class UserAccessServlet extends HttpServlet {


//Do stuff
}

建议完全像在这个例子中那样声明你的WebServlet注释。

于 2011-04-28T11:05:21.553 回答
0

我不确定您何时以及在何种情况下收到此错误。但是如果你部署到tomcat,可能会出现以下情况:

假设您的 webapp 被称为“my.webapp”导致 my.webapp.war 假设您有一个执行 action1 => 的 Servlet“servlet1” @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")

希望这对某人有帮助!

于 2012-08-27T12:16:39.203 回答