当我从JSP页面调用Servlet时,我收到HTTP状态404。
这是web.xml:
<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>
以下是JSP的有效代码:
<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服务器
答案 0 :(得分:1)
尝试:
action="../../Register"
使页面相对于Servlet的位置。
../
表示一个目录。根据您发布的目录结构,它是Web Pages
下面的两个文件夹,因此您需要两个../
来使它相对于您的Servlet所在的位置,即{{1}意思就在<url-pattern>/Register</url-pattern>
答案 1 :(得分:1)
action
属性默认使用相对路径,因此如果您的jsp在http://yourHost/yourApp/pathToJsp/registerpage.jsp
处可用,那么您的相对servlet路径为http://yourHost/yourApp/pathToJsp/Register
,这是不正确的。
您有两种选择:
/yourContext/Register
。如果要避免硬编码上下文根,可以使用request.getContextPath()方法,如action='<%=request.getContextPath()%>/Register'
答案 2 :(得分:0)
尝试动作=“/注册”
此行是'因为消息必须至少为30个字符