关闭

spring异常处理实例(登录例子)

标签: springbeanexceptionclassinputhashmap
2341人阅读 评论(0) 收藏 举报
分类:
给出一个spring异常处理的简单例子:
 spring配置文件Config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
   
<bean id="viewResolver"
        class
="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
<property name="viewClass">
           
<value>
              org.springframework.web.servlet.view.JstlView
           
</value>
        
</property>
        
        
<property name="prefix">
            
<value>/WEB-INF/view/</value>
        
</property>
       
        
<property name="suffix">
           
<value>.jsp</value>
        
</property>
        
   
</bean>
   
   
<bean id="messageSource"
       class
="org.springframework.context.support.ResourceBundleMessageSource">
       
<property name="basename"><value>messages</value></property>
   
</bean>
       
  
   
<bean id="exceptionResolver"
        class
="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        
<property name="defaultErrorView">
           
<value>failure</value>
        
</property>
        
        
<property name="exceptionMappings">
            
<props>
                
<prop key="java.sql.SQLException">showDBError</prop>
                
<prop key="java.lang.RuntimeException">showError</prop>
            
</props>
        
</property>
   
</bean>
   
   
<bean id="RegisterValidator"
       class
="net.xiaxin.validator.RegisterValidator"/>
       
   
<bean id="RegisterAction"
       class
="net.xiaxin.action.RegisterAction">
       
<property name="commandClass">
           
<value>net.xiaxin.reqbean.RegisterInfo</value>
       
</property>
       
       
<property name="validator">
           
<ref local="RegisterValidator"/>
       
</property>
       
       
<property name="formView">
            
<value>register</value>
       
</property>
       
       
<property name="successView">
             
<value>RegisterSuccess</value>
       
</property>
   
</bean>
   
   
<bean id="freemarkerConfig"
       class
="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
       
<property name="templateLoaderPath">
           
<value>WEB-INF/view/</value>
       
</property>
   
</bean>
   
   
<bean id="urlMapping"
        class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        
<property name="mappings">
           
<props>
              
<prop key="/login.do">LoginAction</prop>
               
<prop key="/register.do">RegisterAction</prop>
           
</props>
        
</property>
   
</bean>
   
   
<bean id="LoginAction"
       class
="net.xiaxin.action.LoginAction">
       
<property name="commandClass">
          
<value>net.xiaxin.action.LoginInfo</value>
       
</property>
       
       
<property name="fail_view">
           
<value>loginfail</value>
       
</property>
       
       
<property name="success_view">
          
<value>main</value>
       
</property>
   
</bean>
</beans>
登录测试代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Insert title here</title>
</head>
<body>
   
<form method="post" action="login.do">
        
<align="center">登录</p>
        
<br>
        用户名:
        
<input type="text" name="username">
        
<br>
        密
&nbsp;&nbsp;码:
        
<input type="password" name="password">
        
<br>
        
<p>
           
<input type="submit" value="提交" name="B1">
            
<input type="reset" value="重置" name="B2">
        
</p>
   
</form>
</body>
</html>
loginInfo代码
public class LoginInfo ...{
    
private String username;
    
private String password;
    
public String getUsername() ...{
        
return username;
    }

    
public void setUsername(String username) ...{
        
this.username = username;
    }

    
public String getPassword() ...{
        
return password;
    }

    
public void setPassword(String password) ...{
        
this.password = password;
    }

}


 显示错误页面:showDBError.jsp
<%...@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding
="gb2312"
%>
<%...@ page import="java.lang.Exception" %>
<%...@ page import="java.io.PrintWriter" %>
<!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=gb2312">
<title>Insert title here</title>
</head>
<body>
<%...Exception ex=(Exception)request.getAttribute("exception");%>
<H2>Exception: <%=ex%></H2>
<%...ex.printStackTrace(new java.io.PrintWriter(out));%>
</body>
</html>

LoginAction代码
public class LoginAction extends SimpleFormController...{
     
private String fail_view;
     
private String success_view;
     
    
protected ModelAndView onSubmit(Object cmd,BindException ex)throws Exception...{
        LoginInfo loginInfo
=(LoginInfo)cmd;
        
if(login(loginInfo)==0)...{
            HashMap result_map
=new HashMap();
            result_map.put(
"logininfo", loginInfo);
            
            List msgList
=new LinkedList();
            msgList.add(
"msg1");
            msgList.add(
"msg2");
            msgList.add(
"msg3");
            result_map.put(
"messages", msgList);
            
            
return new ModelAndView(this.getSuccess_view(),result_map);
        }
else...{
            SQLException e
=new SQLException("this is a exception");
        
            
throw e;
//            return new ModelAndView(this.getFail_view());
        }

        
    }

    
    
private int login(LoginInfo loginInfo)...{
        
if("oscar".equalsIgnoreCase(loginInfo.getUsername())&&"123456".equals(loginInfo.getPassword()))...{
            
return 0;
        }

        
return 1;
        
    }

    
public String getFail_view() ...{
        
return fail_view;
    }

    
public void setFail_view(String fail_view) ...{
        
this.fail_view = fail_view;
    }

    
public String getSuccess_view() ...{
        
return success_view;
    }

    
public void setSuccess_view(String success_view) ...{
        
this.success_view = success_view;
    }

}

    
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Spring Boot中Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。 选择一个之前实现过的Web应用(Chapter3-1-2)为基础,启动该应用,访问...
  • zhongzh86
  • zhongzh86
  • 2017-05-04 18:39
  • 1035

Spring统一异常处理

一、异常 异常,为我们处理非正常的业务流程提供了很好的解决方案。异常机制给你的代码可读行、可维护性带来了好处,同时,程序的健壮性也得到了增强。当然,异常也不是万能的,在有些项目中并不适用,比如:纯算法项目,对性能要求极高的项目等(因为异常栈会对系统性能有一定开销,参见:http://www.ite...
  • na_tion
  • na_tion
  • 2014-06-01 19:48
  • 3252

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

1 描述  在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。  那么,能不能将所有类型的异常...
  • ufo2910628
  • ufo2910628
  • 2014-10-23 16:22
  • 109409

Spring-Web项目中的异常处理

前言异常体系在任何计算机语言中都有着重要的分量,但是对于普通开发者来说总是存在着多多少少的疑问:什么时候使用异常?什么时候要对异常进行统一处理?该如何对异常进行统一处理?这里,我将把我们后台系统的异常处理机制的演变过程进行阐释。分散式处理大家都知道,在spring-mvc中事务是要切在service...
  • BuquTianya
  • BuquTianya
  • 2016-04-10 22:30
  • 2240

java异常例子解析及常见的异常类型

六种异常处理的陋习    你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?        &...
  • fengoh
  • fengoh
  • 2013-10-31 14:45
  • 4200

【SpringMVC学习07】SpringMVC中的统一异常处理

我们知道,系统中异常包括两类:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc中,能将所有...
  • eson_15
  • eson_15
  • 2016-06-23 20:47
  • 32530

Spring+Shiro案例分析

在 Web 项目中应用 Apache Shiro Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证、授权、加密、会话管理等功能。认证和授权为权限控制的核心,简单来说,“认证”就是证明你是谁? Web 应用程序一般做法通过表单提交用户名及密码达到认证目的。“...
  • u010741376
  • u010741376
  • 2015-08-05 21:58
  • 1516

springMVC三种异常处理方式

Spring MVC处理异常有3种方式:  (1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver;  (2)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器; ...
  • psp0001060
  • psp0001060
  • 2016-03-27 16:40
  • 5007

Apache CXF Rest与Spring 3.0 mvc 的异常处理框架总结

暂没空整理,先给出资料,如何实现zi'ding'yi
  • huanghr_1
  • huanghr_1
  • 2014-07-31 14:52
  • 1672

Spring Boot入门4——统一异常处理

对于前面一篇所讲到的表单验证中提到,如果产生错误,可以得到错误的信息,但是返回值的问题却没有考虑。 其中所提到的Controller: @RequestMapping(value = "/doRegister", method = RequestMethod.POST) publ...
  • a60782885
  • a60782885
  • 2017-03-30 19:15
  • 815
    个人资料
    • 访问:3795528次
    • 积分:26266
    • 等级:
    • 排名:第255名
    • 原创:470篇
    • 转载:68篇
    • 译文:3篇
    • 评论:336条
    博客专栏
    Ext JS

    文章:44篇

    阅读:226611
    PLM

    文章:28篇

    阅读:54351
    Web Chart

    文章:15篇

    阅读:56920
    最新评论