- 浏览: 135411 次
- 性别:
- 来自: 韶关
-
最新评论
-
满手都是炸:
要是能再详细点就好了 楼主
JVM中的堆(heap),栈(stack),方法区(method) -
chinagdvea:
...
php __call()与call_user_func_array()理解 -
wlcxx98:
1、调用类的静态常量的时候,是不会加载类的,即不会执行stat ...
[转]static语句块详解 -
skcmm:
我现在遇到的问题 不清楚是哪种情况造成的 如果是第一种 @a ...
关于一个JSON异常
文章列表
ActionContext和ServletActionContext小结
1. ActionContext
在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求参数"username"的值:
ActionContext context = ActionContext. ...
ActionContext包含的对象
{
ValueStack 包含当前请求的应用程序的特定领域的所有数据 (默认OGNL的跟对象)
parameters 当前请求中请求参数的映射 (表单参数)
application 应用程序作用域的属性映射
session 会话作用域的属性的映射
attr 按照页 ...
三范式
第一范式,1NF:(1).数据列只包含有原子性的值
(2).没有重复的数据组
第二范式,2NF:(1)符合第一范式
(2)没有部分函数依赖 (如果location和weather是组合主键,temperature都不是主键,weather改变会引起temperature改变,location改变不会引起temperature改变,
则称temperature对主键有部分依赖)
第三范式,3NF:(1)符合第二范式
(2)没有传递函数依赖性 (如果weather和temperature都不是主键,但是但weather改变会引起temper ...
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个 列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化 ...
抽象工厂模式 Abstract Factory
- 博客分类:
- 设计模式
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类.
工厂用于创建产品家族,客户要创建产品只需使用工厂即可,不需要直接动手去new出所有产品家族,例:
interface AbstractFactory {
createProductA();
createProductB();
}
ConcreteFactoryA() implements AbstractFactory {
createProductA();
createProductB();
}
ConcreteFactoryB() implements AbstractFactory {
createPr ...
1.DELETE语句: DELETE FROM table1 WHERE name='Linc' (无需指定删对象,它会删除一行对象)
2.UPDATE语句: UPDATE table1 SET name='Linc' WHERE age=15 (使用SET关键字,他可以改变一列值)
3.使用运算表达式: UPDATE table1 SET price=price+1 WHERE name='Linc' (是price全部加1)
4.设置Primary Key(主键): CREATE TABLE table1
(
id INT NOT NULL,
nam ...
一个会话可能有多个请求! session 可以有几个 request
request 一个请求(一次request到一次response结束)
session 一次会话(浏览器不关就不结束)
application 从tomcat启动到结束
几乎所有的Web开发语言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。
作用域分为四种,分别为:
page 在当前页面有效(仅用于JSP中)
request 在当前请求中有效
session 在当前会话中有效
application 在所有应用程序中有效
是不是看不太明白?page因为仅用于JSP中,这里只讲述其他三种作用域。首先要声明的一点,所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。
话说武松一日来到景阳岗,见一旗帜迎风飘扬,旗子上书五个大字“三 ...
1.params截拦器:用来讲请求参数通过ValueStack转移到公开属性上
2.static-params截拦器:将定义在声明性架构的动作元素上的参数转移到动作属性中.如
<action name="test" class="...">
<param name="path">./mypath </param>
...
在调用test这个action的时候就会自动将path的值传入到test动作的path属性中
框架调用 - ActionInvocation.invoke() - 调用某interceptor的intercept()方法.
public String intercept(ActionInvocation invocation) throws Exception {
XXOO // 一些预处理
String result = invocation.invoke(); //通过invoke()方法.将控制权交给下一个截拦器.并用result字符串在此等待最后的结果
XXOO // 一些后加工.并返回结果;
return result;
}
inter ...
策略模式:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.
三个原则:
1.找出应用中可能变化之处.把他们独立出来.不要和那些不需要变化的代码混在一起.
这样可避免将代码硬编码进实现类中.实现代码的复用.减少累赘代码
2.针对接口编程.而不是针对实现编程(面对接口的实现类可替换,我们不关心实现类到底如何实现)
使程序具有更高的灵活性.
3.多用组合.少用继承(实现)
将接口或父类作为成员变量编入类中,这样可以避免继承的缺点.(如必须实现一些我们不需要的方法),而且可以根据需要使用接口或父类的不同子类型实例化它.具有更高的灵活性
1.Duck类中 ...
对于File类而言.其封装的并不是一个真正存在的文件.
他可以是存在的.也可以是不存在的.他的构造方法
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例
即用一个自己设定的路径名(可以是存在的.也可以是不存在的)创建一个File实例.如果pathname是不存在的.此时不会创建文件目录.因为File类里封装的是一个不是实际存在的文件的信息.如果调用mkdir()方法.则可以创建次抽象路径名指定的目录
抽象路径名可以是绝对路径.也可以是相对路径.
文件部署一览
工程名:MyApp
一.test.jsp放置于 webroot/test/test.jsp
二.包配置<package name="myPac" namespace="/my" extends...>
三.某个action在myPac包下的配置 <action name="myAction" class...>
1.package中action的result地址配置
<package name="myPac" namespace="/my" e ...
先写代码,一会再总结
public class TestQuickSort {
public static void main(String[] args) {
int[] array = {6, 4, 5, 2, 3, 1};
for (int x : array) {
System.out.print(x + " ");
}
System.out.println();
quickSort(array, 0, array.length - 1);
...
通过OGNL实现表单数据的获取,并自动类型转换,以及编写自定义类型转换器
1.自定义类型 User.java
public class User {
private String name;
private Map pets;
...
Setter and Getter
...
}
public class Pet {
private name;
...
Getter and Setter
...
}
2.编写自定义类型转换器
// StrutsTypeConverter由org.apache.struts2.util ...