拦截器和文件上传和Struts2AJAX学习笔记
来源:互联网 发布:北斗测亩仪软件下载 编辑:程序博客网 时间:2024/05/24 07:43
什么是拦截器
拦截器也是一个类,可以在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使用真累
阅读全文
0 0
- 拦截器和文件上传和Struts2AJAX学习笔记
- 拦截器和文件上传
- J2EE系列之Struts2学习笔记(二十二)--Struts2多文件上传和文件下载
- MVC和文件上传
- 目录和文件拷贝学习笔记
- 【Python学习笔记】-集合和文件操作
- Dbutils框架使用和文件的上传和下载
- linux 通过crt直接上传和下载文件和文件
- 0702学习笔记提示和传递和文件读取读写1
- 《C++ primer plus》第十七章 输入、输出和文件(一):输入和输出 学习笔记
- 文件上传和文件下载
- Struts2国际化和文件上传
- ionic2拍照和文件上传
- github配置和文件上传
- Linux学习笔记之目录和文件权限
- Dive in Python学习笔记六:异常和文件处理
- Perl学习笔记(8) -- 模块的使用和文件测试
- Struts 2 学习笔记 - 1.环境和文件配置
- eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法
- QSqlTableModel的用法
- 如何运行smali文件?
- PAT B1044. 火星数字
- 莫比乌斯反演
- 拦截器和文件上传和Struts2AJAX学习笔记
- MUI添加自定义icon图标 阿里巴巴矢量图标
- MindManager教你做一份完美的笔记
- Qt打开外部程序
- Android之library_PullToRefresh实现下拉刷新
- Okabe and Future Gadget Laboratory CodeForces
- Android6.0 获取MAC地址
- 写给大数据开发初学者的话
- 没有免费的午餐定理 NFL:(No Free Lunch Theorem)