新版SSH的整合问题
SSH开发框架整合已经在整个行业之中流行了十多年,在以后很长一段时间内依然有可能见到这样的架构,因为在整个java最盛行的那段时间,SSH出现许多项目,这些项目还有可能进行继续维护。所以,当你应聘时会发现公司所使用的技术可能有SSM、SSH。
最初的SSH开发习惯都是基于MyEclipse进行的,因为当时很多公司可以不考虑盗版问题,随着MyEclipse不断发布,以及破解难度越来越高,许多公司不得不放弃这款神奇框架,而改用Eclipse+maven开发形式,可以使用的SSH版本也出现了一些差异化。
本次讨论的问题以:spring4.3.9+Hibernate5.2.9+Struts2.5版本为例,讨论这个整合可能存在的一些缺陷;
1.Hibernate:
考虑到每一次在进行数据转型的时候都采用Query完成(Object),向下转型是有安全隐患的,所以Hibernate追加了一个新的Query接口:org.hibernate.query.Query< T >,这样的好处是可以方便的直接进行转换,做法有些类似于MyBatis;
在使用Query接口更新的时候,对于更新的处理操作可以使用事务提交进行发出,习惯做法:HibernateSessionFactory.getSession().begin Transaction().commit(),这样的写法在更新的时候不能出现,必须先取得Transaction对象,更新完毕后再利用此对象进行提交;
2.Struts2.x
默认情况下考虑安全问题,Struts2.x不再支持直接分发处理操作,采用“Action名称!方法.action“不支持,即便开启动态业务分发也无法使用;
必须设置一个正则表达式的匹配符号后才可以开启分发处理,但是这样又可能出现安全问题;
Struts2.x的日志配置里面还需要使用一个log4j2.xml文件进行配置。
更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧