1、问题描述

  servlet使用注解配置,经检查无错误,如图: 

  

  tomcat正常启动,页面正常运行,当访问servlet时出现无响应的情况,控制台报错404,未访问到servlet。

  

  经检查,我的错误原因属于下边的第②种情况。

2、解决方案

打开web.xml检查web-app标签中的两个属性

①version是否大于3.0

  因为web-app标签3.0以上版本才可以使用servlet的注解的,这是必要条件。如果web-app版本低于3.0,可以去tomcat的这个路径:

  C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\ROOT\WEB-INF  找到web.xml文件,打开,检查web-app标签版本,如果大于等于3.0,直接复制一份替换原有web-app标签就好了,或者直接用我的这个web-app标签去替换,版本为3.1

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">

②metadata-complete是否为false  

  该属性为true,则容器在部署时只依赖部署描述文件,忽略所有标注,如果不配置该属性,或者将其设置为false,则表示启动注解支持。当metadata-complete="false"时,web.xml和注解对于Servlet的影响同时起作用,两种方法定义的url-partten都可以访问到该Servlet,但是当通过web.xml定义的url-partten访问时,注解定义的属性将失效。所以如果你想用servlet注解来配置servlet的话,一定记得修改该属性为metadata-complete="false "。

最新文章

  1. 在C#里面给PPT添加注释
  2. (转载)(收藏)OceanBase深度解析
  3. 游戏对象消失三种方法的区别?(enabled/Destroy/active)
  4. UnitTesting中的ClassInitialize,ClassCleanup,TestInitialize,TestClearup
  5. 微信Android客户端架构演进之路
  6. C#代码反编译 得到项目可运行源码
  7. 利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
  8. jquery 图片上传本地预览V1.2
  9. python3 列表 函数
  10. Fatal error: Class ‘mysqli’ not found in解决办法
  11. 在iOS中获取UIView的所有层级结构 相关
  12. ThinkPhp模板转Flask模板
  13. SSM增删改查
  14. vs2017 创建虚拟目录失败 http//locXXXXXX,vs2015 无法访问IIS源数据
  15. css 单位px、em、rem、vh、vw、vmin、vmax区别
  16. 用CSS里的 viewport-fit 标签应对iPhone X 的刘海
  17. R语言中知识点总结(二)
  18. oracle schema 白话文详解
  19. 简单版nginx lua 完成流量上报于中间件
  20. windows 静态IP设置举例

热门文章

  1. maven将本地jar包引入本地maven仓库命令
  2. 常用到用css3实现的转换,过渡和动画
  3. 题解 【POJ1722】 SUBTRACT
  4. hdu 6052 To my boyfriend
  5. Linux 目录共享
  6. MVN 报错1
  7. 灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较
  8. maven项目启动找不到org.springframework.web.context.ContextLoaderListener
  9. 线性素数筛(欧拉筛)(超级好的MuBan)
  10. 面试题:MySQL索引为什么用B+树?