`
oscar999
  • 浏览: 216792 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

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 aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    spring连接数据库实例

    在这个例子中,`JdbcTemplate`自动处理了SQL执行和结果集的转换,使得代码更简洁、易读。 Spring还提供了`TransactionManagement`功能,可以方便地管理数据库事务。在Spring配置中启用事务管理器,并在需要事务的...

    Spring3.0 rest 实例

    **Spring 3.0 REST 实例详解** 在现代Web开发中,REST(Representational State Transfer,表述性状态转移)已经成为构建API的首选架构风格。Spring框架,作为一个强大的Java企业级应用开发框架,从3.0版本开始就...

    spring 简单实例 事务回滚

    在这个“spring简单实例 事务回滚”的案例中,我们将深入探讨Spring如何处理事务回滚,以及它是如何在Java源码层面实现这一功能的。 首先,让我们理解什么是事务。在数据库操作中,事务是确保数据一致性的重要机制...

    Spring Aop使用实例

    **Spring AOP 使用实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它提供了一种在不修改原有代码的情况下,通过代理方式添加额外功能的技术。这种技术使得我们...

    spring aop xml 实例

    例如,我们可能在`beforeMethod`中进行权限检查,在`afterReturningMethod`中记录操作日志,在`afterThrowingMethod`中处理异常,或者在`aroundMethod`中控制事务的开启和提交。 Spring AOP的XML配置实例展示了如何...

    Spring AOP完整例子

    在Spring AOP的例子中,我们可能会创建一个`@RunWith(SpringJUnit4ClassRunner.class)`标记的测试类,以利用Spring的测试支持。在测试方法中,可以注入需要的bean,然后调用方法来触发AOP代理。这样,通知将在适当的...

    dwr+spring实例

    本实例"DWRSpring实例"是一个使用DWR与Spring框架结合的消息发布系统,包含了基础的CRUD(Create、Read、Update、Delete)操作。通过这个例子,我们可以深入理解DWR和Spring如何协同工作,以及它们在实际开发中的...

    spring整合shiro登录小例子

    这个"spring整合shiro登录小例子"提供了一个简化的实例,展示了如何在 Spring 框架中集成 Shiro 进行用户登录验证和权限控制。下面我们将深入探讨相关的知识点。 **1. Spring 框架** Spring 是一个广泛使用的 Java ...

    springboot实例

    我们需要创建一个控制器类,包含处理登录请求的方法,如 `login()` 和 `logout()`,并使用 `@PostMapping` 和 `@GetMapping` 注解来绑定 HTTP 方法。 6. **Service**:在业务逻辑层,我们可以创建一个服务类(如 `...

    spring入门实例

    4. **异常处理**:为了处理登录失败的情况,我们需要捕获可能的异常,如`DataAccessException`,并根据具体情况返回错误信息。 5. **MVC架构**:如果实例包含Web部分,那么可能采用了Spring MVC框架。我们需要创建...

    Spring IOC AOP MVC 简单例子

    你可以通过这个例子学习如何设置Spring MVC项目,以及如何编写处理请求的控制器。 - SpringIOC:这部分展示了Spring的依赖注入特性,可能包括了XML配置文件或者基于注解的配置,以及一些Bean的定义。你可以看到如何...

    Job 基于spring简单实例

    Spring提供了一套完整的事件系统,可以监听任务的开始、结束、异常等事件,配合日志记录,实现任务监控。 7. **测试和调试**: 测试定时任务时,可以使用`@Test`注解结合`@Scheduled(fixedDelay = 1000)`来快速...

    spring aop权限小实例

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(Aspect Oriented Programming,面向切面编程)是其核心特性之一,用于处理系统中的横切关注点,如日志、事务管理等。本实例将深入探讨如何在...

    Spring 注解 小例子

    这个小例子将深入探讨Spring框架中的主要注解及其用法。 1. `@Component`、`@Service`、`@Repository` 和 `@Controller` 这些注解是Spring组件扫描的基础,它们定义了一个bean。`@Component`是最通用的,适用于...

    spring一些简单的例子

    在这个名为"spring一些简单的例子"的压缩包中,你可能会找到一系列帮助初学者理解并掌握Spring框架基础知识的代码示例。以下是一些相关的知识点和详细说明: 1. **依赖注入(Dependency Injection)**:Spring的...

    Spring.net Aop 例子

    通过这个例子,你可以学习到如何在Spring.NET环境中实现AOP,理解动态代理的工作原理,并掌握如何在实际项目中应用AOP来提高代码的灵活性和可维护性。这将有助于你编写更加模块化、易于维护的软件系统。

    spring 学习 validator例子

    如果验证失败,我们可以捕获并处理`MethodArgumentNotValidException`异常,该异常通常由`@Validated`注解触发。 5. **错误消息定制** 我们可以通过提供自定义的消息源(如`ResourceBundle`)来定制验证失败时显示...

    Spring Hibernate事务实例

    在上面的例子中,`saveUser`方法会在一个事务中执行,如果发生异常,整个事务会被回滚,确保数据的一致性。 总结一下,`Spring Hibernate事务实例`涵盖了以下核心知识点: 1. Spring框架的声明式事务管理:通过`...

Global site tag (gtag.js) - Google Analytics