问题说明:项目使用shiro权限验证框架后,request.getSession().getServletContext().getRealPath("/")就一直都得不到项目的根路径,debug之后,显示request为null,如下图所示:
解决办法一:
1.在web.xml配置中找到shiro配置加入如下配置:
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
2.加入后shiro配置如下:
<!-- apache-shiro-->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
解决办法二:
使用System.getProperty(“user.dir”)得到项目的根路径。该方法为相对于项目的根目录路径,不同的web服务器不同。