zoukankan      html  css  js  c++  java
  • struts2的异常

    index.jsp

     1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">    
    11     <title>测试异常</title>    
    12   </head>
    13   
    14   <body>
    15     <form action="lee/login.action">
    16     用户名:<input type="text" name="username" /><br/>
    17     密码:<input type="password" name="password" /><br />
    18     <input type="submit" value="提交" />
    19     </form>
    20   </body>
    21 </html>

    struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7     <constant name="struts.enable.DynamicMethodInvocation" value="false" />
     8     <constant name="struts.devMode" value="true" />    
     9     <package name="lee" extends="struts-default">
    10         <!-- 此处定义所有的全局结果 -->
    11         <global-results>
    12             <!-- 逻辑名为sql的结果,映射到/sqlexception.jsp页面 -->
    13             <result name="sql">/sqlexception.jsp</result>
    14             <!-- 逻辑名为root的结果,映射到/exception.jsp -->
    15             <result name="root">/exception.jsp</result>
    16         </global-results>
    17         <!-- 此处定义所有的全局异常映射 -->
    18         <global-exception-mappings>
    19             <!-- Action抛出SqlException异常时,转入名为sql的结果 -->
    20             <exception-mapping result="sql" exception="java.sql.SQLException"></exception-mapping>
    21             <exception-mapping result="root" exception="java.lang.Exception"></exception-mapping>
    22         </global-exception-mappings>
    23         <!-- 下面配置本系统的Action -->
    24         <action name="login" class="lee.LoginAction">
    25             <!-- 下面配置了一个局部异常映射,当Action抛出lee.MyException时,转入名为my的结果 -->
    26             <exception-mapping result="my" exception="lee.MyException"></exception-mapping>
    27             <result name="my">/exception.jsp</result>
    28             <result name="error">/error.jsp</result>
    29             <result name="success">/welcome.jsp</result>
    30         </action>
    31     </package>
    32 </struts>

    MyExction.java

    1 package lee;
    2 
    3 public class MyException extends Exception {     
    4         public MyException(String mess){
    5             super(mess);
    6         }
    7 }

    LoginAction.java

     1 package lee;
     2 
     3 import java.sql.SQLException;
     4 
     5 import com.opensymphony.xwork2.Action;
     6 
     7 public class LoginAction  implements Action{
     8     private String username;
     9     private String password;
    10     //封装服务器处理后的结果
    11     private String tip;
    12     public String getUsername() {
    13         return username;
    14     }
    15     public void setUsername(String username) {
    16         this.username = username;
    17     }
    18     public String getPassword() {
    19         return password;
    20     }
    21     public void setPassword(String password) {
    22         this.password = password;
    23     }
    24     public String getTip() {
    25         return tip;
    26     }
    27     public void setTip(String tip) {
    28         this.tip = tip;
    29     }
    30     
    31     @Override
    32     public String execute() throws Exception {
    33         String result="";
    34         if(getUsername().equalsIgnoreCase("user")){
    35             throw new MyException("自定义异常"); 
    36         }
    37         if(getUsername().equalsIgnoreCase("sql")){
    38             throw new SQLException("用户名不能为sql");
    39         }
    40         if(getUsername().equals("scott")&&getPassword().equals("tiger")){
    41             setTip("哈哈,服务器提示!");
    42             result=SUCCESS;
    43         }
    44         else {
    45             result=ERROR;
    46         }        
    47         return result;
    48     }    
    49 }

    sqlexception.jsp

     1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 <%@taglib prefix="s" uri="/struts-tags" %>
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'index.jsp' starting page</title>
    13 
    14   </head>
    15   
    16   <body>
    17     <h1>sqlexception</h1>
    18     <h2><s:property value="exception.message" /> </h2>
    19     <h3>
    20         <s:property value="exceptionStack" />
    21     </h3>
    22   </body>
    23 </html>

    在登陆页用户名框中输入sql,然后提交

    跳转到sqlexception.jsp页面

  • 相关阅读:
    习题4.7利用vector实现数据复制
    习题4.18
    4.8编写一小段程序实现两vector是否相等的比较
    关于野指针
    学习c++的50条忠告
    c++头文件
    习题4.14
    容器和迭代器
    Android上C++对象的自动回收机制分析
    Windows下载Android源码
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4503282.html
Copyright © 2011-2022 走看看