拦截器和文件上传和Struts2AJAX学习笔记

什么是拦截器
拦截器也是一个类,可以在action被调用之前和之后执行的代码,而框架的很多功能也是通过拦截器实现的
拦截器的特点
拦截器可以自由组合,可以拦截action的请求,可以在action执行之前和之后执行代码,实现某些功能.
在哪里用拦截器?
Struts2大部分是用拦截器实现的
如:在接收参数,数据验证,文件上传,国际化
应用程序:需在action执行的前后执行特定的功能
action执行时间统计,访问权限管理
action添加功能
action的执行过程是一个递归的过程
Struts-2.0自带的拦截器如参数拦截器等
拦截器器栈
拦截器的配置和使用
实现方法:
1/通过继承AbstractInterceptor实现拦截器类
重写intercept()方法
2/实现Interceptor接口
init方法:初始化拦截器所需要的资源
destroy:释放init中分配的资源
intercept:实现拦截器功能
3/继承MethodFilterInterceptor类
指定拦截的方法和不拦截的方法

拦截器只能拦截action
重写后在sturts配置文件里配置

<interceptors> //拦截器配置块儿
           <interceptor name="timeIt" class="cn.zhr.intercept.TimeInterceptor"></interceptor>//拦截器配置
           <interceptor-stack name="myIt" >
               <interceptor-ref name="timeIt"></interceptor-ref>
               <interceptor-ref name="defaultStack"></interceptor-ref>
           </interceptor-stack>//拦截器栈配置
       </interceptors>
       <default-interceptor-ref name="timeIt"></default-interceptor-ref>
      特别提示:拦截器配置顺序要在开头 ,否则报错.Caused by: org.xml.sax.SAXParseException: 元素类型为 "package" 的内容必须匹配 "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)"

Ajax使用
1/添加jar包 ,idea里面需要加以一个json插件的包
2/需要在想使用的action所在的package里继承 json-default
3/返回类型type是json,指定返回结果

     <result name="json" type="json">
               <param name="includePreperties">
                    house.*
                </param>
            </result>
  public String getJson()throws Exception{
        System.out.println("json方法");
        house = new House();
        house.setHouseId(1);
        house.setAddDate(new Date());
        house.setHouseType(new HouseType(1,"单身公寓"));
        house.setTitle("单身公寓,为你开启爱的空间");
        Street street = new Street(1,"中关村大街",new District(1,"海淀区"));
        house.setStreet(street);
        return "json";
    }
<body>
<button id="submit">获取数据</button>
</body>
<script type="text/javascript">
    $(submit).bind("click",function(){
        $.getJSON("${pageContext.request.contextPath}/house/house!getJson",function(date){
            alert(date.house.houseType.typeId);
        })

    });
</script>

总结我觉得sturts2的ajax使用真累

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值