当前位置: 首页 > 工具软件 > mint-mvc > 使用案例 >

spring mvc个人学习笔记

吴建中
2023-12-01

<url-pattern>/</url-pattern>的三种配置
① 完全匹配

  <url-pattern>/test/list.do</url-pattern>  

② 路径匹配
<url-pattern>/*</url-pattern> struts2匹配根路径下的全部请求

③ 扩展名匹配
<url-pattern>*.do</url-pattern> struts1
<url-pattern>*.html</url-pattern> 匹配全部html结尾的请求
<url-pattern>*</url-pattern> 不能用*,否则报错

  1. 查了两天的错误 No mapping found for HTTP request with URI 不是写成/*了

只是springmvc-servlet.xml配置文件放错了位置 ,即使刚开始启动tomcat编译项目时候没有报加载错误
但是你访问路径是一定会出错,找一个对的地方 在web.xml中配置对springmvc-servlet.xml文件的位置

配置文件的上级文件夹 不能是包 必须是文件格式

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:mybatis.cfg.xml"></property>  
    </bean>  

mapperLocations 这个直接配置mapper的文件路径
configLocation 加载mapper的配置文件 被加载的文件不用管格式
mybatis.cfg.xml 和 mvc-mapper.xml都可以

3.

上传文件到tomcat下面 服务器每次编译都会把文件清除。 为了解决这个问题,需要配置tomcat的上传文件虚拟路径
1.配置tomcat的server.xml文件 找到<host></host>

在里面配置<Context path="/blog/photo" docBase="D:/file/photo" />
前面是虚拟路径名字 后面是电脑上的物理路径名

配置路径 /blog/photo/29.jpg
访问路径 http://127.0.0.1:8080/blog/showPhoto.jsp

//上传文件的时候 写物理路径 访问的时候写虚拟路径
代码中写路径的时候可以这样 D:/file/photo
也可以这样 D:\file\photo 两个\是因为\是转义字符 所以需要多加个

4.

<mvc:resources location="/WEB-INF/photo/" mapping="/photo/**" cache-period="31556926"/> 
location是实际路径  mapping是映射路径
<img src="/blog/photo/40.jpg" width="200" hight="200"/>

当tomcat虚拟路径与mvc:resources冲突时
如果 只有一个文件使用了该路径 按虚拟路径处理
如果有两个或两个以上文件使用了该路径 系统默认选择mvc:resources配置的映射路径
如果所选的两个文件名字不一样 路径一样 各按各的路径处理

5.静态资源文件不放到WEB-INF下面
mvc-servlet的配置静态文件

<mvc:resources location="static/css/" mapping="/css/**" cache-period="31556926"/>

配置完静态资源路径后,无论从浏览器访问还是页面引用都直接可以使用映射后的路径,即mapping=的路径。
静态文件的路径假如为WebContent/static/css

那这时引用路径为

link href=”css/bootstrap.min.css” rel=”stylesheet”

总结:1.文件**不放**WEB-INF下面
2.配置静态文件的路径不是引用文件的正确路径,应该是实际的相对路径
3在引用时,如果是同级,路径最前面不用加/

6.spring mvc静态资源的配置
web.xml里面配置springmvc的拦截形式必须是/或者/*,如果使用 *.do
则拦截不到静态资源,配置
<mvc:default-servlet-handler/>
<mvc:resources location="static/css/" mapping="/css/**" cache-period="31556926"/>
也就无效了


  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <!-- 1、.action访问以.action结尾的  由DispatcherServlet进行解析
           2、/,所有访问都由DispatcherServlet进行解析
       -->
      <url-pattern>/</url-pattern>
  </servlet-mapping>
 类似资料: