javaEE基础
2016-02-19 23:08
525 查看
1、拦截器与过滤器
过滤器(filter),过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源之间的请求和响应都要通过过滤器进行过滤。如过滤编码,IP
拦截器(interceptor),拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming),而面向切面就是将多个模块的的通用服务进行分离,如权限管理、日志服务,他们在多个模块中都会用到,就可以将其各自封装为一个可重用模块。
执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。
waf过滤器实现:
拦截器实现:
2、传真服务的原理:
获取文件名,上传路径使用ftp上传
3、线程,加锁
4、structs防止表单重复提交
Struts 2已经内置了能够防止用户重复提交同一个HTML表单的功能。它的工作原理:让服务器生成一个唯一标记,并在服务器和表单里各保存一份这个标记的副本。此后,在用户提交表单的时候,表单里的标记将随着其他请求参数一起发送到服务器,服务器将对他收到的标记和它留存的标记进行比较。如果两者匹配,这次提交的表单被认为是有效的,服务器将对之做出必要的处理并重新设置一个新标记。随后,提交相同的表单就会失败,因为服务器上的标记已经重置。
jsp如下:
5、spring事务,ibatis事务
ibatis事务:
对于多条SQL 组合而成的一个JDBC 事务操作而言,必须使用
sqlMap.startTransaction、
sqlMap.commitTransaction()、
rollbackTransaction()
和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 自动完成。
[b]6、HttpSession实现实时显示在线人数:[/b]
servlet创建一个HttpSession是对象,保存人数信息,使用setAttribute()和getAttribute()方法存储和检索对象。
7、oracle中varchar(2)的长度是多少?
最大存储长度为4000个字节,在plsql中,其最大存储长度可以达到32767个字节。
8、队列
把对象放在安全有序的集合中。其中arrayList是不安全但是有序的,LinkList是不安全无序的。vector是安全有序的
9、oracle的内置函数
过滤器(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 自动完成。
[b]6、HttpSession实现实时显示在线人数:[/b]
servlet创建一个HttpSession是对象,保存人数信息,使用setAttribute()和getAttribute()方法存储和检索对象。
7、oracle中varchar(2)的长度是多少?
最大存储长度为4000个字节,在plsql中,其最大存储长度可以达到32767个字节。
8、队列
把对象放在安全有序的集合中。其中arrayList是不安全但是有序的,LinkList是不安全无序的。vector是安全有序的
9、oracle的内置函数
相关文章推荐
- Spring核心组件bean、context、core
- Java算法编程题系列之 3、猜算式
- 关于Java小项目——图书管理系统的总结
- 关于研究Java中GlassPane的心得
- 定制化Azure站点Java运行环境(4)
- [Introduction to programming in Java 笔记] 1.3.9 Factoring integers 素因子分解
- 从头认识Spring-2.8 基于java注解的配置(基本没有xml)
- Java [Leetcode 228]Summary Ranges
- 关于 Eclipse
- 深入理解Spring IOC
- 定制化Azure站点Java运行环境(3)
- 定制化Azure站点Java运行环境(2)
- SQL Developer报错:Unable to find a Java Virtual Machine解决办法
- LEEDCODE 12 Integer to Roman (JAVA题解)
- Java反射机制
- spring mvc中的@PathVariable[动态参数类似于spring中的通配符功能]
- Java [Leetcode 204]Count Primes
- java基础—java的Io操作学习(3)
- java多线程设计模
- andriod Java中度转度分秒