如何写出高性能的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...

面试题 相关文章推荐
北京银河万佳Java面试题
Mar 21 面试题
介绍一下Java中的Class类
Apr 10 面试题
北承题目(C++)
May 16 面试题
Android面试宝典
Aug 06 面试题
SQL Server数据库笔试题和答案
Feb 04 面试题
.NET程序员的几道面试题
Jun 01 面试题
STP协议的主要用途是什么?为什么要用STP
Dec 20 面试题
TCP/IP的分层模型
Oct 27 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 面试题
一些Unix笔试题和面试题
Sep 25 面试题
提高EJB性能都有哪些技巧
Mar 25 面试题
九州传奇上机题
Jul 10 面试题
宝信软件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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
php中strtotime函数用法详解
2014/11/15 PHP
php依赖注入知识点详解
2019/09/23 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python文本处理之按行处理大文件的方法
2018/04/09 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
python Shapely使用指南详解
2020/02/18 Python
python简单的三元一次方程求解实例
2020/04/02 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
.NET面试10题
2014/02/24 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
商场消防管理制度
2014/01/12 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
立项申请报告范本
2015/05/15 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
导游词之崇武古城
2019/10/07 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技