12. 解决绝对路径和静态资源访问
1、设置绝对路径
路径问题一直在访问过程中一直存在,如果把所有的路径都替换为绝对路径,就可以解决这个问题。
1.1 编写过滤器
ObjectListener.java
package com.company.springMVC.util;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* 监听器类
* 设置全局默认地址
*/
public class ObjectListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext对象创建");
//监听ServletContext 对象的创建
ServletContext context = sce.getServletContext();
context.setAttribute("path", context.getContextPath());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
1.2 配置监听器
web.xml
<!-- 配置监听器 -->
<listener>
<listener-class>com.company.springMVC.util.ObjectListener</listener-class>
</listener>
1.3 使用绝对路径
使用EL表达式 ${path}
<form id="formID" action="${path}/userController/userSave">
用户名:<input type="text" name="userName">
<br/>
密码:<input type="password" name="password">
<input type="submit" value="提交" id="submitBtn">
</form>
2、设置静态资源访问
由于SpringMVC的特性,静态资源默认是不允许被访问的,需要修改配置。
在SpringMVC的配置文件中springmvc.xml
<!-- 过滤静态资源文件 -->
<mvc:default-servlet-handler/>