编辑:被标记为重复(Servlet returns "HTTP Status 404 The requested resource (/servlet) is not available")我在第一次设置servlet时没有任何问题,一切正常,当我提交时正确加载结果。重复项显示了如何设置xml和jsp,并以相同的方式设置它们。如果我没有填写他们一次,我有正常的重试,但第二次,无论是否正确的url变成.../one/one/main
,产生404.带包的servlet无法正常工作,并且在url中复制包两次
如果我设置的XML类型的名称没有包(在示例<url-pattern>/servlet</url-pattern>
中),servlet甚至不会在第一次正确尝试时启动。不管url模式和从表单引用,在url模式上我有/one/Main
,表单one/Main
。在重复任何形式的例子中,我在提交后尝试了404结果。 我试图删除xml servlet配置,并使用这个(@WebServlet(description = "Main", urlPatterns = { "/one/Main" })
)从servlet中使用@WebServlet
,我有同样的问题,第一次工作,第二次尝试它是one/one/Main中的url。
在这个简单的servlet中,每当我使用一个包时,它会将url更改为../one/one/Main
,当我第二次填充两个输入文本字段时。
public void doPost(HttpServletRequest request
, HttpServletResponse response) throws ServletException, IOException{
String action = request.getParameter("action");
String url = "/index.jsp";
if(action==null)
action="join";
if(action.equals("join"))
url="/index.jsp";
else if(action.equals("ok")){
String fName = request.getParameter("firstName");
String sName = request.getParameter("secondName");
if(fName==null||sName==null||fName.equals("")||sName.equals("")){
url = "/index.jsp";
request.getSession().setAttribute("message"
, "Please fill all the fields");
}
else{
url = "/thanks.jsp";
request.getSession().setAttribute("user"
, new User(fName, sName));
}
}
getServletContext().getRequestDispatcher(url)
.forward(request, response);
}
JSP形式部分
<form action="one/Main" method="post">..</form>
XML servlet映射
<servlet>
<servlet-name>Main</servlet-name>
<servlet-class>one.Main</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Main</servlet-name>
<url-pattern>/one/Main</url-pattern>
</servlet-mapping>
我试图的类相应复制one
封装外部,并重新配置form标签和XML(组servlet类到Main
,模式/Main
和jsp行动到Main
),在这一点上它完美的作品,我可以错过填充字段多少次我想要的,它会继续重新加载消息,但一旦servlet和User
javabean在一个包当我运行并错过输入两次,URL更改为双包/Main
,我有一个404.