`
虚弱的java
  • 浏览: 160187 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论
阅读更多

我们通过简易用户管理系统中的登录功能演示Spring MVC的异常处理,只是使用用户登录功能模拟Spring mvc异常的处理。实际上,登录模块的设计并非如此的简单。

1、在UserController中,编写用户登录方法,代码如下:

@RequestMapping(value="/login",method=RequestMethod.POST)
 public String login(String username,String password,HttpSession session){//此处将HttpSession做为参数
  if(!users.containsKey(username)){
     throw new UserException("用户不存在!");//用户不存在,抛出异常
  }
  User u = users.get(username);
  if(!u.getPassword().equals(password)){
   throw new UserException("密码不正确!");//密码错误
  }
  session.setAttribute("loginUser", u);
  return "redirect:/user/users";
 }

 在上面的方法中,将HttpSession作为参数,Spring会自动的将其注入,用户登录成功后,将用户信息保存到Session中。

2、创建UserException类,并继承RuntimeException类。

3、创建login.jsp登录页面



 4、发布项目,进行登录操作。我们使用不存在的用户进行登录,此时页面会抛出异常。如下图所示:

 

 

 5、我们在UserController方法中,添加局部异常处理方法

@ExceptionHandler(value={UserException.class})//value可以是数组
 public String handlerException(UserException e ,HttpServletRequest req){
  req.setAttribute("e", e);//将异常信息放入请求中
  return "error";
 }

6、异常信息视图界面:



 7、运行效果如图:



以上只是局部异常处理,意味着仅仅只能处理控制中的异常。那么全局异常该如何处理呢?针对项目当中出现大量的异常,采用全局异常处理方式是常用的手法。

8、在Welcome-servlet.xml中配置全局异常处理,同时,项目的目录结构如下:



 

 上面图片的意思是:如果发现UserException抛出异常,则到error页面。

9、将UserCotroller中的局部异常注释掉,发布项目,在登录页面输出一个不存在的用户,得到效果如下:


 10、error.jsp,错误视图处理页面代码修改如下:

<body>
发现错误:
<h1>${exception.message}</h1>
</body>

至此,一个简单的spring mvc异常处理方式,已经完成。

 

<!-- 将静态文件指定到某个特殊的文件夹中统一处理 -->
 <mvc:resources location="/resources/" mapping="/resources/**"/>

以上代码段需要添加在welcome-servlet.xml文件中,其目的是spring mvc中提供了一种统一处理静态资源的方式。如果不添加,则页面引入的css等静态资源无法起作用。

 

 

  • 大小: 11.3 KB
  • 大小: 30.9 KB
  • 大小: 7.6 KB
  • 大小: 12.8 KB
  • 大小: 12.6 KB
  • 大小: 6.1 KB
  • 大小: 10.6 KB
分享到:
评论
1 楼 Herbaceous 2013-11-01  
请问您知道如何全局异常,统一输出Json吗

相关推荐

    spring mvc统一处理异常

    spring mvc统一处理异常,通过@ControllerAdvice+@ExceptionHandler

    spring mvc异常处理

    spring mvc异常处理,详细参考http://blog.csdn.net/xiejx618/article/details/41918611

    spring mvc异常简单处理

    spring mvc让servlet容器直接处理异常.详细看:http://blog.csdn.net/xiejx618/article/details/41695255

    Spring MVC入门教程

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 ...

    Spring MVC 教程 快速入门 深入分析

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 ...

    Spring MVC+MyBatis开发从入门到项目实战

    第3篇是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截...

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 5.Spring MVC @ModelAttribute 注解案例 ...15.Spring MVC 异常处理案例

    使用Spring MVC统一异常处理实战

    NULL 博文链接:https://cgs1999.iteye.com/blog/1547197

    第19章spring-mvc之全局异常处理

    第19章spring-mvc之全局异常处理

    SpringMVC框架架构介绍

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求...

    三. spring mvc 异常统一处理

    NULL 博文链接:https://gaojiewyh.iteye.com/blog/1297746

    Spring MVC REST异常处理佳实践(下)

     Spring 异常处理  Spring MVC 有两个主要方式来处理在调用 MVC 控制器(译注:Controller,下文统一为控制器)时抛出的异常:HandlerExceptionResolver 和 @ExceptionHandler 注解。  ...

    详解使用Spring MVC统一异常处理实战

    本篇文章主要介绍了详解使用Spring MVC统一异常处理实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring MVC--9.自定义拦截器、异常处理

    Spring MVC--9.自定义拦截器、异常处理

    springmvc 异常统一处理的三种方式详解.docx

    那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面将介绍使用Spring MVC统一处理异常的解决和实现过程。

    Spring MVC中异常处理的三种方式

    主要给大家介绍了关于Spring MVC中异常处理的三种方式,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Spring MVC 3.0实战指南.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...

    Spring MVC全局异常处理和单元测试_动力节点Java学院整理

    本篇文章主要介绍了Spring MVC全局异常处理和单元测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Spring MVC REST异常处理佳实践(上)

     然而,由于 Spring MVC 常被用来构建用户接口,因此通过 RESTful 方式来清楚表示异常或问题并不是(那么)显而易见。因为在 REST APIs 中并没有直接的 UI 概念,那么你该如何使用 Spring MVC 简单直观的表示异常...

Global site tag (gtag.js) - Google Analytics