`
ps329795485
  • 浏览: 50481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
文章列表
struts1的工作流程 1. 读取配置(容器启动时一次性加载) 容器读取web.xml,自动加载设置为自动启动的ActionServlet; 读取struts-config.xml配置信息 2.发送请求 客户端发送http请求,容器收到后通过web.xml上的URL通配符(一般是*.do)找到ActionServlet; 3.填充数据 ActionServlet(Action配置path,唯一标识)从ActionConfig对象查找Action类,如果没有找到则转发给JSP或静态页面,如果有找到Action类和对应ActionForm类(Action配置name,FormBean ...
ArrayList和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入数据,都允许直接按序号索引元素, 但是插入数据要涉及到数组元素移动等内容操作,所以索引数据快插入数据慢。 Vector由于使用了syn ...
java中的数据类型有两种 一种是基本类型(primitive types)共有8种即byte short int long float double char boolean(并没有String类型) 看下面一段程序: int a = 413; int b = 413; System.out.println(a==b); //true Integer c = 10; Integer d = 10; System.out.printl ...
servlet有良好的生存期的定义:包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等, 当服务器决定将实例销毁的时候调用其destroy方法。 web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。 通过调用service ()方法实现,根 ...
MVC模式是一种近年来使用比较广泛的为许多IT厂家和开发者所认可的一种设计模式,它和Web应用程序并没有直接的关系(事实上,它在很多非WEB应用程序中得到了使用),它不仅使得系统层次分明、职责清晰,而且使得系统更易 ...
做登录的时候我们经常用如下两行代码: <input type="text" name="username" size="20"/> <input type="password" name="password" size="20"/> 可是在不同的浏览器下,显示的长度却是不同的,在IE8下密码框就比用户名框稍微短了一点。 解决办法就是为其设置样式 style="width:150px" 如下: ...
先来点文字性的描述: MVC对于我们来说,已经不陌生了,它起源于20世纪80年代针对smalltalk语言的一种软件设计模式,现在已被广泛应用。近年来,随着java的盛行,MVC的低耦合性、高重用性、可维护性、软件工程的可管理性等诸多优点使其在java平台中很受欢迎,其间,也诞生了许多优秀的MVC框架,如专注于控制层的Struts、WebWork, Struts2, JSF等框架,专注于业务逻辑方面的Spring框架、专注于持久层的Hibernate、iBatis、Castor、JORM等框架。由于最近用了一次SSI框架,因此本文主要是对Strtus2、Spring、iBatis三个开 ...
1,整合Struts2 a)导入struts的jar包 struts2-core-2.1.6.jar xwork-2.1.2.jar ognl-2.6.11.jar freemarker-2.3.13.jar commons-logging-1.1.jar commons-fileupload-1.2.1.jar b)将struts.xml文件拷贝到src目录下 c)在web.xml里配置struts的核心过滤器 <filter> <filter-name>struts2</filter-name> <filte ...
xml方式和Annotation方式差不多,只需改动代理类,和配置文件即可。 package aspect; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import o ...
业务接口 package dao; public interface UserDao { public void addUser(); } 接口实现 package dao; public class UserDaoImpl implements UserDao { @Override public void addUser() { // TODO Auto-generated method stub System.out.println("添加用户"); } } 代理类 package aspect; im ...
在目前的Java开发包中包含了对动态代理的支持,但是其实现只支持对接口的的实现。 其实现主要通过是java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。 Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现 业务接口 package com.itmyhome.manager; public interface UserManager { public void addUser(); //增加用户 public boolean delUser(int id); ...
定义两个bean分别为Bean1和Bean2 Bean1.java package com.itmyhome.bean; public class Bean1 { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAg ...
Hibernate缓存是一种提高系统性能的比较好的工具,如果使用合理,则能极大地提高系统性能,但如果使用不合理 也会使系统性能下降。Hibernate缓存比较复杂,要想灵活使用hibernate缓存,必须深入研究Hibernate缓存原理。 Session缓存(一级缓存):当调用Session的保存、更新、查询操作时,在Session缓存中不存在相应对象,则把这些 对象加入Session缓存。同一个Session操作,第一次通过ID调用load()或get()查询持久对象,先从Session缓存中 查询,随即发送一条SQL语句生成一个持久对象并把该对象放入Session缓存。第二次再通过 ...
Hibernate Lazy采用CGLIB,可以对类进行代理,用在: one-to-one,many-to-one: 取false,proxy/noproxy Hibernate lazy概念:只有真正使用对象时,才会创建,对于Hibernate来说,只有真正使用时才会发出sql. 测试:one-to-one Card.java package com.po; public class Card { private int id; private String cardNo; public int getId() { return id; } publi ...
一个Student对应一个Classes,一个Classes包含多个Student; <hibernate-mapping> <class name="com.po.Classes" table="classes"> <id name="id" type="integer"> <generator class="native" /> </id> <pr ...
Global site tag (gtag.js) - Google Analytics