SSM-SpringMVC-24:SpringMVC异常高级之自定义异常
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------
自定义异常,大家都会,对吧,无非就是继承异常类等操作,很简单,我就不多扯皮了,但是在xml配置文件中有个不同的操作,我一会重点列出来
案例开始:
1.自定义异常类:UserageException
package cn.dawn.day17selfexceptionresolver.userexception; /** * Created by Dawn on 2018/3/30. */ public class UserageException extends Exception { public UserageException() { super(); } public UserageException(String message) { super(message); } }
2.自定义异常类:UsernameException
package cn.dawn.day17selfexceptionresolver.userexception; /** * Created by Dawn on 2018/3/30. */ public class UsernameException extends Exception { public UsernameException() { super(); } public UsernameException(String message) { super(message); } }
3.定义处理器和处理方法:
package cn.dawn.day17selfexceptionresolver; import cn.dawn.day17selfexceptionresolver.userexception.UserageException; import cn.dawn.day17selfexceptionresolver.userexception.UsernameException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Created by Dawn on 2018/3/28. */ @Controller public class ZDYExceptionController { @RequestMapping("/zidingyiException") public String zidingyiException(String username,Integer userage) throws Exception { if(!username.equals("admin")){ throw new UsernameException("登陆名不正确"); } if(userage<18){ throw new UserageException("未成年,走开"); } return "success"; } }
在自己的xml大配置中:SimpleMappingExceptionResolver配一个exceptionMappings
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--包扫描器--> <context:component-scan base-package="cn.dawn.day16exceptionhigh"></context:component-scan> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/day16/"></property> <property name="suffix" value=".jsp"></property> </bean> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <!--默认出现异常跳转的页面--> <property name="defaultErrorView" value="error"></property> <!--这个可以注入异常对象,就像catch参数里的(Exception ex)一样--> <property name="exceptionAttribute" value="ex"></property> <!--自定义的异常--> <property name="exceptionMappings"> <props> <prop key="cn.dawn.day16exceptionhigh.userexception.UserageException">age</prop> <prop key="cn.dawn.day16exceptionhigh.userexception.UsernameException">name</prop> </props> </property> </bean> </beans>
上面标红的是重中之重
4.将web.xml的中央调度器上下文配置位置改为上面新的那个xml
5.jsp页面
5.1age.jsp
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h2>年龄错误ERROR</h2> <p>${ex.message}</p> 服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天 </body> </html>
5.2name.jsp
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h2>名字错误ERROR</h2> <p>${ex.message}</p> 服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天 </body> </html>
5.3login.jsp
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h2>登录</h2> <form action="${pageContext.request.contextPath}/zidingyiException" method="post"> 用户名:<input name="username"> 年龄:<input name="userage"> <input type="submit" value="登录"/> </form> </body> </html>
5.4success.jsp
<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %> <html> <body> <%--<img src="image/1.jpg">--%> <h2>Success!</h2> </body> </html>
5.5error.jsp
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h2>ERROR</h2> <p>${ex.message}</p> 服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天 </body> </html>
6.启动tomcat访问login.jsp
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
记一次Golang内存分析——基于go pprof
1. 背景 阿里云Redis线上在某些任务流中使用redis-port来进行实例之间的数据同步。redis-port是一个MIT协议的开源软件,主要原理是从源实例读取RDB快照文件、解析、然后在目标实例上应用灌数据的写命令。为了限制每个进程的最大内存使用,我们使用cgroup来做隔离,最近线上出现redis-port在同步数据时OOM的情况,最高内存使用达到了10G以上,而实际RDB的大小只有4.5GB左右。 2. 分析 2.1 GCTRACE Golang,自带gc,在不改动代码的情况下,我们可以设置GODEBUG='gctrace=1'环境变量启动程序,来向标准错误输出打印gc log, gc 21 @8.389s 0%: 0.069+4.0+0.16 ms clock, 1.6+2.8/14/10+4.0 ms cpu, 87->
- 下一篇
SSM-SpringMVC-26:SpringMVC异常骇级之自定义异常注解版
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解的方法实现异常解析,话不多说,直接搞起,和以前一样的习惯,和上篇博客一样的代码放后面,不一样的在前面 案例: 1.自定义处理器和处理方法 package cn.dawn.day18annotationexception; import cn.dawn.day18annotationexception.userexception.UserageException; import cn.dawn.day18annotationexception.userexception.UsernameException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; import org.spri...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用