- 浏览: 18807 次
文章列表
1.监听器
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
2.Servlet监听器
在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为 ServletContext, HttpSession 和 ServletRequest 这三个域对象。
Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。
监听三个域对象创建和销毁的事件监听器。
监听域对象中属性的增加和删除的事件监听器。
监听绑定到 HttpSession 域中的某个对象的状 ...
1.Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
2.Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。
3.Filter接口中有一个d ...
JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。
1.JSP常用标签
<jsp:useBean>:使用一个ID和一个给定作用范围和同一ID的JavaBean相关联。
<jsp:setProperty>:设置JavaBean的属性值。
<jsp:getProperty>:取得JavaBean的属性值。
<jsp:include>:请求时文件包含。
<jsp:forward>:接受用户输 ...
主流开源连接池,在Hibernate和Spring 都提供对C3P0连接池支持
将c3p0的jar 复制WEB-INF/lib下
1、手动
//核心连接池类
ComboPooledDataSource comboPooledDataSource = newComboPooledDataSource();
//设置四个JDBC基本连接属性
comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql: ...
JSTL标签库
JSTL标签库 + EL 学习目的, 规范JSP的编写,在JSP内部 不写 <%%> Java代码。
JavaServer Pages Standard Tag Library,由JCP(Java Community Process)指定标准,
提供给 Java Web 开发人员一个标准通用的标签函数库和 EL 来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性。
容器必须支持Servlet 2.4 且JSP 2.0 以上版本。
JSTL core标签库中 12个标签
1、c:out 输出内容到浏览器 ...
一)Action中业务控制方法的Java编程式验证
(1)验证流程:
String转成8种基本类型(含包装类型)->setXxxx()->【validateXxx()->validate()】
验证成功:进入Action中的execute业务控制方法
验证失败:<result name="input"/>所对应的页面,取出错误消息
(2)开发步骤
步一:写一个类普类,继承ActionSupport类
步二:重写validate()方法,或添加validateXxx()方法
步三:在st ...
(1)AOP的由来:
任何代码都分为二类:
(A)真实的业务操作。
(B)系统服务业务操作:例如:事务开始,事务关闭,事务回滚,try...catch..finally,写日志,相对少变化。但是项目中,这二类代码是密不可分。
spring希望是:程序员只关注真实的业务操作,不要去关心系统服务业务操作,让这些系统服务业务操作由spring容器来解决,这样程序员就可专心写业务操作。
(2)AOP思想和本质:
在程序员编写代码时,随时动态的增加、删除这些系统服务性代码。
本质:就是动态代理,该动态代理不是JDK的,因 ...
请求作用域bean是单线程的,因此具有与生俱来的安全性特点,而会话作用域bean不是单线程的。
例如一个用户可以从多个浏览器窗口提交响应,每个响应由独立的请求线程处理。如果用户在自己的会话作用域bean中需要线程安全的话,就必须提供锁机制。
<ui:composition> 指定使用哪个模版文件,然后通过 <ui:define> 对模版文件中每个可供插入的“ <ui:insert> 锚点”进行定义。 在运行期,具体的内容将会被插入到 <ui:composition> 中定义的锚点位置。
和 ui:component 一样,这个标签以外的内容将被编译器忽略 , 不会显示在视图中 , 和 ui:component 不同的是, ui:composition 不会在组件树上创建节点。
在简单的Web应用中,网页导航是静态的,像单击按钮总是选择固定的JSF页面来呈现响应。
只需为每个按钮赋予一个action特性,如在index.xhtml页面中<h:commandButton label="login" action="welcome"/>。
action特性的值被称为结果,结果可以选择地被映射到一个视图ID。
如果没有特定结果提供映射,结果将按以下步骤转变为视图ID:
(1)如果结果没有文件扩展名,则后置当前的视图的扩展名。
(2)如果结果没有以如a/开头,则前置当前的视图的路径。
上面那个按钮welcome结果生成的视图I ...
JSF引入了请求处理生命周期,生命周期控制表单提交(回传)时发生的事件。在回传期间,渲染正在回传的标记的JSP页面还不确定,还不能用于JSF运行时,因此页面上的表达式都不可用,因为它们页面渲染的时候才求值。
JSF引入了延迟表达式的概念,使得表达式既可以在页面渲染期间使用,也可以在回传期间使用。这个概念允许延迟表达式(例如#{user.name})向用户显示值,也可作为用户输入值的“目标”。正如前面所描述的,JSF使用#{}定界符表示“延迟表达式”,允许JSP调用${}声明表示“立即表达式”。之所以选择#{}定界符,是因为它能防止JSP运行时对表达式求值,从而允许JSFJSP控制 ...
1.java bean是一个类,它将属性和事件向框架公开,并为其属性提供getter和setter方法,getter和setter方法可以执行任意操作,如计算或甚至访问数据库;
2.在JSF中的java bean必须为输入组件使用读写属性,但可为输出组件使用只读属性;
3.一个受管的bean是可以从JSF页面的java bean,受管bean必须具有名称和作用域;
4.在JSF应用程序中,不同用户访问构建的是不同的受管的bean对象,这些bean对象是用户接口和应用程序后端的连接管道。
1.Struts2的整体作用:
a.方便页面数据的获取,有属性驱动和模型驱动两种;
b.中文乱码解决 以post方式提交,框架自动解决乱码问题;
c.数据验证回显,可以使用方法验证和声明式验证,根据不同场合方便灵活运用,自动回显验证的信息;
d.抽取公共操作(如参数封装和上传文件处理)交由框架拦截器完成,使程序更简洁,程序员专注于业务操作;
e.可以自定义拦截器,更适应实际开发的需求,比如访问的权限控制.
2,Struts2的运转流程:
一次请求先进过框架自带的拦截器,由框架的拦截器完成一些公共操作,再经Action处理请求,最后经过Result返回到响应的结果.
3,Str ...
Hibernate是面向java环境的对象/关系数据库营摄框架,是ORM实现之一;对JDBC进行复杂封装,负责java对象的持久化,在分层结构中处于持久化层.
使用Hibernate原因:
1.Hibernate对JDBC进行复杂封装,动态产生SQL,大大简化了数据反问层繁琐重复性代码;
2.Hibernate开源免费的,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作;
3.Hibernate使用java的反射机制增强程序类实现透明性;
4.Hibernate的性能非常好,因为它是一个轻量级框架,映射的灵活性很出色,它支持很多关系型数据库,从一对一到多对多的各种复杂关系. ...
package test;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
import java.util. ...