21OGNL与ValueStack(VS)-静态方法访问】的更多相关文章

转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在LoginAction中增加如下方法: public static String getSta() { return "这是LoginAction中的静态方法"; } 然后在loginSuc.jsp中增加如下代码: 调用Action中的静态方法:<s:property value="@com.asm.LoginAction@getSta()&qu…
1. 属性哪来的 当我们通过Action处理完用户请求以后,可以直接在页面中获取到 action 的属性值. 如果我们在页面中尝试遍历四个域中的属性,会发现域中并没有username之类的Action中的属性. 但是我们自己又没有在域中进行设置,经过研究发现request域中出现了一个奇怪属性 属性的名字:struts.valueStack 属性的类型:OgnlValueStack ValueStack翻译过叫做值栈,顾名思义就是存储值的栈 Struts在每次处理请求都会创建一个新的ValueS…
1.值栈入门 下面我们建立struts2ognl项目来练习ognl的使用. 步骤一.搭建strust2的开发环境 步骤二.建立LoginAction,主要代码如下: package com.asm; public class LoginAction extends ActionSupport{ private User user; public String execute() throws Exception { return SUCCESS; } ...省略user的get/set方法 }…
http://blog.csdn.net/tjujacob/article/details/8117659 —————————————————————————————————————————————————————————— 一."#"的用法     1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext():下表有几个ActionContext中有用的属性:           parameters  包含当前HTTP请求参数的Map…
静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象.   静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制.   下面几个例子展示了这一区别.   1.调用静态方法示例.   //-----------hasStaticMethod…
转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象.   静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制.   下面几个例子展示了这一区别.   1.调用静态方法示例.   //-----…
1.内部类可以直接访问外部类中的成员,包括私有      原因:因为在内部类中持有一个外部类的应用,格式:外部类.this class Outer {     private int x = 1; class Inner {         int x = 2;         public void seeOuter() {              int x = 3;              System.out.println(x);              System.out.p…
大家都知道在static方法中,不能访问类内非static成员变量和方法.可是原因是什么呢? 这首先要从static方法的特性说起.static方法,即类的静态成员经常被称为"成员变量"(class members),对于静态成员变量,我们叫类属性(class attributes),对于静态成员方法,我们叫类方法(class members).其中静态成员变量:无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份.我们可以直接使用类名来访问这个stati…
一.ValueStack     1 .ValueStack是一个接口,在struts2中使用OGNL(Object-Graph Navigation Language)表达式实际上是使用          实现了ValueStack接口的类OgnlValueStack.它是ValueStack的默认实现类.       2 .ValueStack贯穿整个action的生命周期,每一个action实例都拥有一个ValueStack对象,其中保存了当前action对象和其他相关对象. 3.stru…
php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. ·                                 静态属性 静态属性也就是说它的值保持其值,比如在类中实例化了N个对象,那么你可以在构造函数中定义一个静态属性来记住对象的个数.类中的静态属性和静态变量差不多,只不过在类中似乎又多了一个些使用上的限制罢了.让我们看看一般的变量吧: <?…
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象. 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制. 下面几个例子展示了这一区别. 1.调用静态方法示例. //-----------文件名hasStaticMethod.java,程…
1:访问修饰符 private     同类中 默认        同类        同包 protect    同类         同包      子类 public     同类        同包        子类         其它任何地方 2:导包 当两个类同名时  需要进行导包以区分, 3:继承 1)继承成员变量,但与访问修饰符有关系. 4:继承中的构造方法 1)子类中的构造方法默认调用父类的无参构造,如果用super在子类构造中调用父类的有参构造就会将父类的无参构造覆盖,如…
1. 程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问. 类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问:非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问. 在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错: 而类又是在什么时候加载的呢? 由引导类加载器负责加载的核心…
记住两句话: 1.属性是静态绑定到变量类型: 2.方法是动态绑定,由最终对象的方法决定 =============================== 关于JavaBean: 1.不是语法规则,是习惯性编程规范,用这个规范写的类使用方便: 2.规范: a.必须有包: b.是一个java类,具有无参数构造器: c.有用getXxx() 和setXxx()声明的Bean属性. 如:getName()和setName(String n)声明的Bean属性为:name,与是否有实例变量name无关. b…
1. 静态方法: 成员变量分为实例变量和静态变量.其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量.而静态变量被该类所有的对象公有(相当于全局变量),不需要实例化就已经存在. 方法也可分为实例方法和静态方法.其中,实例方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用.与成员变量不同的是:无论哪种方法,在内存中只有一份——无论该类有多少个实例,都共用同一个方法. 实例方法的调用: ClassA a = new ClassA();  …
java多线程并发去调用一个类的静态方法安全性探讨 转自:http://blog.csdn.net/weibin_6388/article/details/50750035   这篇文章主要讲多线程对静态方法访问的数据安全性 总结如下: 1,java在执行静态方法时,会在内存中拷贝一份,如果静态方法所在的类里面没有静态的变量,那么线程访问就是安全的,比如在javaee中服务器必然会多线程的处理请求此时如果设计全局需要调用的静态方法,可用此种设计. 2,java在执行静态方法时,如果使用静态变量,…
一.ValueStack     1.ValueStack是一个接口,在struts2中使用OGNL(Object-Graph Navigation Language)表达式实际上是使用         实现了ValueStack接口的类OgnlValueStack.它是ValueStack的默认实现类. 2.ValueStack贯穿整个action的生命周期,每一个action实例都拥有一个ValueStack对象,其中保存了当前action对象和其他相关对象. 3.struts2把Value…
文章转自:https://blog.csdn.net/weibin_6388/article/details/50750035 这篇文章主要讲多线程对静态方法访问的数据安全性 总结如下: 1,java在执行静态方法时,会在内存中拷贝一份,如果静态方法所在的类里面没有静态的变量,那么线程访问就是安全的,比如在javaee中服务器必然会多线程的处理请求此时如果设计全局需要调用的静态方法,可用此种设计. 2,java在执行静态方法时,如果使用静态变量,同时类的函数设计时使用到了静态数据,最好在调用函数…
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象. 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制. 下面几个例子展示了这一区别. 1.调用静态方法示例  ? 1 2 3 4 5 6 7 //-----------hasStatic…
一.准备工作及实例 1.解压struts-2.1.6-all.zip(structs网上下载) apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. Src 目录:源文件存放地 2.六个基本包 struts2-core-2.1.6.jar :开发的核心类库 freemarker-2.3.13.jar :struts2的UI标签的模板使用freemarker编写 commons-logging-1.0.4.jar :日志包 ognl-2.6.11…
目录 . J2EE简介 . JAVA EE应用的分层模型 . 搭建Struts2 Demo应用 . struts2流程 . struts2的常规配置 . 实现Action . 配置Action . 配置处理结果 . 配置struts2的异常处理 . convention插件与"约定"支持 . 使用struts2的国际化 . 使用struts2的标签库 1. J2EE简介 0x1: JavaBeans JavaBeans是Java语言中可以重复使用的软件组件,它们是一种特殊的Java类,…
ognl 1. 什么是ognl 对象图导航语言 Struts内置的表达式语言,它比EL要强大很多. ------------------ 2. 单独学习ognl * EL它操作的数据来自于:四大域:pagecontext.request.session.application * ognl操作的数据来自于:ognl上下文对象,以及root对象 OgnlContext它是一个Map,你不用对它有过多了解! OGNL表达式以“#”开头! OGNL表达式几乎与EL相同! ---------------…
OGNL表达式(转载)   1.什么是OGNL OGNL:Object Graphic Navigation Language(对象图导航语言) 它是Struts2中默认的表达式语言.使用表达式需要借助Struts2的标签. OGNL与EL的区别: EL/JSTL 数学运算等等表达式: 都有一个明确的返回值,都只能取值. OGNL表达式: 它不仅可以取值,还可以赋值(赋值操作只能由Struts来完成) OGNL表达式的写法:   属性.属性.属性的方式   <input type="tex…
1.struts.properties配置常量等同于struts.xml中配置(置于类加载路径下面)struts.multipart.maxSize文件上传最大大小struts.action.extension默认struts处理的请求后缀struts.enable.DynamicMethodInvocation是否支持动态方法调用,默认为true支持struts.devMode开启开发模式struts.ui.theme指定视图标签默认的视图主题struts.custom.i18n.resour…
转:http://static.hx99.net/static/drops/tips-347.html 攻击JavaWeb应用[5]-MVC安全 园长 · 2013/07/25 13:31 注:这一节主要是消除很多人把JSP当作了JavaWeb的全部的误解,了解MVC及其框架思想.MVC是用于组织代码用一种业务逻辑和数据显示分离的方法,不管是Java的Struts2.SpringMVC还是PHP的ThinkPHP都爆出过高危的任意代码执行,本节重在让更多的人了解MVC和MVC框架安全,由浅到深尽…
JAVA中的OGNL: 1 调用对象的方法: 2 访问对象的静态方法: 3 获取OGNLContext.Root中的数据. User: 4 访问Context: 关键还是在Struts2环境中的使用: 并没有打印 静态方法的值,因为Struts2默认关闭了. 再次刷新后发现有值了. 编写demo debug启动 打断点发现: root和context均在这里面. 修改demo返回值 运行: 方式1: 方式2: 如果有多个user 默认展示栈顶的!!! 没有set get方法 无法查看 但是已经在…
Struts2进阶学习3 OGNL表达式与Struts2的整合 核心配置文件与页面 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.…
一.准备工作及实例 1.解压struts-2.1.6-all.zip apps目录:struts2自带的例子程序docs目录:官方文档. lib 目录:存放所有jar文件. Src 目录:源文件存放地 2.六个基本包 struts2-core-2.1.6.jar :开发的核心类库freemarker-2.3.13.jar :struts2的UI标签的模板使用freemarker编写commons-logging-1.0.4.jar :日志包ognl-2.6.11.jar :对象图导航语言,通过它…
目录 1. OGNL 1.1 OGNL概述 1.1 什么是OGNL 1.1.2 OGNL的优势 1.1.2 OGNL使用的要素 1.2 OGNL的Java环境入门[了解] 1.2.1 访问对象的方法 1.2.2 访问对象的静态方法 1.2.3 获得Root中的数据 1.2.4 获得OgnlContext中的数据 1.3 OGNL的Struts2的环境入门 1.3.1 访问对象的方法 1.3.2 访问对象的静态方法 2. 值栈 2. 1什么是值栈 2.2 值栈的内部结构 2.3 值栈与Action…
一. Package 标签 1. 标签属性:name        : 包的名称,只有在一个项目中不重名即可.extends       : 继承哪个包,默认为 struts-default.namespace  : 名称空间,与<action> 标签中的 name 属性决定访问路径    - 名称空间写法:         - 带名称的: namespace="/a"        - 不带名称: namespace="/"        - 默认空间…