我有一个servlet,我正试图通过一个超链接。
我通过指向该文件夹上JSP文件的超链接检查了Servlet的文件夹可用性。
当我在带有.java
扩展名的超链接上询问时,我也检查了Servlet本身,我得到了
浏览器上的Servlet代码。
当我尝试连接到该Servlet到doGet
或doPost
时,我收到404 HTTP错误,
资源不可用。
Web.xml中:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>controllers.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/controllers</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/views/welcomePage.jsp</welcome-file>
</welcome-file-list>
</web-app>
有什么问题?
答案 0 :(得分:1)
当你在问题中发帖时
我在使用.java扩展名
的超链接上询问时检查了Servlet本身
我认为你将servlet类文件放在web文件夹下的一个文件夹中,这就是你可以访问url的原因。
project
src
web
controllers
TestServlet.java
page.jsp
WEB-INF
classes
与jsp文件相反,servlet类必须位于WEB-INF / classes文件夹(.class文件而不是.java文件)中,并且类的源代码必须位于src
包控制器下的项目文件夹,所以:
project
src
controllers
TestServlet.java
web
page.jsp
WEB-INF
classes
controllers
TestServlet.class
如果您在将java类放入源文件夹时使用eclipse,netbeans或其他IDE,它会自动将.class放入WEB-INF / classes文件夹中。
答案 1 :(得分:0)
您将servlet映射到网址格式 / controllers - 因此您的帖子应转到http://localhostOrWhatever/maybeYourWebAppDirectoryDependingOnSetup/controllers