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

给出一个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;
    }

}

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值