springMVC之异常处理

1. 自定义一个异常类: UserException.java

public class UserException extends RuntimeException {

	private static final long serialVersionUID = 1L;

	public UserException() {
		super();
	}

	public UserException(String message, Throwable cause) {
		super(message, cause);
	}

	public UserException(String message) {
		super(message);
	}

	public UserException(Throwable cause) {
		super(cause);
	}

}

2. 使用用户登录的例子: UserController.java

假定用户名不存在或用户密码错误系统会抛出异常, 并跳到error.jsp页面

@Controller
@RequestMapping("/user")
public class UserController {
	// 使用map模拟数据库
	private Map<String, User> userMap = new HashMap<String, User>();

	public UserController() {
		userMap.put("zhangsan", new User("zhangsan", "123"));
		userMap.put("lishimin", new User("lishimin", "456"));
	}

	// 用户登录之异常处理
	// 访问方法: http://localhost/springmvc_user/login.jsp
	@RequestMapping(value="/login", method=RequestMethod.POST)
	public String login(String username, String password, HttpSession session) {
		if(!userMap.containsKey(username)) {
			throw new UserException("用户名不存在");
		}
		User user = userMap.get(username);
		if(!user.getPassword().equals(password)) {
			throw new UserException("用户密码不正确");
		}
		session.setAttribute("loginUser", user);
		return "redirect:/user/users";
	}

	/**
	 * 局部异常处理(只能处理这个控制器中的异常)
	 */
	@ExceptionHandler(value={UserException.class})
	public String handlerException(UserException e,HttpServletRequest request) {
		request.setAttribute("exception",e);
		return "exception/error";
	}

}

3. 配置全局异常处理: user-servlet.xml

<!-- 全局异常处理 -->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
	<property name="exceptionMappings">
		<props>
			<prop key="com.zdp.exception.UserException">exception/error</prop>
		</props>
	</property>
</bean>

4. 错误信息页面: error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>错误页面</title>
</head>
<body>
发现错误: ${exception.message}
</body>
</html>

springMVC之异常处理,布布扣,bubuko.com

时间: 2024-10-24 14:21:28

springMVC之异常处理的相关文章

springmvc的异常处理&amp;对静态的资源的处理

1 springmvc的异常处理方式,暂时我知道的两种 2 1.在controller中捕获 3 /** 4 * 捕获到异常,用于局部处理 5 * @ExceptionHandler (value={要捕获的异常,可以有多个}) 6 * @param e 7 * @param req 8 * @return 9 */ 10 @ExceptionHandler(value={UserException.class}) 11 public String handlerException(UserEx

SpringMVC 全局异常处理

在 JavaEE 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大.SpringMvc 对于异常处理这块提供了支持,通过 SpringMvc 提供的全局异常处理机制,能够将所有类型的异常处从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护. 全局异常实现方式 Spring MVC

【Spring】SpringMVC之异常处理

java中的异常分为两类,一种是运行时异常,一种是非运行时异常.在JavaSE中,运行时异常都是通过try{}catch{}捕获的,这种只能捕获显示的异常,通常项目上抛出的异常都是不可预见.那么我们能够有什么方法能够解决这种问题吗?当然有,SpringMVC中的异常处理机制就很好的做到了这一点. SpringMVC中的异常处理一共有3种方式 (1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver: (2)实现Spring的异常处理接口Han

SpringMvc的异常处理

首先在SpringMVC中加上<mvc:annotation-driven>标签: <mvc:annotation-driven></mvc:annotation-driven> 新建一个error.jsp页面 1.基于注解的异常处理 (1)@ExceptionHandler注解 在当前Handler中定义由@ExceptionHandler注解修饰的方法,用于处理当前Handler中的异常信息! 在Handler中定义如下方法: 1 @ExceptionHandler

SpringMVC对异常处理的支持

无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了.跟其他MVC框架一样,springMVC也有自己的异常处理机制. springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,当然这也包括使用Spring已经为我们提供好的SimpleMappingExceptionResolver和DefaultHandlerE

【Spring】18、springMVC对异常处理的支持

无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了.跟其他MVC框架一样,springMVC也有自己的异常处理机制.springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,当然这也包括使用Spring已经为我们提供好的SimpleMappingExceptionResolver和DefaultHandlerEx

一起学SpringMVC之异常处理

在系统开发过程中,异常处理是不可避免,如果异常处理不好,会给用户造成很差的体验,本文主要讲解在SpringMVC开发过程中,异常处理的相关知识点,仅供学习分享使用,如有不足之处,还请指正. 概述 在SpringMvc中,处理异常有好几种方法,本文主要讲解两种方案: 通过@ExceptionHandler来进行异常的捕获接收并处理. 通过@ResponseStatus注解来进行返回状态码内容的自定义处理. 通过@ExceptionHandler操作步骤 1. 自定义一个异常类,继承自Excepti

7.学习springmvc的异常处理

一.页面的异常处理流程 二.建立项目springmvc04_exception 1.编写index.jsp页面: 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>Title</title> 5 </head> 6 <body> 7 8 <

springMVC系统异常处理及自定异常处理

配置系统异常处理器 1.后台模拟一个异常 @RequestMapping(value = "/myexception.do", produces = "text/html;charset=utf-8") public String myexception() { int a=5/0; return "/error.jsp"; } 2.未配置系统异常时,前台访问报错500,配置系统异常处理器后成功进入错误页面 <bean class=&quo