spring异常处理实例(登录例子)
来源:互联网 发布:广西妇幼网络医院app 编辑:程序博客网 时间:2024/05/22 07:03
给出一个spring异常处理的简单例子:
spring配置文件Config.xml登录测试代码:
loginInfo代码
显示错误页面:showDBError.jsp
LoginAction代码
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 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">
<p align="center">登录</p>
<br>
用户名:
<input type="text" name="username">
<br>
密 码:
<input type="password" name="password">
<br>
<p>
<input type="submit" value="提交" name="B1">
<input type="reset" value="重置" name="B2">
</p>
</form>
</body>
</html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form method="post" action="login.do">
<p align="center">登录</p>
<br>
用户名:
<input type="text" name="username">
<br>
密 码:
<input type="password" name="password">
<br>
<p>
<input type="submit" value="提交" name="B1">
<input type="reset" value="重置" name="B2">
</p>
</form>
</body>
</html>
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;
}
}
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>
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;
}
}
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;
}
}
- spring异常处理实例(登录例子)
- Spring security使用自定义登录界面且显示登录异常信息的例子
- sql 异常处理 例子
- C++ 异常处理例子
- 在Spring中异常处理机制实例测试
- java异常处理实例
- C++异常处理实例
- __try__finally异常处理实例
- 实例简介异常处理
- c#异常处理实例
- stuts异常处理实例
- 异常处理实例
- spring事件处理例子
- spring mvc 简单登录例子
- Spring security2 登录例子1
- spring mvc 简单登录例子
- MSDN处理异常的例子
- C++异常处理机制例子
- 如何在Windows 2000&XP下将Oracle完全卸载?
- java中的++操作
- .NET Framework概述
- UpdatePanel使用脚本
- 改善C#程序的50种方法 条款2:运行时常量(readonly)优于编译时常量(const)
- spring异常处理实例(登录例子)
- 简单的最大最小问题:)
- 自定义应用程序配置文件(web.config)
- ASP.NET概述
- VIVI讲解与分析
- 新的创意——来点实际的
- 翻页事件
- java中的单立模式---singleton
- fstream的用法