`
java-mans
  • 浏览: 11418743 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
给出一个spring异常处理的简单例子:
spring配置文件Config.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<beanid="viewResolver"
class
="org.springframework.web.servlet.view.InternalResourceViewResolver">
<propertyname="viewClass">
<value>
org.springframework.web.servlet.view.JstlView
</value>
</property>

<propertyname="prefix">
<value>/WEB-INF/view/</value>
</property>

<propertyname="suffix">
<value>.jsp</value>
</property>

</bean>

<beanid="messageSource"
class
="org.springframework.context.support.ResourceBundleMessageSource">
<propertyname="basename"><value>messages</value></property>
</bean>


<beanid="exceptionResolver"
class
="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<propertyname="defaultErrorView">
<value>failure</value>
</property>

<propertyname="exceptionMappings">
<props>
<propkey="java.sql.SQLException">showDBError</prop>
<propkey="java.lang.RuntimeException">showError</prop>
</props>
</property>
</bean>

<beanid="RegisterValidator"
class
="net.xiaxin.validator.RegisterValidator"/>

<beanid="RegisterAction"
class
="net.xiaxin.action.RegisterAction">
<propertyname="commandClass">
<value>net.xiaxin.reqbean.RegisterInfo</value>
</property>

<propertyname="validator">
<reflocal="RegisterValidator"/>
</property>

<propertyname="formView">
<value>register</value>
</property>

<propertyname="successView">
<value>RegisterSuccess</value>
</property>
</bean>

<beanid="freemarkerConfig"
class
="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<propertyname="templateLoaderPath">
<value>WEB-INF/view/</value>
</property>
</bean>

<beanid="urlMapping"
class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<propertyname="mappings">
<props>
<propkey="/login.do">LoginAction</prop>
<propkey="/register.do">RegisterAction</prop>
</props>
</property>
</bean>

<beanid="LoginAction"
class
="net.xiaxin.action.LoginAction">
<propertyname="commandClass">
<value>net.xiaxin.action.LoginInfo</value>
</property>

<propertyname="fail_view">
<value>loginfail</value>
</property>

<propertyname="success_view">
<value>main</value>
</property>
</bean>
</beans>
登录测试代码:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Inserttitlehere</title>
</head>
<body>
<formmethod="post"action="login.do">
<palign="center">登录</p>
<br>
用户名:
<inputtype="text"name="username">
<br>
&nbsp;&nbsp;码:
<inputtype="password"name="password">
<br>
<p>
<inputtype="submit"value="提交"name="B1">
<inputtype="reset"value="重置"name="B2">
</p>
</form>
</body>
</html>
loginInfo代码
publicclassLoginInfo...{
privateStringusername;
privateStringpassword;
publicStringgetUsername()...{
returnusername;
}

publicvoidsetUsername(Stringusername)...{
this.username=username;
}

publicStringgetPassword()...{
returnpassword;
}

publicvoidsetPassword(Stringpassword)...{
this.password=password;
}

}


显示错误页面:showDBError.jsp
<%...@pagelanguage="java"contentType="text/html;charset=gb2312"
pageEncoding
="gb2312"
%>
<%...@pageimport="java.lang.Exception"%>
<%...@pageimport="java.io.PrintWriter"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>Inserttitlehere</title>
</head>
<body>
<%...Exceptionex=(Exception)request.getAttribute("exception");%>
<H2>Exception:<%=ex%></H2>
<%...ex.printStackTrace(newjava.io.PrintWriter(out));%>
</body>
</html>

LoginAction代码
publicclassLoginActionextendsSimpleFormController...{
privateStringfail_view;
privateStringsuccess_view;

protectedModelAndViewonSubmit(Objectcmd,BindExceptionex)throwsException...{
LoginInfologinInfo
=(LoginInfo)cmd;
if(login(loginInfo)==0)...{
HashMapresult_map
=newHashMap();
result_map.put(
"logininfo",loginInfo);

ListmsgList
=newLinkedList();
msgList.add(
"msg1");
msgList.add(
"msg2");
msgList.add(
"msg3");
result_map.put(
"messages",msgList);

returnnewModelAndView(this.getSuccess_view(),result_map);
}
else...{
SQLExceptione
=newSQLException("thisisaexception");

throwe;
//returnnewModelAndView(this.getFail_view());
}


}


privateintlogin(LoginInfologinInfo)...{
if("oscar".equalsIgnoreCase(loginInfo.getUsername())&&"123456".equals(loginInfo.getPassword()))...{
return0;
}

return1;

}

publicStringgetFail_view()...{
returnfail_view;
}

publicvoidsetFail_view(Stringfail_view)...{
this.fail_view=fail_view;
}

publicStringgetSuccess_view()...{
returnsuccess_view;
}

publicvoidsetSuccess_view(Stringsuccess_view)...{
this.success_view=success_view;
}

}


分享到:
评论

相关推荐

    spring-boot示例项目

    cloud-hystrix|[Hystrix服务容错、异常处理、注册中心示例](https://github.com/smltq/spring-boot-demo/blob/master/cloud-hystrix) cloud-zuul|[zuul服务网关、过滤器、路由转发、服务降级、负载均衡]...

    spring.doc

    不用spring异常通知,另一种处理异常 96 4.2.2.2Aop注解形式(了解) 99 注解注入拓展: 103 5 Spring数据库 106 5.1 Spring+JDBC 106 5.1.1 Jdbc编程特点 106 5.1.2引入DataSource 106 5.1.3 核心类JdbcTemplate ...

    Spring+3.x企业应用开发实战光盘源码(全)

     第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。  第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架...

    Spring.3.x企业应用开发实战(完整版).part2

    2.5.2 处理登录请求 2.5.3 JSP视图页面 2.6 运行Web应用 2.7 小结 第2篇 IoC和AOP 第3章 IoC容器概述 3.1 IoC概述 3.1.1 通过实例理解IoC的概念 3.1.2 IoC的类型 3.1.3 通过容器完成依赖关系的注入 3.2 相关Java...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap (ModelAndView) 13.11.3. 对视图的支持: ...

    Spring 2.0 开发参考手册

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap (ModelAndView) 13.11.3. 对视图的支持...

    Spring  AOP实现方法大全

    before方法会在目标对象的指定方法执行之前 被执行,在before方法种,你可以取得指定方法的Method实例、参数列表和目标对象,在before方法执行完后,目标对象上的方法将会执行,除 非在before方法种抛出异常。...

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    spring chm文档

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap (ModelAndView) 13.11.3. 对视图的支持...

    Spring中文帮助文档

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的...

    Spring API

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的...

    Spring3.x企业应用开发实战(完整版) part1

    2.5.2 处理登录请求 2.5.3 JSP视图页面 2.6 运行Web应用 2.7 小结 第2篇 IoC和AOP 第3章 IoC容器概述 3.1 IoC概述 3.1.1 通过实例理解IoC的概念 3.1.2 IoC的类型 3.1.3 通过容器完成依赖关系的注入 3.2 相关Java...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。  第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring...

    spring aop 实现源代码--xml and annotation(带lib包)

    before方法会在目标对象的指定方法执行之前被执行,在before方法种,你可以取得指定方法的Method实例、参数列表和目标对象,在before方法执行完后,目标对象上的方法将会执行,除非在before方法种抛出异常。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    软件加密技术内幕配套光盘(iso版本)

    Spring的加壳程序综合运用的实例 │ ├─Chap07....................................第7章 如何让壳与程序融为一体 │ ├─7.1 欺骗检查壳的工具 │ │ ├─aspack212压缩 │ │ ├─aspack212压缩后更改入口代码 ...

    java-samples:Java中框架使用的一些示例

    :使用spring jdbc的示例 :使用spring web和servlet api 3的示例spring-aop-example :使用spring aop和AspectJ的示例待办事项:Spring Boot,Spring Web MVC 完整的例子complete-example :包含所有这些元素的微型...

    javaSE代码实例

    第11章 异常处理——Java世界的医生 195 11.1 异常处理的基本知识 195 11.1.1 try和catch捕获异常 195 11.1.2 异常的传播过程 198 11.1.3 finally语句块的使用 199 11.1.4 try、catch及finally语句块之间...

Global site tag (gtag.js) - Google Analytics