如何写出高性能的JSP和Servlet


Posted in 面试题 onJanuary 22, 2013
最小化servlet中的java 同步。
不要用servlet的单线程模式。
使用servlet的init()方法进行一些昂贵的一次性的初始化。
避免使用System.out.pintln()调用。
避免使用共享的可修改的类变量
在servlet的多线程模式中(缺省情况下),一个应用服务器实例只有一个的servlet实例,这个servlet的所有请求都共享同一个 servlet实例,如果在servlet内有同步代码块的话会造成线程争夺,因为servlet的类变量创建需要同步,所以要避免使用共享的可修改的类 变量。
HTTP Session处理
使用HTTP Session的时候请遵守一下规则:
不要随意创建Session, Session的创建不是免费的。如果不需要就不要创建
如果session不需要了请使用javax.servlet.http.HttpSession.invalidate()来释放session
保证session小型化可以减少反应时间,如果可能的话,请保证session小于7K。
在JSP里面使用指令来避免应用服务器自动在不需要的时候创建session.
避免session中存放大的对象,这样会强制序列化和增加过度计算,通常情况下不要存放大的对象到session里面。
不要缓存事务数据到HttpSession里面,访问HttpSession里面的数据是非事务的,最好把这些数据存放在数据库或者用实体 Bean访问,事务如果失败会恢复到它原来的状态,不过,这些失效的或者不再精确的数据会继续存放在session里面。应用服务器提供了只读的bean 管理器去缓存这些只读的数据。
配置和部署技巧
为了提高类的载入时间,避免在服务器的CLASSPATH里面使用过多的目录,把跟应用有关的类发放到jar文件里面。
HTTP反应时间跟HTTP server调整有很大关系。
如果可能,请缓存servlet的结果。
如果一个应用不含任何JEB,把应用部署成war文件,不要部署成ear文件。
禁用Security Manager
Security manager是非常昂贵的,因为在调用需要的资源的时候必须要调用doPrivileged()方法而且还必须要检测server.policy里面的 资源。如果你确信你的服务器没有恶意的代码而且你也不使用用户认证,你就可以禁用secrity manager.

Tags in this post...

面试题 相关文章推荐
PHP如何调用MYSQL存储过程
May 30 面试题
error和exception有什么区别
Oct 02 面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 面试题
c语言常见笔试题总结
Sep 05 面试题
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
Aug 25 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
广州一家公司的.NET面试题
Jun 11 面试题
名词解释型面试题(主要是网络)
Dec 27 面试题
P/Invoke是什么
Jul 31 面试题
简述安装Slackware Linux系统的过程
Jan 12 面试题
init进程的作用
Apr 12 面试题
宝信软件JAVA工程师面试经历
Aug 19 #面试题
Linux中如何设置Java环境变量(Ubuntu)
Jul 24 #面试题
线程的基本概念、线程的基本状态以及状态之间的关系
Oct 26 #面试题
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
Nov 25 #面试题
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 #面试题
描述一下JVM加载class文件的原理机制
Dec 08 #面试题
解释一下抽象方法和抽象类
Aug 27 #面试题
You might like
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
Python实现快速计算词频功能示例
2018/06/25 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
车间操作工岗位职责
2013/12/19 职场文书
数学教学随笔感言
2014/02/17 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
药店采购员岗位职责
2014/09/30 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫
python语言中pandas字符串分割str.split()函数
2022/08/05 Python