Sas*_*ska 6 servlets http-status-code-404
我register在课堂上有一个servlet p1.我有一个JSP jsp1.jsp.我运行JSP文件并看到它,但是当我尝试应用于servlet时,Tomcat显示错误:
HTTP状态404
请求的资源(/ omgtuk/Register)不可用.
Servlet的:
@WebServlet("/register")
Run Code Online (Sandbox Code Playgroud)
web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>omgtuk</display-name>
<servlet>
<description></description>
<display-name>register</display-name>
<servlet-name>register</servlet-name>
<servlet-class>p1.register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>register</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>jsp1.jsp</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse.
Bal*_*usC 11
请求的资源(/ omgtuk/Register)不可用.
这只是意味着servlet没有监听URL模式/Register.换句话说,你没有@WebServlet("/Register").
在您的特定情况下,您在URL中出现了大小写错误.URL区分大小写.你正在打电话/Register,但是你的servlet正在监听/register.相应地修复您的表单操作.
所以,应该不是这个样子:
<form action="Register">
Run Code Online (Sandbox Code Playgroud)
但它应该是这样的:
<form action="register">
Run Code Online (Sandbox Code Playgroud)
或者这个,如果您在无聊时碰巧移动JSP,这会更加强大:
<form action="${pageContext.request.contextPath}/register">
Run Code Online (Sandbox Code Playgroud)
与具体问题无关,请注意您通过@WebServlet类的注释和<servlet>条目注册了servlet web.xml.这个不对.你应该使用其中一个.这@WebServlet是自Servlet 3.0(Java EE 6)以来注册servlet的新方法,也是注册servlet <servlet>的旧方法.
只是摆脱整体<servlet>和<servlet-mapping>在web.xml.您不需要同时指定两者.确保您正在阅读最新的书籍/教程.Servlet 3.0已于2009年12月开始存在.
另一个细节是,p1是不是一类,它是一个包.在热衷于Java EE之前,我强烈建议花更多的时间学习基础Java.
| 归档时间: |
|
| 查看次数: |
30447 次 |
| 最近记录: |