我用Myeclipse创建web project,名字叫IMooc后创建servlet,servlet自己写好了并生成了@WebServlet
但是启动后提示404 怎么回事呢?
访问http://localhost:8080/IMooc/TestServlet出错404
访问index.jsp(http://localhost:8080/IMooc/index.jsp)完全没问题
servlet具体如下:
@WebServlet(description = "Only For Test", urlPatterns = { "/TestServlet" })
public class TestServlet extends HttpServlet {...}//自己生成的什么都没写
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"
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>IMooc</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
试试勾上这个
那个8080端口都一样么?
应该是路径问题,jsp所在路径和Servlet所在路径不在同一等级目录,所以没找到Servlet。
试着把超链接中的路径修改下,向上一级
../servlet/HelloServlet
我用的eclise在Webcontent 下建了pag目录,下面放的jsp,修改了超链接的路径就好了。
用a标签跳转的话,href应该="TestServlet",表单的话也一样。
其实就是把 @WebServlet(description = "Only For Test", urlPatterns = { "/TestServlet" })中的 /TestServlet
去掉 / 后加入href中。
你这个web.xml中没有自动生成servlet(没生成也不影响跳转),因为你的项目是version="3.0",建项目时用3.0以下
就可以自动生成了