如何写出高性能的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面试题附答案
Jun 05 面试题
super()与this()的区别
Jan 17 面试题
北京银河万佳Java面试题
Mar 21 面试题
什么是触发器(trigger)? 触发器有什么作用?
Sep 18 面试题
什么是View State?
Jan 27 面试题
sealed修饰符是干什么的
Oct 23 面试题
Linux Interview Questions For software testers
May 17 面试题
中科创达面试题
Dec 28 面试题
程序员跳槽必看面试题总结
Jun 28 面试题
UNIX命令速查表
Mar 10 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
Nov 22 面试题
宝信软件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
php继承的一个应用
2011/09/06 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
基于python 取余问题(%)详解
2020/06/03 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
销售自荐信
2013/10/22 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
党员作风建设自查报告
2014/10/23 职场文书
付款承诺函范文
2015/01/21 职场文书
安全生产感想
2015/08/07 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js