2012年7月31日星期二

SSH集成开发面试问题

1.使用strust,写出处理中文乱码的方法

2.在strust中,村签与标签有什么分别?

3.Hibernate中标签如何实现乐观并发控制的?

4.简要说明Hibernate中,Hibernate.jdbc.fetch.seze和Hibernate.jdbc.batch.seze有什么用途?

5.简要说明在B/S架构中,如何实现刷新动态更新页面数据的方法与相关技术?

答案如下:
问题提得比较实用:
1、struts处理中文乱码,比较好的方式是在struts-config.xml中配置controller : 而他的processorClass是一个servlet,这个servlet覆盖init方法,在其中保留super.init();然后引入中文编码,即request.setCharacterEncoding("gbk")

2、在strust中,村签与标签有什么分别:
标签扩展了包括标签,当然也扩展了和标签;他们的重要区别在于提供了"嵌套支持"。(嵌套就不详细说明了)

3、Hibernate中标签如何实现乐观并发控制的:即所谓的乐观锁机制,他有好几种实现方式,是其中一种:通过为数据增加一个版本标志即version,读取数据时一同读出该数据的版本,更新数据时对数据的版本加1,在提交数据时与数据库中的相应数据进行比较,若版本号大于数据库中的版本号则认为是新数据,更新数据库中的数据;如果小于数据库中的号则认为是过期数据。(这一部分建议楼主详细看下hibernate的锁机制)

4、应该是Hibernate.jdbc.fetch.size 和 Hibernate.jdbc.batch.size的用途:fetch.size 是设定JDBC的Statement每次从数据库中读取数据时候取出的记录条数。(这个设置将影响hibernate的性能,要结合多方面考虑,一般建议在50到100之间)。batch.size设置对数据库进行批量操作时的记录大小,如批量插入记录、批量删除记录。(size设置越大,向数据库发送的SQL命令就越少,速度就越快;建议一般设置为30~60之间)。

5、B/S架构中,如何实现刷新动态更新页面数据的方法与相关技术:
最直接方法便是,设置页面的定时刷新,但是用户体验起来很糟糕。另一种就是:所谓的推送技术。结合javascript和java applet实现:
结合javascript帧间通信和一个管理网络通信的Java Applet,我们能够用推送技术解决这个问题。在这样一个系统中,Java Applet的任务是连接服务器并监听内容更新。一旦接收到了新的内容,Applet就构造出显示这些新内容的HTML代码,调用一个JavaScript函数并把包含新内容的HTML传递给JavaScript函数。JavaScript函数运用DHTML和DOM技术,解决动态更新问题。

标记的内容用参数中传入的新内容替换。 另外现在最为流行的局部刷新技术:ajax 这是页面的部分刷新,不过这个基于用户操作的。

没有评论:

发表评论