- 浏览: 160998 次
- 性别:
- 来自: 上海
最新评论
-
youjianbo_han_87:
jredis有连接池啊
Jedis操作redis -
zhouzq1008:
就是,为什么只有4.0
eclipse 安装 resin 3 步骤 (转) -
lalaeye:
是的,如果不释放资源的话,如果操作连接频繁的话,或导致打开太多 ...
Jedis操作redis -
hugh.wang:
还好,注意释放一下资源~~
Jedis操作redis -
nihao7010:
先赞一下再仔细阅读
Jedis操作redis
文章列表
自定义拦截器
要自定义拦截器需要实现com.opensymphony.xwork2.interceptor.Interceptor接口:
public class PermissionInterceptor implements Interceptor {
private static final long serialVersionUID = -5178310397732210602L;
public void destroy() {
}
public void init() {
}
public String intercept(Action ...
文件上传
第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。
第二步:把form表的enctype设置为:“multipart/form-data“,如下:
<form enctype="multipart/form-data" action ...
访问或添加request/session/application属性
public String scope() throws Exception{
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app
ctx.getSession().put("ses", "session范围");//往session里放入ses
...
自定义类型转换器
java.util.Date类型的属性可以接收格式为2009-07-20的请求参数值。但如果我们需要接收格式为20091221的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。
import java.util.Date;
public class HelloWorldA ...
传智Struts2笔记(8)
- 博客分类:
- struts2
接收请求参数
1.采用基本类型接收请求参数(get/post)
在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名属性。
请求路径: http://localhost:8080/test/view.action?id=78
public class ProductAction {
private Integer id;
public void setId(Integer id) {//struts2通过反射技术调用与请求参数同名的属性的setter方法来获取请求参数值
this.id = id;
...
Struts2的处理流程
StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同,Struts2对用户的每一次请求都会创建一个Action, ...
1.指定需要Struts 2处理的请求后缀
前面我们都是默认使用.action后缀访问Action。其实默认后缀是可以通过常量”struts.action.extension“进行修改的,例如:我们可以配置Struts 2只处理以.do为后缀的请求路径:
<?xml version="1.0" ...
Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,我们可以很方便地为Action中的属性注入值。注意:属性必须提供setter方法。
public class HelloWorldAction{
private String savePath;
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
......
}
&l ...
Action中result的各种转发类型
<action name="helloworld" class="cn.itcast.action.HelloWorldAction">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值)、 redirect 、 red ...
Action名称的搜索顺序
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的package里面去寻找action(默认的命名空间为空字符串“” ) ,如果在默认namaspace的package里面还寻找 ...
在默认的配置文件struts.xml 中加入如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package n ...
什么是Struts2
Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点大家需要注意的是:尽管Struts2和struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的。那么既然有了struts1,为何还要推出struts2。主要是因为struts2有以下优点:
1 > 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计 ...
一级缓存:
一级缓存很短,和session的生命周期一致,随着session的关闭而消亡。
get,load,iterate(查询实体对象),使用一级缓存
一级缓存缓存的是实体对象
管理一级缓存:
session.clear session.evict
如何避免一次性批量执行导致内存溢出:先session.flush 再session.clear
二级缓存:
二级缓存也称进程级缓存,或叫sessionFactory级的缓存,它可以被所有的session共享,随着sessionFctory的生存周期存在和消亡
sessionFactory可以管理二级缓存
使用第三方的jar,例如 O ...
多对多关联(单向)
多对多一般都会出现一张中间表,来记录这种关系。
例如:
User 和 role的关系
一般都会有一张T_User_Role关系表
我们这里,这张关系表是自动生成的。
User.java
public class User implements java.io.Serializable {
private Integer id;
private String name;
private Set<Role> roles;
}
Role.java
public class Role implements ja ...
一对一关联映射(one-to-one)
两个对象之间,是一对一的关系。如:Person 和 IdCard
有两种实现方式可以完成一对一的关联映射:
1.主键关联
让两个对象具有相同的主键值,以表明他们之间一一对应的关系,数据库表不会有额外的字段来维护他们之间的关系,仅仅通过两张表的相同主键来关联。
2.唯一外键关联:和多对一配置一样,只不过用了唯一的限制。
a)主键关联(单向)
Person.java
public class Person implements java.io.Serializable {
private Integer id;
priv ...