您的位置:首页 > 编程语言 > Java开发

12. SpringMVC 访问异常处理

2016-03-09 20:42 393 查看
本系列入门学习参考极客学院Spring入门系列视频学习记录总结而来

基于上一个例子代码

添加一个BaseController,里面定义异常处理逻辑,其他Controller均继承该BaseController:

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.bind.annotation.ExceptionHandler;

import com.dragon.springmvc.exception.MyException;

public class BaseController {

@ExceptionHandler(MyException.class)
public String handleException(Exception ex, HttpServletRequest request) {
request.setAttribute("error", ex.getMessage());
return "/WEB-INF/jsp/exception.jsp";
}

}


import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.dragon.springmvc.constant.Global;
import com.dragon.springmvc.exception.MyException;
import com.dragon.springmvc.model.User;
import com.dragon.springmvc.service.LoginService;

@Controller
public class LoginController extends BaseController {

@Resource
LoginService service;

@Resource
HttpServletRequest request;

@RequestMapping("/exception")
public void exception() throws MyException{
throw new MyException("测试springmvc中的异常捕获");
}

@RequestMapping("/loginpage")
public String toLoginPage(){
return "/WEB-INF/jsp/login.jsp";
}

@RequestMapping("/user/home")
public String toUserHome(){
return "/WEB-INF/jsp/userhome.jsp";
}

@RequestMapping(value = "/doLogin", method = RequestMethod.POST)
public String doLogin(@RequestParam String userName, @RequestParam String password){

try {
User user = service.doLogin(userName, password);
request.getSession().setAttribute(Global.USER_SESSION_KEY, user);
return "redirect:/user/home.html";
} catch (Exception e) {
return "/WEB-INF/jsp/login.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>

<div style="margin:0 auto; padding-top: 100px;" align="center">
<h1>服务器发生异常,异常信息:${error }</h1>
</div>

</body>
</html>


index.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>
<div style="margin:0 auto; padding-top: 100px; font-size: 18px;" align="center">
<p><a href="loginpage.html"> 登录  </a></p>
<p><a href="user/home.html"> 用户中心  </a></p>
<p><a href="exception.html"> 触发异常  </a></p>
</div>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc