shiro+SpringMVC 项目 配置404页面

说的配置404,大家都会想到去web.xml里面配置

    <error-page>
        <error-code>404</error-code>
        <location>/404.html</location>
    </error-page>

可是如果我有业务需求,当发生404,我要记录相关信息呢?或者说404的展示页面我也有需要动态获取的资源呢?那么静态页面就力不从心了。

那么先写一个处理404的方法

    //404
    @RequestMapping(value="/404")
    public String notFound(){
        //do something
        return "404";
    }

用过springmvc的我就不解释上面代码了

接下来配置web.xml(说实话我傻逼似的一直认为这里只能配置静态资源,涨姿势了)

    <error-page>
        <error-code>404</error-code>
        <!-- 这里可以为servlet,不一定非要静态资源 -->
        <location>/404</location>
    </error-page>

如果你项目中没用到shiro的就可以到此为止了

shiro项目会报错:

org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code

经网上查看便知

在web.xml的配置文件里面,应该这样配置shiro

    <!-- Shiro Filter is defined in the spring application context: -->
    <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>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>

重点是

        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>

这几行代码。

到此运行工程,404完美了

时间: 2024-10-21 22:44:29

shiro+SpringMVC 项目 配置404页面的相关文章

SpringMVC项目配置欢迎页面为index.html

一.问题 在web.xml中添加如下配置无效 <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> 访问http://localhost/KingWeixin/ 无作用 二.解决问题 2.1.问题分析 1.默认tomcat容器的默认页面. /index.html 这种方式适合访问静态的页面(也包括JSP)或者说是没有任何参数的页面. 2.spirng

Nginx反向代理后配置404页面

关键词:proxy_intercept_errors.fastcgi_intercept_errors   在网上搜索404配置,有很多配置文章,但都是关于fastcgi_intercept_errors的,不过对我们的项目不起作用.我们的项目使用nginx做反向代理,通过域名区分不同的网站,配置fastcgi_intercept_errors不生效,需要配置proxy_intercept_errors.以下罗列出两种配置方式,供大家参考.   1.fastcgi_intercept_error

SpringMVC之自定义404页面

利用Servlet容器比如Tomcat处理很方便.在web.xml中配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://ja

IIS配置404页面配置,IIS自定义404页面

.NET 环境下 用到404页的场景一般有两种: 场景一:报黄页,程序性的错误,代码层可以捕捉到的. 场景二:用户输入不存在的页面,代码层捕捉不到的. IIS 默认会有404的配置,不过这种呈现出的都不好,而且也不能引流,影响用户体验! 所以,我们可以进行自定义404页面,方法如下: 准备一个404页面,如404.aspx,建议放在网站跟目录下 我们可以通过web.config进行配置: 场景一的配置: <system.web> <customErrors mode="On&q

spring+mybatis+springmvc项目配置

项目下web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="

nginx配置404页面 &lt;备忘&gt;

修改nginx配置文件: fastcgi_intercept_errors    on;        #通过某些方法拦截错误 error_page    404    /404.html;        #自定义错误页面 检查nginx配置文件: nginx -t 重新加载nginx配置文件: nginx -s reload

vue-cli创建的项目,配置多页面的实现方法

vue官方提供的命令行工具vue-cli,能够快速搭建单页应用.默认一个页面入口index.html,那么,如果我们需要多页面该如何配置,实际上也不复杂 假设要新建的页面是rule,以下以rule为例 创建新的html页面 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html> <html>     <head>         <meta charset="utf-8">    

Springmvc+mybatis配置前台页面传递JSON串给后台接收。

前台页面js方法: $(document).ready(function(){ var saveDataAry=[]; var data1={"id":5,"name":"益生元","province":"西藏"}; var data2={"id":6,"name":"好爸爸","province":"拉萨"

springMvc项目配置步骤

spring部分:applicationContext.xml文件配置 1.配置数据源 dataSource <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.