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

原创 2007年09月21日 10:41:00
给出一个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;
    }

}

    

相关文章推荐

异常处理的几个例子

  • 2011年12月24日 21:22
  • 4KB
  • 下载

C#异常处理小例子

  • 2012年04月25日 15:54
  • 15KB
  • 下载

java中checked和unchecked 异常处理的例子

有两种类型的异常:一种是checked异常一种是unchecked异常,在这篇文章中我们将利用实例来学习这两种异常,checked的异常和unchecked异常最大的区别就是checked去唱是在编译...

文件异常处理的一个例子

  • 2006年02月23日 09:05
  • 2.03MB
  • 下载

c++异常处理机制示范例子及讲解

写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。   下面的代码直接贴到你的console工...

spring_exception异常处理

  • 2015年02月05日 15:40
  • 4.9MB
  • 下载

J2SE基础夯实系列之通过例子看六种异常处理的陋习

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

spring boot 异常处理方案

  • 2017年08月28日 15:33
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring异常处理实例(登录例子)
举报原因:
原因补充:

(最多只允许输入30个字)