java web中异常的处理
1、@Controller
使用注解声明控制器@RequestMapping("demo")
请求的地址在该url之下才有该控制器相应public class DemoController {
请求地址是此方法时才请求 @RequestMapping("login.do")


2、public String login(){
返回视图名称,该视图名称会根据springmvc配置中的
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
配置调用viewresolver视图解析处理器返回jsp页面
return "demo"; }


3、简单测试一下:从前端获取数据如果为空,返回异常
@RequestMapping("loginAction.do") @ResponseBody public String loginAction(String name) throws NameException{ if(name==null||name==""){ throw new NameException(); } return "demo1"; }

4、在控制器中直接写此注解
@ExceptionHandler(NameException.class) public String nameException(HttpServletRequest request,NameException ne){ HttpSession session = request.getSession(); session.setAttribute("message", ne.getMessage()); System.out.println(ne.getMessage()); return "demoException"; }}

5、异常只重写了getMessage方法
public class NameException extends Exception { @Override public String getMessage() { // TODO Auto-generated method stub return "无法获取姓名"; }}

6、<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!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" /></head><body><h1>${message }</h1></body></html>
