idea中servlet访问不到_javaweb创建servlet

idea中servlet访问不到_javaweb创建servlet今天遇到一个比较新奇的问题,但是也应该是使用springMVC框架时由于疏忽经常会遇到的一个,解决后写出来和大家分享分享。问题描述:项目正常启动,可以访问页面,但是无法找到静态资源文件,如css,js等文件资源。浏览器控制台报错信息:idea后台报错信息:二月07,201711:27:35上午org.springframework.web.ser…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

交个朋友,你要的都在这_AProMonkey的博客-CSDN博客

今天遇到一个比较新奇的问题,但是也应该是使用spring MVC框架时由于疏忽经常会遇到的一个,解决后写出来和大家分享分享。

问题描述:项目正常启动,可以访问页面,但是无法找到静态资源文件,如css,js等文件资源。

浏览器控制台报错信息:

idea中servlet访问不到_javaweb创建servlet

idea后台报错信息:

idea中servlet访问不到_javaweb创建servlet

二月 07, 2017 11:27:35 上午 org.springframework.web.servlet.PageNotFound noHandlerFound
警告: No mapping found for HTTP request with URI [/myboss-web/js/jquery-1.8.3.js] in DispatcherServlet with name 'mvc-dispatcher'
二月 07, 2017 11:27:35 上午 org.springframework.web.servlet.PageNotFound noHandlerFound
警告: No mapping found for HTTP request with URI [/myboss-web/js/fun.base.js] in DispatcherServlet with name 'mvc-dispatcher'

因为项目使用了spring security,之前我一度怀疑是不是没有给静态文件设置访问权限,后来确认了已经设置了访问静态资源无需权限认证,也检查了mvc拦截器的配置信息,没发现什么明显异常,之后就纳闷了。去网上查阅了一些资料后发现,确实是mvc拦截器在作祟。

我之前的拦截器配置信息:

  <!--配置拦截器-->
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:/spring/applicationContext-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

从配置上分析,如此配置会把所有的请求都会进行拦截,交给spring去处理。而spring所有请求的URL都是在controller中使用注解@RequestMapping标明,所以这样的情况下访问静态资源是访问不到的。

以下给出三种解决方案,自行选择使用

方法1:简单粗暴地告诉服务器,这些资源不需要拦截!

直接在web.xml文件中进行配置,如下:

 <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.xml</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.swf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.zip</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
  </servlet-mapping>

如果你嫌这样太麻烦,太low的话,请移步下面两种方法!

方法2:直接告诉spring,这个你就得这么做!

在MVC配置文件中添加资源文件映射。

  <resources mapping="/resources/**" location="/resources/" />
  <resources mapping="/images/**" location="/images/" />
  <resources mapping="/js/**" location="/js/" />

注解: 
mapping:映射    
location:本地资源路径,注意必须是webapp根目录下的路径。          
两个*,它表示映射resources/下所有的URL,包括子路径(即接多个/)
可能有筒子看完这个后会回来说:“博主写的啥玩意,照着写了还是没用,我绝对没敲错字!我还是复制过去的!!!”
如果真的有这样的哥们,别告诉我,否则我怕我会忍不住会拿出我的30米大刀!
请自行更换路径!!!
当然这个还有一个需要注意的地方:
配置的location一定要是web-app根目录下才行,如果你将资源目录,放置到web-app/WEB-INF下面的话,恭喜你,访问失败!404 NOT FOUND

方法3:全部使用默认的,也别操啥心了
 

<mvc:default-servlet-handler/>

比较懒得童鞋可以直接在MVC配置文件加上这么一句,这个确实方便,但是弊端就是他会把你发出的请求全部按照默认的处理了!
如果直接贴出这一句,我怕又有筒子会说怎么报错了,mvc标签报错了!
哥们,你要是这种错误都解决不了,你也先别看这博文了,先去看看什么叫namespace吧!还来得及治疗!






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172394.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用vue-cli创建项目_vuecli3什么时候出的

    使用vue-cli创建项目_vuecli3什么时候出的vue-cli创建项目上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目1.进入一个目录,创建项目创建项目命令如下:vuecreate<ProjectName&g

    2022年7月29日
    7
  • 职称计算机考试选什么模块,职称计算机考试如何选择模块?

    职称计算机考试选什么模块,职称计算机考试如何选择模块?原标题:职称计算机考试如何选择模块?众所周知,自从2013年开始,已有所增加,模块数理由原来的22个模块增加到26个考试科目。所以,考生可根据自身基础、平时接触多的或兴趣选择报考科目,按规定参加职称计算机考试的人员必须通过规定的模块数量,因各地区政策不同考生具体可登陆当地人事咨询网次查看,为了让考生更好选择职称计算机考试模块。职称计算机考试中心为考生提供如下参考:一、选择模块的原则:首先,根据考生…

    2022年6月2日
    34
  • 一句话评论设计模式六大原则

    原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都

    2021年12月25日
    41
  • JVM内存结构详解

    JVM内存结构详解文章目录一、你了解JVM内存模型吗在这之前需要知道JVM内存模型图——JDK1.81.1、程序计数器1.2、Java虚拟机栈(Stack)1.1.1、java.lang.StackOverflowError问题1.3、本地方法栈1.4、元空间(MetaSpace)1.4.1、MetaSpace相比PermGen的优势1.5、Java堆(Heap)二、JVM三大性能调优参数-Xms-Xmx-X…

    2022年4月30日
    50
  • Django接口_django中几个html互相跳转

    Django接口_django中几个html互相跳转前言在RESTful规范中,有关版本的问题,用restful规范做开放接口的时候,用户请求API,系统返回数据。但是难免在系统发展的过程中,不可避免的需要添加新的资源,或者修改现有资源。因此,改动升

    2022年7月29日
    14
  • CAN总线学习笔记(2)- CAN协议数据帧与遥控帧

    CAN总线学习笔记(2)- CAN协议数据帧与遥控帧依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!1CAN协议中的帧在了解CAN总线的通信机制之前,首先需要了解CAN协议中五种类型的帧结构:数据帧遥控帧错误帧过载帧帧间隔在讲述五种帧结构的过程中,穿插讲述CAN总线的通信机制。2数据帧与遥控帧在CAN协议中…

    2022年6月28日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号