请选择 进入手机版 | 继续访问电脑版
java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3691|回复: 1

性能和弹性双赢的JSP与Servlet优化

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66083

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2014-11-18 15:07:44 | 显示全部楼层 |阅读模式
    曾起何时,你的web项目运行是不是很慢、很卡?在大量并发访问的情况下是否能够不down?这里主要围绕jspservlet的性能与弹性来进行分析。主要意图是能够让web项目尽快的响应,并且满足大量并发用户的访问请求。
    9 q# M3 @. B. O: I6 V( P) L  要点1HttpServlet init()的初始化方法中缓存一定量的数据
    # `4 j5 v4 |. i. T  f$ q' ~  web服务器在创建servlet实例之后和servlet处理所有的请求之前调用servlet中的init()方法进行初始化。Init()方法在servlet的整个生命周期中会调用一次,且仅调用一次。为了大大提高servlet的性能,在init()方法中中缓存一部分静态数据或者加入要在初始化期间需要完成的长时间和高性能的操作。For example,最佳案例就是使用实现了javax.sql.DataSource接口的JDBC的连接池的样例。DataSourceJNDI中获得连接。每次仅仅调用一次SQL语句就要使用JNDI查找DataSource是很消耗负载的工作,而且严重的影响了web项目的性能。因此,采用Servletinit()方法就可以用于获得DataSource的数据并将他缓存起来便稍后的重复使用:
    % C% b7 b% }! {9 e' }* @2 k 5 `' `% d5 m5 X$ t/ C5 g0 F
    以下就是样例的片段:
    7 e8 w! F, ^/ L6 r8 p% f  public class ControllerServlet extends HttpServlet
    ; }% h, n/ w2 ?  d* y  {) h( W5 K0 t4 s0 s& M% H# |& G
      private javax.sql.DataSource testDS = null;
    ' t! L* _3 O  Z( O/ b  public void init(ServletConfig config) throws ServletException! t; x7 h+ @# r1 X2 ], u
      {7 k. y+ k, {2 C# y
      super.init(config);
    & L% x0 m3 s3 j  Context ctx = null;
    + h3 ?6 X# ^& z  a  try
    9 N/ v/ L7 }9 b* l4 k! j  {
    ( j7 u' b$ a3 L' J6 A( q  ctx = new InitialContext();
    0 S; U# [0 ?# ]" b2 x/ e( s6 c  testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
    " e2 c9 u0 G# k& U/ v* V8 ^  }
    * P, L! K1 m2 ]* Z& h  catch(NamingException ne)
    8 R" c0 }3 l3 n2 T4 x8 n; W5 x2 r6 y  {" X: c* h+ i2 B2 i% E& h
      ne.printStackTrace();% `. l; w' c! E
      }
    2 u& C: e- a8 Y  catch(Exception e)
    7 k! l- y% G: j: n. B" M  {4 B8 {. o" N' @7 ?( z
      e.printStackTrace();
    5 c( U! p& ~" K& @0 U+ P* A1 C  }
    2 k' Q( [) E: \8 c# F7 \7 G3 L. r  }
    ) V; f/ m/ p& N7 a  public javax.sql.DataSource getTestDS()9 |! m) [$ _! {* F5 ]% d
      {7 @  S; _, y! S7 n- w
      return testDS;
    " W! K% X+ T$ K4 Y9 o( m, |+ ?  }2 W7 ~* j# `; I& M0 K
      * v6 i+ P8 q) n. ^
      }
    9 |5 _& z  O+ o
      要点2:禁用掉servletJsp自动装载(自动装配)等影响性能的功能4 e7 x8 K' g3 o" J- D+ m- ^. |
      每当修改了ServletJSP之后,你都要重新启动你的服务器tomcatweblogic...因为自动装载功能可以为我们减少开发所需要的时间,说以此功能在开发过程中是非常重要的。但是,他的运行过程却是非常的消耗资源的;servletJSP由于诸多的不必要装载程序,大大加剧了类装载器的负载从而使性能变得很差。与此同时这也会使你的web应用服务由于已被各种的类装载器装载的类不能够和目前的类装载器装载的类不能够相互的协作而呈现出各种的异常的现象。所以,在应用运行时为了得到更佳的性能与弹性,关闭servletJSP的自动装载功能是很有必要的,它能够带给你更好的体验。5 M" x" i1 c; j/ g4 h- h; _5 u
    - S, o5 o$ d8 |
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-20 16:20
  • 签到天数: 1 天

    [LV.1]初学乍练

    0

    主题

    27

    帖子

    63

    积分

    普通会员

    Rank: 2

    积分
    63
    发表于 2016-11-20 16:25:22 | 显示全部楼层
    Web前端开发工程师,主要职责是利用HTML、XHTML、CSS、JAVAScript、FLASH等各种Web前端技术进行客户端产品的开发。完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web前端开发,致力于通过技术改善用户体验。
    1 \" F8 h5 a, M9 h3 S4 ?, `( t : b0 v7 r: r. g% ]. q- g8 N% ?
    第一阶段:页面制作基础+ a, ?* w9 T4 h" M
    从这一基础阶段开始,正式学习Web前端开发需要的编程语言HTML,CSS和JavaScript。HTML和CSS用于Web静态内容的展示,JavaScript用于Web动态交互。完成这一阶段前端开发的学习,你就可以独立实现一个动静结合的Web前端项目啦!# [0 B& s6 v' d) z* T

    * X+ A6 V/ U8 T; Q第二阶段:主流框架应用5 _! n% j5 x6 F+ P4 n
    优秀的Web前端开发工程师一定都是追求高效率的”懒人“。这一框架阶段就是教你如何使用当今流行的Web前端框架,包括bootstrap、Angularjs等,来提高前端开发效率。在学习前端框架本身的同时,也希望你能掌握任意一种快速上手的web前端框架的方法!?( J. r7 J6 s  o+ m! F3 {

    3 h: p  M! P) F0 h! `6 _7 I: n第三阶段:前端技术进阶  \2 ]' Y/ L8 ~2 u: i& u. }7 c2 y- e
    web前端开发进阶阶段的学习,主要是让大家快速掌握当今流行、实用、最新的技术,比如:less、sass、json、ajax等,并将这些前端技术快速用于实践,开发出更加符合客户体验度的web前端页面。
    + W" J+ V0 E6 v) z; Y4 ^
    9 t% w! Z; J' ^. _第四阶段:前端技术拓展5 e& d3 ]+ h* O( U3 G7 t6 o7 s( i
    web前端技术发展日新月异,因此前端技术的拓展学习及实践对于web前端工程师来说非常重要。本阶段就是基于、Backbone、bootstrap等技术的拓展学习和web前端项目的实战开发演练。$ C+ i8 j* N# N% I) ~+ \
    1 t* @: |8 D7 M% e/ r
    课程包含部分:# B* |% }) p8 b- j6 Z0 T7 N

    ' Q. w3 x5 L1 i2 D第一部分 html与css入门 共100课时 / n5 |0 F$ W  W$ |0 E* ^$ P
    课时 名称
      G8 E4 w! ^# B( z5 ^+ ^  w- g1 D1 html简介
    5 M1 t7 [& l$ R$ ^3 h$ C' ~2 n; w$ n2 html骨架$ T3 N( x$ a/ Z# R7 ?
    3 元标签-编码- Y1 v4 s8 t3 h# y
    4 元标签-关键字与描述- r" T4 O: j; J# g
    5 标签空白符
    3 u3 X  v% f* A6 标题标签
    * s7 q3 e  C9 i7 F* S7 段落标签
    0 F. g1 k1 C4 T9 L8 注释
    7 W4 |2 ?6 G% U0 w9 块元素与行内元素
    2 G6 _' C  K. F10 超链接; t( P9 s5 ?0 W2 ]
    11 图片标签
    ! }$ l! d3 Y3 m5 O8 h12 绝对路径与相对路径
    2 F* ]5 D3 I! S1 K13 无序列表
    3 M( m+ k  J  i, g5 K- {4 _14 有序列表
    0 I1 O# `. r( G& `2 ?15 列表嵌套" t* h4 A% _% v5 H" k
    16 定义列表7 f) S" ]: G  T9 o5 O4 j: d$ x
    17 表格! j- x/ D8 c* A% g# u; F- z1 z
    18 单元格拆分与合并: }6 p8 Q9 a. f6 ]9 X8 F
    19 表格头尾
    ; u' M6 f5 U7 X( M" m20 表单元素
    2 P; C8 h# M0 s21 下拉框与文本输入框: Y% o& c- Y0 ~% ~1 E
    22 表单分组! Z+ s$ c6 q, E/ U; R/ S
    23 常见字符实体2 w9 G! B# n9 g# l: M  q- P
    24 文字标签# [' X- T8 c5 q  o! H4 @7 R
    25 语义化标签
    ) |! Z2 X% m0 N; v9 M7 Q! o- m26 废弃标签
    ; H. M5 S' I6 T! E1 y8 z27 css简介8 M# G. U+ E. ]/ x+ C- k0 Z
    28 css三种书写方式3 M# E! }) ?" e. a3 C
    29 css常见选择器
    - r+ ^1 h8 {9 V  W30 id选择器与类选择器注意事项
    7 G6 x1 }! }6 w! d! X; C: e9 T9 z31 选择器组合# {+ Y/ J9 H2 N% ]2 {* E+ u7 J: y
    32 后代选择器$ n/ F1 D! O' s. h$ n/ O3 `
    33 交集选择器与并集选择器# }1 k+ D# l* B6 D9 L
    34 选择器通配符  V  H/ R! i; N
    35 腾讯新闻列表; a5 V* t" w# s6 ?9 ?
    36 选择器权重4 w3 G6 x; z* c0 v9 T
    37 就近原则
    ( i+ U$ N& g- I38 样式引入方式权重比较
    4 c. s5 r4 ^4 M5 K+ r39 权重计算练习
    8 X, S0 E5 s. W% W. k4 N* r2 K% @40 important提升权重1 P# Z6 c9 Y0 I
    41 盒模型
    ! p2 w5 c! \) G$ t* \+ V6 [42 IE盒模型
    , ~8 Q% Q, Z  D9 J3 d; D, G3 v43 内边距与外边距
    ! [1 b3 U7 U! `( I. j4 J44 边框属性
    # [7 w* U# {' s" b  o9 j) i, I45 盒子居中
    $ I( S: L( f$ W2 i46 外边距重计算盒子宽度
    0 |1 N. P7 k9 z. Y# |0 W47 文字属性; O3 Y8 i; G0 L/ @# x% ?2 S9 q
    48 css常见单位
    8 @4 H' u, j5 v+ H6 N49 文字修饰属性
    1 ^; C/ L, {/ h50 文字属性继承性' ?3 @2 F8 V& x7 A$ H% L
    51 文字水平居中与垂直居中
    : m, a9 E; A; x2 L1 }52 图片元素排版! e; D4 ]3 @$ R' w8 q; m
    53 超链接标签默认样式
    ' h1 o3 X# D0 u( {) R54 腾讯体育
    1 y0 e4 }% G  y. ^6 R! f  |55 超链接标签伪类1 q6 c+ E0 B& |) _$ H5 K7 ^: t" P9 g
    56 伪元素
    & L% t' L% Y! H$ f1 |: V9 ~/ r  K! [57 背景样式与图片
    / x* n5 l" ]+ S! s) [& k58 背景平铺与背景位置
    . R8 n4 G5 ^5 k59 背景在SEO中的应用
    9 P/ f, W. u7 d' Z60 块元素设置背景* B; t: N2 S- ]6 c3 ]; J* _' k7 d) f
    61 行内元素设置背景
    4 \/ ^( @+ H8 m& b( N62 伪元素设置背景
    8 P: J9 j7 W! h( F% E) U3 {63 水平精灵图
    % i) a1 a# W  y( i: B+ v64 垂直精灵图
    5 T3 Z/ b; ~0 ^5 v1 w7 P2 [" n) G65 定点精灵图! ^" o; a  h! H' ?$ k
    66 hao123
    . d  s1 J, Z. e, d' d9 m67 四种箭头
    4 m2 s9 |* N0 g5 b68 hao123箭头4 @$ ^) r4 N, T; [
    69 css绘制集合图形
    - t! s, F! s) u2 N8 b1 p5 W1 g70 块元素与行内元素特性, n) J* N  k4 l( o
    71 块元素与行内元素转化% g) A" X# V& n  c9 z
    72 浮动元素
    : I# C8 \+ V+ K3 o& O( M1 }73 浮动元素与文档流
    6 E- P$ ]  B7 v74 浮动元素特性) O* p& u% H- _4 y: d$ X& u! M
    75 浮动元素与边距
    , V9 U7 K9 N/ [: X% ]5 A6 X76 浮动元素父元素高度丢失! |- O1 D) t0 m
    77 清除浮动* U- _8 w; E5 U$ f3 m7 \
    78 清除浮动的7中方式
    : g% _4 j/ {1 c# W( K8 k79 新浪布局
    , C8 y5 }. C7 C/ F; U% l3 j# B& J6 B80 列表布局, j5 {2 q% n2 D( u
    81 双飞翼布局
    : s. L+ x# }; c9 N% S82 圣杯布局
    . p7 V; y2 g, Z! }! j83 排查错误
    0 l7 u8 x: T3 S6 `84 相对定位3 b2 ~# {' n. f0 f+ V
    85 表单对齐) R9 n+ V) i% g: r" n* ^1 C
    86 新浪tab栏7 s& W, u3 j% t' m, u, F
    87 绝对定位
    ) {, l% z4 y# X0 s: v8 H88 子绝父相8 F* Z! h' o3 ]/ i- I! w; Q
    89 jd轮播图
    8 X% G4 y) Y+ Z, n90 文本居中,行内元素居中与块元素居中
    7 z& P6 s, L# g6 C) [- ]& E! Q. P91 优酷% C7 X- X- O% y. P5 G2 T8 ?
    92 固定定位# l) V$ t+ A% R: Q
    93 遮盖% s, s2 j  J: {) k& H8 v
    94 拼爹4 D4 f7 x* N# o
    95 html 注释 hack
    $ N% b% m! v% Q2 t) R96 css属性hack
    & ~# I& n! h! {- x/ x. }97 IE6-交集选择器与DTD内减盒模型5 m4 e4 G! x! S* n- b" x
    98 IE6-最小高度与盒子位置
    5 s3 \& k$ u+ K1 I99 IE6-overflow与透明度6 O" g( W# q  _( }, v4 m. J+ T
    100 IE6-双倍margin与3像素bug' }' X* M) ?7 ?4 o6 f- I* P+ k

    / @( B6 y/ s. P( y
    * O! f6 H1 ^! E( M" V
    ' o( R* q2 ^1 d! G; n  M" o" D# [ / }6 [3 ]- o5 R. Z
    第二部分 源生javascript 共150课时  4 a  b0 \: C" L% N

      B5 a0 v4 i5 ^8 Q第三部分 jquery与bootstrap 共60课时
    8 n1 |! t0 J. V9 { ' e. @  T# |# w) O
    第四部分 HTML5 CSS3与移动端开发 共50课时  , p: k) [) |- X& ]
    ' r, u' m3 U4 Q' E/ X
    第五部分 canvas游戏开发 共30课时
    ) y# p, g% [. G% y# l - Z( _. s5 _8 o% r5 P1 @
    第六部分 微信与百度地图 共30课时
    0 [  e: ]& q: I' `- i/ i# K : u9 I6 e' Y7 A# z' J9 \/ ^
    第七部分 nodejs 共80课时  
    + u& c; Q! j1 |2 q5 p8 k
    : J2 x5 }5 p' `1 w; W# m第八部分 设计模式 共80课时 5 A2 t0 s- y1 ]2 }) H, z- g) \
    2 ]7 i! ~5 p7 |# U5 f
    第九部分 模块化开发 共20课时 " B6 ]; g1 ^4 E/ T) n$ |# |7 i

    $ w* d5 A9 `) O0 C7 N第十部分 大数据可视化 共15课时
    ; G/ u$ h8 r' t! p% w4 }
    8 b- H& a0 Z( {' i5 _2 E5 ?& ?第十一部分 Backbone 共60课时 " J  C( q! T3 f2 Q! r) i
    9 f0 k) y+ R0 x8 V, Q/ s5 Q
    第十二部分 vue 共40课时
    2 l9 l: e) H! D1 G* A; X0 H6 g/ P / P0 ^5 z7 P2 O' [
    第十三部分 angular 共70课时
    . k6 ?: {5 r5 N9 B1 }" }/ } 0 @+ Q+ p' k3 Q5 _1 v6 d
    第十四部分 前端工程化 共30课时
      ^9 M8 }, a$ m- t) t7 o0 C
    4 y5 ~: x* ~, M- [4 t课程更新网盘
    6 c: f" a/ F1 w- o2016年前端开发Angular.JS从入门到上手企业开发视频) A/ J0 |& A* E! a
    & F5 `5 x. [4 {/ v! ?* j4 O
    链接: https://pan.baidu.com/s/1dF2vBzV 密码: 3hbk
    : _, Y( n* _2 B; A 3 i% y& u0 d! w7 o2 Q! s* A3 ?
    2016年最新前端技术react视频入门
    1 ?  }& L  ?* Y) c2 D: R' I- ?链接: http://pan.baidu.com/s/1i46by8t 密码: 48tt/ Y, \. o3 ]7 a, y' k1 w. G! P
    # Z1 I6 J8 v4 ?* A. R- e2 g8 o
    2016年CSS实体班同步教程) F2 u9 o  z& T7 [$ d1 r
    链接: https://pan.baidu.com/s/1qXWRbCK 密码: a725  r5 P* C; k% f+ `* S

    ; R3 v1 T' @) o$ G( e. d  G2016年JS视频教程实体班同步教程1 |" J" u. ?$ i! y& `
    链接: https://pan.baidu.com/s/1jHIkxLG 密码: hpyb; v' ^& D' [* @0 W# ]* P

    : O0 S, B0 |: i+ M! ?( z0 s 9 S' G2 Q. \1 X  C# r
    不定时更新web前端学习免费教程领取请加QQ  2079576908
    * v  D8 u5 D- v: w; _2 r! O0 W+ C0 s
    8 u/ Z. x. d9 R, o/ v9 S4 \
    - {+ `( {. C6 W! X7 K6 u5 {目前爱创课程web前端培训的学员就业薪资一般在10K-17K
    2 Q, [! ^! Q. y) L) J$ g/ z: E* c6 g; H1 i; O% c% F
    官方网站:http://www.icketang.com// I5 h1 Z$ Q! c0 E2 E
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-4-16 16:02 , Processed in 0.095084 second(s), 27 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表