解决servlet404报错


大家好,我是EverdayForCode。你,今天学习了吗!

写在前面:tomcat从7.0版本开始就支持Servlet3.0,在Eclipse中不再需要web.xml配置servlet,而通过注解的方式找寻servlet。本环境安装tomcat v8.5
采用注解方式配置servlet。

第一种:servlet 编译生成class位置不对

解决方案

项目上右键–>Build path --> Configure Build Path–>Source 目录必须是"项目名/WebContent/WEB-INF/classes
在这里插入图片描述假如没有classes,先在WebContent/WEB-INF目录下建立classes文件再更改
在这里插入图片描述还有,最重要一点的就是必须要确保菜单栏Project选项卡里buid automatically被选中,否则不会自动生成class文件
在这里插入图片描述

第二种调用servlet的URl配置错误

当jsp页面不在webcontent根目录下面,而是在webcontent其他目录下面时
例如:
在这里插入图片描述
在这里插入图片描述如果在jsp中调用servlet的url直接写为
在这里插入图片描述则会出现404错误
在这里插入图片描述

解决方案

url 变为 “${pageContext.request.contextPath}/url-pattern”

action="${pageContext.request.contextPath}/uploadimg"

在这里插入图片描述当这里404报错就解决了

如何新建servlet自动配置xml可参考:
解决在Eclipse新建web项目没有自动生成web.xml和在新建servlet的时候自动生成web.xml配置


${pageContext.request.contextPath}是什么

${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%>
也就是取出部署的应用程序名或者是当前的项目名称。

WebServlet参数

属性名类型作用
nameString指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。
valueString[]该属性等价于 urlPatterns 属性。两个属性不能同时使用。
urlPatternsString[]指定一组 Servlet 的 URL 匹配模式。等价于<url-pattern>标签。
loadOnStartupint指定 Servlet 的加载顺序,等价于 <load-on-startup>标签。
initParamsWebInitParam[]指定一组 Servlet 初始化参数,等价于标签。
asyncSupportedboolean声明 Servlet 是否支持异步操作模式,等价于<async-supported> 标签。
descriptionString该 Servlet 的描述信息,等价于 <description>标签。
displayNameString该 Servlet 的显示名,通常配合工具使用,等价于 <display-name>标签。

WebServlet参数参考:
Servlet中@WebServlet属性详解


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值