javaEE基础
1、拦截器与过滤器
过滤器(filter),过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源之间的请求和响应都要通过过滤器进行过滤。如过滤编码,IP
拦截器(interceptor),拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming),而面向切面就是将多个模块的的通用服务进行分离,如权限管理、日志服务,他们在多个模块中都会用到,就可以将其各自封装为一个可重用模块。
执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。
waf过滤器实现:
<filter>
主过滤器filter名称及实现类class
<filter-name>WebCastellum</filter-name>
<filter-class>org.webcastellum.WebCastellumFilter</filter-class>
</filter>
拦截器实现:
<interceptors>
<!-- sid,rmkey登录Session验证 -->
<interceptor class="richinfo.frame.ext.valid.SidRmKeyValidator">
<includes>
<exclude>
calendar:syncAddCalendar|calendar:syncGetCalendar|calendar:syncUpdateCalendar|
calendar:syncDelCalendar|calendar:syncGetCalendars|calendar:syncDebrisCalendars|
calendar:smsUpdateInviteStatus
</exclude>
<include>calendar:*</include>
</includes>
</interceptor>
</interceptors>
2、传真服务的原理:
获取文件名,上传路径使用ftp上传
3、线程,加锁
4、structs防止表单重复提交
Struts 2已经内置了能够防止用户重复提交同一个HTML表单的功能。它的工作原理:让服务器生成一个唯一标记,并在服务器和表单里各保存一份这个标记的副本。此后,在用户提交表单的时候,表单里的标记将随着其他请求参数一起发送到服务器,服务器将对他收到的标记和它留存的标记进行比较。如果两者匹配,这次提交的表单被认为是有效的,服务器将对之做出必要的处理并重新设置一个新标记。随后,提交相同的表单就会失败,因为服务器上的标记已经重置。
<struts>
<package name="avoidPackage" extends="struts-default">
<action name="avoid" class="struts2.action.AvoidAction">
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref> <result name="invalid.token">/error.jsp</result>
<result name="input">/input.jsp</result>
<result name="success">/output.jsp</result>
</action>
</package>
</struts>
jsp如下:
<s:token></s:token>
5、spring事务,ibatis事务
ibatis事务:
对于多条SQL 组合而成的一个JDBC 事务操作而言,必须使用
sqlMap.startTransaction、
this.sqlMapClient = SqlMapClientBeanFactory.createSqlMapClient();
ExtendedSqlMapClient client = (ExtendedSqlMapClient) sqlMapClient;
SqlMapExecutorDelegate delegate = client.getDelegate();
sessionMax = DBConfig.getInstance().getPropertyInt(
"ibatis.max.concurrent.session", 128);
requestMax = DBConfig.getInstance().getPropertyInt(
"ibatis.max.concurrent.request", 500);
delegate.setMaxSessions(sessionMax);// 增大并发量,默认才128,太小了
delegate.setMaxRequests(requestMax);// 增大并发量,默认才500,太小了
// 实例化代理对象
proxy = new IbatisSqlMapClientProxy(delegate);
sqlMap.commitTransaction()、
TransactionStateInfo.geTransactionStateInfo()
.setState(State.commit);
SqlMapSessionImpl session = proxy.getLocalSession();
Connection conn = TransactionStateInfo.geTransactionStateInfo()
.getConnection();
try
{
commit(session, conn);
log.info("commit transaction...");
}
rollbackTransaction()
conn.rollback();
和sqlMap.endTransaction 操作以实现整体事务的原子性。
spring事务:
纯JDBC操作数据库的基本步骤:
1. 获取连接 Connection conn = DriverManager.getConnection()
2. 开启事务conn.setAutoCommit(true/false);
3. 执行CRUD
4. 提交事务/回滚事务 conn.commit() / conn.rollback();
5. 关闭连接 conn.close();
使用Spring的事务管理功能后,我们可以不再写步骤 2 和 3 的代码,而是由Spirng 自动完成。
6、HttpSession实现实时显示在线人数:
servlet创建一个HttpSession是对象,保存人数信息,使用setAttribute()和getAttribute()方法存储和检索对象。
7、oracle中varchar(2)的长度是多少?
最大存储长度为4000个字节,在plsql中,其最大存储长度可以达到32767个字节。
8、队列
把对象放在安全有序的集合中。其中arrayList是不安全但是有序的,LinkList是不安全无序的。vector是安全有序的
9、oracle的内置函数
javaEE基础的更多相关文章
- javaEE基础08
javaEE基础08 一.继承 特点:继承父类的属性和方法,单继承(多继承) 特性:方法的复写(重写) 比如:人可以养狗 人------>狗:整体和部分(拥有)关系 关键字:extends 结构 ...
- 4. 什么是应用服务器? - JavaEE基础系列
本文是JavaEE基础系列的第四节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 什么是JSR参考实现? - JavaEE基础系列 上一节介绍了什么是JSR参考 ...
- 3. 什么是JSR参考实现? - JavaEE基础系列
本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...
- 2.JSR简介 - JavaEE基础系列
JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...
- 转:攻击JavaWeb应用[1]-javaEE基础
http://www.cnblogs.com/oh3o/p/3224562.html JSP: 全名为java server page,其根本是一个简化的Servlet. Servlet:Servle ...
- JavaEE基础(十五)/集合
1.集合框架(对象数组的概述和使用) A:案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Student ...
- JavaEE基础(十一)/Eclipse介绍
1.Java开发工具(常见开发工具介绍) A:操作系统自带的记事本软件 B:高级记事本软件 C:集成开发环境 IDE (Integrated Development Environment) D:Ec ...
- JavaEE基础(九)
1.面向对象(多态的概述及其代码体现) A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案例演示 ...
- JavaEE基础(五)
1.Java语言基础(数组概述和定义格式说明) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基 ...
- JavaEE基础(四)
1.Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的 ...
随机推荐
- nodejs链接mongodb数据库
nodeJs链接mongodb数据库有两种方式,第一种是利用官方自己开发的npm包mongodb链接,第二种是利用第三方npm包mongoose链接:这里如果是window操作系统,建议用mongoo ...
- oracle两时间相减得到相差的时间
1.months_between(date1,date2);date1和date2相减得到相差的月份. select months_between(to_date('2015-05-11','yyyy ...
- java https tomcat 单双认证(含证书生成和代码实现) 原创转载请备注,谢谢O(∩_∩)O
server: apache-tomcat-6.0.44 jdk1.7.0_79client: jdk1.7.0_79 jks是JAVA的keytools证书工具支持的证书私钥格式. pfx是微软支持 ...
- ajaxFileUpload上传文件没反应
调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
MyBatis mapper文件中的变量引用方式#{}与${}的差别 #{},和 ${}传参的区别如下:使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$ ...
- Jmeter中通过BeanShell获取当前时间
第一步编写需要的java类: 第二步:将编写好的java类打包成jar包 第三步:将jar包放到\apache-jmeter-2.13\lib\ext下面 第四步:在Jmeter中通过BeanShel ...
- 转:不再以讹传讹,GET和POST的真正区别
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继 ...
- Linux如何查看与/dev/input目录下的event对应的设备
1.查看当前的设备 dev/input/ 2.查看设备的名称 cat /proc/bus/input/devices
- Delphi面向对象的方法
方法是属于一个给定对象的过程和函数,方法反映的是对象的行为而不是数据,前一篇提到的对象的两个重要的方法:构造方法和析构方法. 为了使对象能执行各种功能,你能在对象中定制方法 创建一个方法用两个步骤,首 ...
- [LeetCode] Gas Station
Recording my thought on the go might be fun when I check back later, so this kinda blog has no inten ...