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(初始化表达式;条件表达式;循环后的 ...
随机推荐
- [Android Pro] Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
方法一.在Activity的onCreate中添加如下代码 getWindow().setFormat(PixelFormat.TRANSLUCENT); reference to : http:/ ...
- Spring 注释 @Autowired 和@Resource
一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J ...
- 3.2 STL中的函数对象类模板
*: STL中有一些函数对象类模板,如下所示: 1)例如要求两个double类型的x 和y 的积,可以: multiplies<double>()(x,y); 该表达式的值就是x*y的值. ...
- sql中union和union all的用法
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和unio ...
- 微信支付 - V3支付问题
参考资料:http://www.2cto.com/weixin/201506/407690.html 1.微信公众号支付出错: 当前页面的URL未注册: get_brand_wcpay_reque ...
- 【JAVA集合框架之工具类】
一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...
- 排序练习【sdut 1582】【堆排序】
排序 Time Limit: 1000ms Memory limit: 32678K 有疑问?点这里^_^ 题目描述 给你N(N<=100)个数,请你按照从小到大的顺序输出. 输入 输入数 ...
- mac liteIDE调试配置
http://studygolang.com/articles/1636 brew install https://raw.github.com/Homebrew/homebrew-dupes/mas ...
- jq获取鼠标位置
jq获取鼠标位置 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 5-06使用Sql 语句为表添加约束
约束名的命名规则推荐采用:约束类型_约束列. 为用户表添加约束 ALTER TABLE UserInfo ADD CONSTRALNT PK_UserId PRIMATY REY(UserId) CO ...