- 浏览: 286494 次
- 性别:
- 来自: 湖南
-
最新评论
-
iceman1952:
Hi 你觉得很好的那两三篇 百度文库的链接,能贴一下吗?
内网穿透&UDP打洞 -
ice86rain:
里面貌似没有用到Lucene
Struts2+Hibernate3.2+Spring2.5+Compass整合 -
sgq0085:
写得非常详细 好文章
JMS之ActiveMQ Linux下安装与应用实例 -
強顔歓笶:
JMS之ActiveMQ Linux下安装与应用实例 -
yixiandave:
forcer521 写道不指定所有子目录都在一起的话,这样用源 ...
linux下nginx稳定版1.6.2安装
文章列表
类型转换
spring提供了供在用户自定义的扩展机制
具体步骤:
第一步:编写自己的类 继承自spring的PropertyEditorSupport类
public class UtilDatePropertyEditor extends PropertyEditorSupport {
private String format = "yyyy-MM-dd";
public void setAsText(String dateText) throws IllegalArgumentException {
SimpleDateFormat sdf ...
拦截器:老的拦截器
配置:
第一步:自定义的拦截类
public class MyInterceptor extends EmptyInterceptor {
public boolean onSave(Object entity, Serializable id, Object[] state,
String[] propertyNames, Type[] types) {
if (entity instanceof Team) {
Team t = (Team)entity ;
System.out.println(t.getName() + " ...
悲观锁:
配置: Person p = (Person)session.load(Person.class, 2, LockMode.UPGRADE) ;
相当于发出一条sql语句并锁定该语句 .
9.
乐观锁机制
如何配置:
第一步:在person.hbm.xml中 <class name="com.cs.Person" table="t_PERSON" optimistic-lock="version" >
<id name="id" column="PERSON ...
hibernate二级缓存,属于sessionFactory的级别,是全局缓存,它的生命周期和sessionFactory一致
配置步骤:
1: 要使用二级缓存<property name="hibernate.cache.use_second_level_cache">true</property>
2:使用哪个缓存提供商<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prope ...
hibernate优化
(1) Lazy Load
在Lazy Load 上推介不要什么字段都采用Lazy Load方式。对于一些基本属性建议将其Lazy设置为false ,而对于一些可能消耗大量内存的字段,如clob这样的字段,建议设置为true,对于集合则全部设置为lazy=tr ...
Struts的体系结构?
Struts是基于MVC架构的开放源代码的应用架构,也是web开发中比较成熟的一种架构
通过把Servlet ,jsp,JavaBean,自定义标签和信息资源整合到一个统一的框架中,为web开发提供了具有高可配置性的MVC的开发模式。
Model由代表系统状态和商业逻辑action来构建
View由Jsp和Struts提供的自定义标签来实现
Controller负责控制流程,由ActionServlet和ActionMapping来完成。
开发工作蛀牙包括4个部分:
(1)视图:
主要由Jsp建立,Struts自身包含了一组可扩展的自定义标签,可以简化创建用户界面的 ...
Hibernate:
优点:
1: hibernate是基于ORMapping技术的开源的框架,对JDBC进行了轻量级的封装,使用面向对象的思维来操纵数据库。
2:hibernate提供了session缓存和二级缓存,对于不需要进行复杂查询的系统,性能有提升。
3:低侵入式设计
缺点:
1:hibernate学习成本太高。
2:不适合有复杂的sql查询(统计) 。
3:不适合大量的聚集操作,(存储过程)
Hibernate的优缺点:
1、不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效;
2、因为使用Hibern ...
页面重复提交产生原因:
页面提交信息给Action进行业务处理,Action再传回前台页面,但该页面还是原来的那个页面,前台
刷新,就会造成重复提交
解决办法:
1:token机制
2:在forward时设置客户端跳转
token原理:
1:saveToken:产生一个和时间相关的字符串,struts把该字符串放到session中,并且使用struts的<html:form>标签时会自动产生一个隐藏域就是该Token
2:isTokenValid:当前session中的token值和request过来的值是否匹配
如何解决同一个action中的增删改查
第一种方法:mappingDispatcherAction ,现在已经不推介使用
第二种方法:DispacherAction 推介使用
配置:
<action
path="/user"
type="com.cs.action.UserDispatcherAction"
name="userActionForm"
parameter="method&qu ...
类型转换:
问题:表单提交过去的都是String类型,如何转换为formbean中的类型?
struts针对大多数类型都支持,如果是自定义的类型该如何处理
方法1:写一个servlet在init方法中注册,容器一加载就注册
方法2:写一个自己的action继承ActionServlet , 覆盖actionServlet的initOther()方法
第一步,调用父类的initOther()方法
第二步:添加自己的注册 如:
protected void initOther() throws ServletException {
super.i ...
1:struts上传
jsp:
<form action="fileup.do" method="post" enctype="multipart/form-data" >
标题:<input type="text" name="title" /><br>
文件:<input type="file" name="upfile" /><br>
<input type=& ...
struts国际化的步骤:
1:在配置文件中<message-resources parameter="res.MessageResources" />
2:在指定目录下,创建指定的前缀为文件名+语言代码+国家代码.properties文件
3:在页面上使用 <bean:message key="key-value" />
插件安装方法:
1:把插件的features和plugin下的内容拷贝到MyEclipse安装目录下的Eclipse目录下对应的features和plugin目录下。
2:把MyEclipse安装目录下的Ecl ...
ActionForm:
1:默认情况,ActionServlet会把ActionForm的实例存入session范围,key值就是<action配置中的name />
在scope为request的时候,userActionForm会被放到request的attribute中,注意重定向之后,就取不到了
ActionServlet会把ActionForm的实例存入request或session中的时候,回去检查是否配置了
attribute,如何配置了,则属性的key值就是配置的attribute的值,如果没有,默认使用name配置。
ActionForm:
1 ...
struts的工作流程:
1:容器启动,ActionServlet启动,
并且读取/WEB-INF/struts-config.xml,主要包括action,formbean,path等等,并且生成Mappings
2:ActionServlet等待***.do的请求过来,根据xxx找到需要那个Action来处理它,同时填充对应的ActionForm
3:根据xxx对应的Action,找到它,调用它,并且把对应的FormBean以参数的形式传给他
4:调用下一层的类的逻辑方法处理业务逻辑
5:根据业务逻辑,返回合适的ActionForwrd(对应配置中的forword)
6:在ActionSe ...
struts1的优缺点:
优点:
1:stuts1通过ActionForm能方便的帮助我们收集和验证页面的表单数据
2:struts1的实现了可配置路径跳转。
3:struts1基于MVC模式,能规范我们的开发行为。
缺点:
1:struts1的缺点,属于侵入式设计,它和servlet耦合非常严重。
2:action和web层耦合严重,测试麻烦。
3:标准的struts的action不是线程安全的。但struts1的action是线程安全的