struts常用扩展

            用户验证,错误异常处理,这个看似小事,但有时候处理也比较麻烦,随时有可能处理不好!

            一,用户验证处理

  • 通过自定义标签直接添加在需要用户验证的页面 
  • 通过覆盖struts 的RequestProcessor的processRole(),从而获得用户验证功能.
  • 通过编写一个Action验证基类,子类继承而获得用户验证功能.

        1)自定义标签实现验证

java 代码
  1. public final  class CheckLogin extends TagSupport{   
  2.     
  3.         public int doStartTag() throws JspException{   
  4.                
  5.              return (SKIP_BODY);   
  6.     }   
  7.       
  8.        public int doEndTag() extends JspException{   
  9.               
  10.             HttpSession session=pageContext.getSession();   
  11.             String userName=sesssion.getAttribute("USERNAME");   
  12.             if(userName==null){   
  13.                    pageContext.forward("xxxxx.jsp") ; //错误页面   
  14.                    return (SKIP_PAGE);   
  15.             }   
  16.             return (EVAL_PAGE);   
  17.    }   

        2)struts 的RequestProcessor的processRole(),从而获得用户验证功能

java 代码
  1. protected boolean processRoles (ActionMapping mapping,   
  2.                                     ActionForm form,    
  3.                                     HttpServletRequest request,    
  4.                                     HttpServletResponse response)   
  5.                                     throws IOException, ServletException{   
  6.   
  7.          HttpSession session=request.getSession();   
  8.          String userName=session.getAttribute("USERNAME");   
  9.          if(userName==null){   
  10.                 RequestDispatcher rd=request.getDispathcher("XXXX.jsp");//返回错误页面  
  11.                 rd.forward(request,response);
  12.                 return false;   
  13.         }   
  14.         return true;   
  15. }  

       3)编写一个Action验证基类,子类继承而获得用户验证功能.

java 代码
  1. public abstract class CheckBaseAction extends Action{   
  2.              
  3.        public final ActionForward execute(ActionMapping mapping,   
  4.                                     ActionForm form,    
  5.                                     HttpServletRequest request,    
  6.                                     HttpServletResponse response)   
  7.                                     throws IOException, ServletException {    
  8.               
  9.                 HttpSession session=request.getSession();   
  10.                 String userName=session.getAttribute("USERNAME");   
  11.                 if(userName==null){   
  12.                          return (mapping.findForward("login"));   
  13.                }   
  14.                 return doExecute(mapping,request,response);   
  15.     }   
  16.   
  17.       public abstract  ActionForward doExecute(ActionMapping mapping,   
  18.                                     ActionForm form,    
  19.                                     HttpServletRequest request,    
  20.                                     HttpServletResponse response)   
  21.                                     throws IOException, ServletException ;   
  22.   
  23. }   

       第三种灵活性比前2种强点,但与struts耦合比较强,或者可以使用另一种filter来实现用户检验也不错的选择!

       二.异常处理

  •   通过Servlet异常处理,只要简单地在Web.xml里配置异常处理类型和返回页面
  •   通过Struts的异常处理机制,在struts-config.xml配置局部异常和全局异常
  •   通过编写一个Action 异常基类,子类继承而获得异常处理功能

         1) Servlet异常处理

xml 代码
  1. <error-page>  
  2.    <error-code>404error-code>  
  3.    <location>XXX.jsplocation>   
  4. error-page>  
  5.   
  6. <error-page>  
  7.     <exception-type>java.lang.NullPointerExceptionexception-type>  
  8.     <location>XXX.jsplocation>   
  9. error-page>  
  10.   

        2)Struts的异常处理机制,在struts-config.xml配置局部异常和全局异常

xml 代码
  1.   
  2.    <global-exceptions>  
  3.             <exception type="java.lang.exception"       
  4.                                key="action.errors.exception"      
  5.                                path="/error.jsp"/>  
  6.    global-exceptions>  
  7.   
  8.   
  9.     <action-mappings>  
  10.             <action path="/Login"    
  11.                           type="cn.com.sqicoo.LoginAction"  
  12.                           name="LoginForm"  
  13.                           input="/login.jsp">  
  14.            <exception type="java.lang.exception"       
  15.                                key="action.errors.exception"  >  
  16.            <forward name="success" path="/login_success.jsp"/>  
  17.             action>  
  18.     action-mappings>  

        3)编写一个Action 异常基类,子类继承而获得异常处理功能

java 代码
  1. public abstract class ErrorBaseAction extends Action{      
  2.                 
  3.        public final ActionForward execute(ActionMapping mapping,      
  4.                                     ActionForm form,       
  5.                                     HttpServletRequest request,       
  6.                                     HttpServletResponse response)      
  7.                                     throws IOException, ServletException {       
  8.               try{   
  9.                      return doExecute(mapping,form,request,response);   
  10.               }catch(Exception ex){   
  11.                      return doException(ex,mapping,form,request,response);   
  12.               }   
  13.     }      
  14.      
  15.       public  ActionForward doException(Exception ex,   
  16.                                     ActionMapping mapping,      
  17.                                     ActionForm form,       
  18.                                     HttpServletRequest request,       
  19.                                     HttpServletResponse response)      
  20.                                     throws IOException, ServletException {       
  21.                  // 异常处理   
  22.                   return mapping.findForward("XXX");//返回页面   
  23.       }   
  24.   
  25.        public abstract  ActionForward doExecute(ActionMapping mapping,      
  26.                                     ActionForm form,       
  27.                                     HttpServletRequest request,       
  28.                                     HttpServletResponse response)      
  29.                                     throws IOException, ServletException;   
  30.      
  31. }      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值