Struts2
文章平均质量分 75
徐刘根
微信关注公众号:Java后端技术(ID:JavaITWork),和20万人一起学习Java!
"Java后端技术"微信公众号专注Java相关技术:SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,偶尔讲点运维Jenkins、Nexus、Docker、ELK,偶尔分享些技术干货,致力于Java全栈开发!
展开
-
ValueStack和OGNL实现Struts2表单数据的存储原理
(1)最近学习了struts框架,我们愉悦于struts的强大,方便转发器的使用,但是却不了解内部数据的具体存储;(2)在网上找了很多关于struts数据存储的原理,但是一直没有找到一个详细解说的,偶尔在一本书上找到了ValueStack和OGNL实现Struts2表单数据的存储原理 特分享给大家!(3)以下是部分截图:讲解了关于struts框架中数据表单等的存储!原创 2014-09-30 13:07:53 · 9257 阅读 · 12 评论 -
【Struts2学习笔记(6)】Action动态方法调用
(1)在Struts1中我们使用动态方法调用的方法是:原创 2014-10-01 13:46:25 · 1360 阅读 · 1 评论 -
【Struts2学习笔记(7)】类型转换器的两种方法
(1)自定义类型转换器原创 2014-10-01 15:04:15 · 1199 阅读 · 0 评论 -
【Struts2学习笔记(13)】Struts2中OGNL详解
(1)OGNL表达式语言OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。相对EL表达式,它提供了平时我们需要的一些功能,如:支持对象方法调用,如xxx.sayHello(); 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@原创 2014-10-02 12:14:01 · 1881 阅读 · 0 评论 -
Struts2中Action的数据如何获取的
引言我们在使用struts2的时候,发现只要实现一个和 用户表单相对应的Action那么我们就可以在execute()方法中直接使用该请求的参数,存放在request域中的数据是谁帮我们完成了和Action中的对应哪?以及他们是如何对应的哪?对于第一个问题大家都可能已经知道这位好人就是拦截器,我们的request域中存放的参数,已经由拦截器帮我们映射完毕了,那么下边就看一下是怎么映射的。基本的数据对原创 2015-05-20 13:14:07 · 5265 阅读 · 1 评论 -
Struts2系统结构及运行原理(1)
一、架构图下边是一张Struts2的官方文档中的Struts2的构架图 二、各模块的简要分析(1)橙色是Servlet Filters,过滤连,所有的请求都要经过Filter的处理; (2)浅蓝色是Struts Core,是Struts的核心部分,Struts2中已经做好的功能,在实际的开发中不需要动他们; (3)浅绿色是Interceptor,Struts2的拦截器。Struts2提供了很多原创 2015-05-20 11:42:23 · 5098 阅读 · 0 评论 -
struts1和struts2线程安全问题
这是由于Servlet的工作原理产生的。我们先来简单回顾一下Servlet的生命周期“初始化->init->service->destroy->卸载”。这里大家都知道,我们在web.xml里面定义一个servlet的时候,我们可以给他们设置一个“load-on-startup” 的值,如果 Servlet 的 load-on-startup 配置项大于 0,那么在 Context 容器启动原创 2014-10-06 18:57:02 · 2417 阅读 · 1 评论 -
Struts2系统运行流程(2)
在上一篇中已经说过了Struts2的系统的基本原理(http://blog.csdn.net/xlgen157387/article/details/45840719),下边说一下Struts2的运行流程:举个简单的案例,就是一个helloworld的案例,下边对其进行进行详细的解释。案例基础内容:我们在使用Struts2的时候会在web.xml文件中进行配置过滤器;编写一个Action类,这里起个原创 2015-05-19 16:20:51 · 3645 阅读 · 1 评论 -
Struts2中自定义的Result
引言所谓自定义Result,就是由我们自行开发Result,而不是使用由Struts2预定义的result。 在实际的开发中使用自定义的result机会不大,因为常见的各种页面展示技术,都有struts2给我们做的比较好好的。自定义的Result观看Result的源码如下:public interface Result extends Serializable { /** * Re原创 2015-05-24 09:32:58 · 2892 阅读 · 0 评论 -
Struts2开发自定义拦截器
引言在上一篇中已经讲了一下拦截器的基本概念(http://blog.csdn.net/xlgen157387/article/details/45951163),下边咱们一起实现一个自定义的拦截器。Interceptor接口public interface Interceptor extends Serializable { /** * Called to let an interc原创 2015-05-24 13:55:32 · 2389 阅读 · 0 评论 -
【Struts2学习笔记(12)】Struts2国际化
(1)准备资源文件,资源文件的命名格式如下:baseName_language_country.propertiesbaseName_language.propertiesbaseName.properties其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如:中国大陆: baseName_zh_CN.p原创 2014-10-02 11:11:05 · 1750 阅读 · 0 评论 -
【Struts2学习笔记(9)】单文件上传和多文件上传
(1)第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。第二步:把form表的enctype设置为:“multipart/form-data“,如下: 第三步:在Action类中添加以下属性,属性红色部分对应于表单中原创 2014-10-01 17:02:37 · 1501 阅读 · 0 评论 -
【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到a原创 2014-10-01 10:21:40 · 2270 阅读 · 0 评论 -
解决Struts配置文件中无提示信息的问题
(1)在struts2配置文件编写的时候,有可能无法提示全部信息,原因是下边的 "http://struts.apache.org/dtds/struts-2.0.dtd"这个是需要联网获得的!如果没有联网的话就没有办法获得信息!<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configura原创 2014-10-01 10:16:27 · 2952 阅读 · 2 评论 -
【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的所有方法进行输入校验
(1)在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。对于输入校验struts2提供了两种实现方法:1. 采用手工编写代码实现。2. 基于XML配置方式实现。原创 2014-10-01 21:00:42 · 2119 阅读 · 0 评论 -
【Struts2学习笔记(3)】为Action的属性注入值
(1)Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,我们可以很方便地为Action中的属性注入值。注意:属性必须提供setter方法。{CSDN:CODE:hello}上面通过节点为action的savePath属性注入“/images”原创 2014-10-01 12:58:12 · 2893 阅读 · 0 评论 -
【Struts2学习笔记(8)】访问或添加request/session/application属性获取HttpServletRequest / HttpSession / ServletContex
(1)访问或添加request/session/application属性public String scope() throws Exception{ ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app原创 2014-10-01 15:59:10 · 1458 阅读 · 0 评论 -
【Struts2学习笔记(4)】指定需要Struts 2处理的请求后缀和细说常量定义
前面我们都是默认使用.action后缀访问Action。其实默认后缀是可以通过常量”struts.action.extension“进行修改的,例如:我们可以配置Struts 2只处理以.do为后缀的请求路径:<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//原创 2014-10-01 13:06:44 · 2766 阅读 · 2 评论 -
【Struts2学习笔记(2)】Action配置中的各项默认值和Action中result的各种转发类型
一、Action配置中的各项默认值 /WEB-INF/page/hello.jsp 1>如果没有为action指定class,默认是ActionSupport。2>如果没有为action指定method,默认执行action中的execute() 方法。3>如果没有指定result的name属性,默认值为success。二、Actio原创 2014-10-01 10:44:17 · 3640 阅读 · 1 评论 -
【Struts2学习笔记(14)】Struts2标签元素
(1)property标签property标签用于输出指定值:default:可选属性,如阿需要输出的属性值为null,则显示该属性指定的值escape:可选属性,指定是否格式化HTML代码。value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。id:可选属性,指定该元素的标识原创 2014-10-02 14:49:44 · 1152 阅读 · 0 评论 -
【Struts2学习笔记(5)】Struts2的处理流程及工作原理
(1)Struts2的处理流程示意图原创 2014-10-01 13:28:56 · 1634 阅读 · 1 评论 -
【Struts2学习笔记(10)】自定义拦截器管理权限访问
(1)拦截器的功能什么的都不说了直接上代码来的直接些:原创 2014-10-01 19:32:45 · 1573 阅读 · 0 评论 -
Struts2中的拦截器详解
拦截器是什么拦截器是一种可以在让用户在Action执行之前和Result执行之后进行一些功能处理的机制。 拦截器在action执行之前和result执行之后的顺序是相反的,可以看下图: 也就是说执行的顺序是:Interceptor1—Interceptor2—Interceptor3—Action—Result–Interceptor3—-Interceptor2—-Interceptor1拦截原创 2015-05-24 13:40:02 · 5773 阅读 · 1 评论