Java HTTP状态404-调用Servlet时未找到
当我从JSP页面调用Servlet时,我得到HTTP状态404 这里是web.xml:Java HTTP状态404-调用Servlet时未找到,java,jsp,servlets,http-status-code-404,Java,Jsp,Servlets,Http Status Code 404,当我从JSP页面调用Servlet时,我得到HTTP状态404 这里是web.xml: <servlet> <servlet-name>Register</servlet-name> <servlet-class>servlets.dataio.registration.Register</servlet-class> </servlet> <servlet-mapping> <se
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>servlets.dataio.registration.Register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/Register</url-pattern>
</servlet-mapping>
<form name="admin-form" action="Register" method="POST">
HTTP Status 404 - Not Found
type Status report
message: Not Found
description: The requested resource is not available.
Web Pages --> Pages --> Registration --> registerpage.jsp
目录结构为:
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>servlets.dataio.registration.Register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/Register</url-pattern>
</servlet-mapping>
<form name="admin-form" action="Register" method="POST">
HTTP Status 404 - Not Found
type Status report
message: Not Found
description: The requested resource is not available.
Web Pages --> Pages --> Registration --> registerpage.jsp
我尝试过清洁和建筑项目。
我正在使用NetBeans IDE和GlassFish服务器try action=“/Register”
这行是因为消息必须至少30个字符,请尝试:
action="../../Register"
使页面相对于Servlet所在的位置
。/
表示向上一个目录。根据您发布的目录结构,它在网页下有两个文件夹,因此您需要两个。/
使其相对于Servlet所在的位置,也就是说,基于/Register
意思是在网页下默认相对路径下使用操作
属性,因此,如果您的jsp在http://yourHost/yourApp/pathToJsp/registerpage.jsp
那么您的相对servlet路径是http://yourHost/yourApp/pathToJsp/Register
这是不正确的
你有两个选择:
- 使用J.Lucky建议的相对路径——但它容易出错,因为您必须在每个jsp中修复它,或者在目录结构中移动jsp
- 使用绝对路径-以/-开头,但需要包括上下文根名称,如下-
/yourContext/Register
。如果要避免硬编码上下文根,可以使用request.getContextPath()方法,如下面的action='/Register'
清理和构建项目并尝试depoly和run。JSP文件是否在某个文件夹下?它应该就在网页
下面,因为您使用的是action=“Register”
@J。幸运的是,JSP不只是在网页
里面。这就是为什么会出现错误的原因。请发布您的目录结构,以便我可以帮助您修复它。还有其他已注册的servlet吗?