J2EE服务器应用开发讲解学习_第1页
J2EE服务器应用开发讲解学习_第2页
J2EE服务器应用开发讲解学习_第3页
J2EE服务器应用开发讲解学习_第4页
J2EE服务器应用开发讲解学习_第5页
已阅读5页,还剩284页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。J2EE服务器应用开发目录TOCo1-3hzuHYPERLINKl_Toc150240007第1章Web应用入门PAGEREF_Toc150240007h1HYPERLINKl_Toc1502400081.1Web应用概述PAGEREF_Toc150240008h2HYPERLINKl_Toc1502400091.1.1Web应用程序特点PAGEREF_Toc150240009h2HYPERLINKl_Toc1502400101.1.2HTTP请求PAGEREF_Toc150240010h2HYPERL

2、INKl_Toc1502400111.1.3Web应用程序体系结构PAGEREF_Toc150240011h3HYPERLINKl_Toc1502400121.2JavaWeb环境搭建PAGEREF_Toc150240012h4HYPERLINKl_Toc1502400131.2.1Tomcat的启动PAGEREF_Toc150240013h4HYPERLINKl_Toc1502400141.2.2Web应用程序目录结构PAGEREF_Toc150240014h5HYPERLINKl_Toc1502400151.2.3示例:建立简单的Web程序并运行PAGEREF_Toc150240015h6

3、HYPERLINKl_Toc1502400161.3Servlet入门PAGEREF_Toc150240016h7HYPERLINKl_Toc1502400171.3.1什么是ServletPAGEREF_Toc150240017h7HYPERLINKl_Toc1502400181.3.2为什么要使用ServletPAGEREF_Toc150240018h8HYPERLINKl_Toc1502400191.3.3编写Servlet的准备工作PAGEREF_Toc150240019h9HYPERLINKl_Toc1502400201.3.4运行Servlet的前提PAGEREF_Toc15024

4、0020h9HYPERLINKl_Toc1502400211.3.5第一个ServletPAGEREF_Toc150240021h10HYPERLINKl_Toc1502400221.4简单Servlet应用PAGEREF_Toc150240022h12HYPERLINKl_Toc1502400231.5本章小结PAGEREF_Toc150240023h14HYPERLINKl_Toc1502400241.6思考与练习PAGEREF_Toc150240024h14HYPERLINKl_Toc1502400251.6.1简答题PAGEREF_Toc150240025h14HYPERLINKl_T

5、oc1502400261.6.2操作题PAGEREF_Toc150240026h15HYPERLINKl_Toc150240027第2章Servlet基础PAGEREF_Toc150240027h16HYPERLINKl_Toc1502400282.1Servlet基本结构PAGEREF_Toc150240028h17HYPERLINKl_Toc1502400292.1.1Servlet运行原理PAGEREF_Toc150240029h17HYPERLINKl_Toc1502400302.1.2Servlet层次结构PAGEREF_Toc150240030h17HYPERLINKl_Toc15

6、02400312.2Servlet生命周期PAGEREF_Toc150240031h19HYPERLINKl_Toc1502400322.2.1Servlet生命周期的含义PAGEREF_Toc150240032h19HYPERLINKl_Toc1502400332.2.2Servlet生命周期的各方法的使用一PAGEREF_Toc150240033h21HYPERLINKl_Toc1502400342.2.3Servlet生命周期的各方法的使用二PAGEREF_Toc150240034h24HYPERLINKl_Toc1502400352.3ServletRequest对象PAGEREF_T

7、oc150240035h26HYPERLINKl_Toc1502400362.3.1访问servlet的方法PAGEREF_Toc150240036h26HYPERLINKl_Toc1502400372.3.2ServletRequest对象以及参数传递PAGEREF_Toc150240037h27HYPERLINKl_Toc1502400382.4ServletResponse对象PAGEREF_Toc150240038h32HYPERLINKl_Toc1502400392.5ServletContext对象PAGEREF_Toc150240039h32HYPERLINKl_Toc15024

8、00402.5.1ServletContext对象的主要方法PAGEREF_Toc150240040h32HYPERLINKl_Toc1502400412.5.2使用getInitParameter方法读取web.xml中的参数PAGEREF_Toc150240041h33HYPERLINKl_Toc1502400422.6ServletConfig对象PAGEREF_Toc150240042h36HYPERLINKl_Toc1502400432.6.1ServletConfig对象的主要方法PAGEREF_Toc150240043h36HYPERLINKl_Toc1502400442.6.2

9、使用ServletConfig对象读取初始化参数PAGEREF_Toc150240044h36HYPERLINKl_Toc1502400452.7Servlet应用PAGEREF_Toc150240045h39HYPERLINKl_Toc1502400462.7.1使用固定用户名密码实现登陆验证PAGEREF_Toc150240046h39HYPERLINKl_Toc1502400472.7.2通过文件读取用户名密码,验证登录PAGEREF_Toc150240047h41HYPERLINKl_Toc1502400482.7.3实现注册新用户的功能,把新用户的信息写入文件PAGEREF_Toc1

10、50240048h42HYPERLINKl_Toc1502400492.8本章小结PAGEREF_Toc150240049h48HYPERLINKl_Toc1502400502.9思考与练习PAGEREF_Toc150240050h48HYPERLINKl_Toc1502400512.9.1简答题PAGEREF_Toc150240051h48HYPERLINKl_Toc1502400522.9.2操作题PAGEREF_Toc150240052h48HYPERLINKl_Toc150240053第3章服务器应用对象PAGEREF_Toc150240053h49HYPERLINKl_Toc1502

11、400543.1应用对象列表PAGEREF_Toc150240054h50HYPERLINKl_Toc1502400553.2ServletContextServlet上下文PAGEREF_Toc150240055h50HYPERLINKl_Toc1502400563.3Sesssion讲解PAGEREF_Toc150240056h53HYPERLINKl_Toc1502400573.3.1使用HttpSession对象维护会话信息PAGEREF_Toc150240057h53HYPERLINKl_Toc1502400583.3.2HttpSession接口的重要方法PAGEREF_Toc15

12、0240058h53HYPERLINKl_Toc1502400593.3.3使用HttpSession实现私人累加器PAGEREF_Toc150240059h54HYPERLINKl_Toc1502400603.4购物车设计PAGEREF_Toc150240060h55HYPERLINKl_Toc1502400613.4.1单版购物车PAGEREF_Toc150240061h55HYPERLINKl_Toc1502400623.4.2网络购物车PAGEREF_Toc150240062h58HYPERLINKl_Toc1502400633.5页面跳转方法PAGEREF_Toc150240063h

13、62HYPERLINKl_Toc1502400643.6Servlet间传递参数方法PAGEREF_Toc150240064h62HYPERLINKl_Toc1502400653.6.1应用程序范围上参数的传递PAGEREF_Toc150240065h63HYPERLINKl_Toc1502400663.6.2会话范围上参数的传递PAGEREF_Toc150240066h65HYPERLINKl_Toc1502400673.6.3请求范围上的参数的传递PAGEREF_Toc150240067h68HYPERLINKl_Toc1502400683.7本章小结PAGEREF_Toc15024006

14、8h70HYPERLINKl_Toc1502400693.8思考与练习PAGEREF_Toc150240069h71HYPERLINKl_Toc1502400703.8.1简答题PAGEREF_Toc150240070h71HYPERLINKl_Toc1502400713.8.2操作题PAGEREF_Toc150240071h71HYPERLINKl_Toc150240072第4章JSP基础PAGEREF_Toc150240072h72HYPERLINKl_Toc1502400734.1JSP简介PAGEREF_Toc150240073h73HYPERLINKl_Toc1502400744.1

15、.1JSP的概念PAGEREF_Toc150240074h73HYPERLINKl_Toc1502400754.1.2JSP的执行过程PAGEREF_Toc150240075h73HYPERLINKl_Toc1502400764.2JSP语法PAGEREF_Toc150240076h74HYPERLINKl_Toc1502400774.2.1脚本元素PAGEREF_Toc150240077h74HYPERLINKl_Toc1502400784.2.2注释PAGEREF_Toc150240078h78HYPERLINKl_Toc1502400794.2.3转义规则PAGEREF_Toc15024

16、0079h79HYPERLINKl_Toc1502400804.3指令元素PAGEREF_Toc150240080h79HYPERLINKl_Toc1502400814.3.1page指令PAGEREF_Toc150240081h80HYPERLINKl_Toc1502400824.3.2include指令PAGEREF_Toc150240082h81HYPERLINKl_Toc1502400834.3.3taglib指令PAGEREF_Toc150240083h82HYPERLINKl_Toc1502400844.4标准动作PAGEREF_Toc150240084h82HYPERLINKl_

17、Toc1502400854.4.1PAGEREF_Toc150240085h83HYPERLINKl_Toc1502400864.4.2PAGEREF_Toc150240086h83HYPERLINKl_Toc1502400874.4.3PAGEREF_Toc150240087h83HYPERLINKl_Toc1502400884.4.4标准动作的简单使用PAGEREF_Toc150240088h83HYPERLINKl_Toc1502400894.5JSP中的隐含对象PAGEREF_Toc150240089h84HYPERLINKl_Toc1502400904.5.1request对象PAG

18、EREF_Toc150240090h85HYPERLINKl_Toc1502400914.5.2response对象PAGEREF_Toc150240091h88HYPERLINKl_Toc1502400924.5.3out对象PAGEREF_Toc150240092h88HYPERLINKl_Toc1502400934.5.4session对象PAGEREF_Toc150240093h88HYPERLINKl_Toc1502400944.5.5application对象PAGEREF_Toc150240094h89HYPERLINKl_Toc1502400954.5.6pageContext

19、对象PAGEREF_Toc150240095h89HYPERLINKl_Toc1502400964.5.7page对象PAGEREF_Toc150240096h89HYPERLINKl_Toc1502400974.5.8config对象PAGEREF_Toc150240097h89HYPERLINKl_Toc1502400984.5.9exception对象PAGEREF_Toc150240098h90HYPERLINKl_Toc1502400994.6JSP范围PAGEREF_Toc150240099h90HYPERLINKl_Toc1502401004.6.1JSP范围PagePAGERE

20、F_Toc150240100h90HYPERLINKl_Toc1502401014.6.2JSP范围RequestPAGEREF_Toc150240101h90HYPERLINKl_Toc1502401024.6.3JSP范围SessionPAGEREF_Toc150240102h91HYPERLINKl_Toc1502401034.6.4JSP范围ApplicationPAGEREF_Toc150240103h91HYPERLINKl_Toc1502401044.7本章小结PAGEREF_Toc150240104h91HYPERLINKl_Toc1502401054.8思考与练习PAGERE

21、F_Toc150240105h91HYPERLINKl_Toc1502401064.8.1简答题PAGEREF_Toc150240106h91HYPERLINKl_Toc1502401074.8.2操作题PAGEREF_Toc150240107h92HYPERLINKl_Toc150240108第5章JavaBean组件技术PAGEREF_Toc150240108h93HYPERLINKl_Toc1502401095.1JavaBean的概念PAGEREF_Toc150240109h94HYPERLINKl_Toc1502401105.1.1JavaBean简介PAGEREF_Toc15024

22、0110h94HYPERLINKl_Toc1502401115.1.2JavaBean的属性PAGEREF_Toc150240111h94HYPERLINKl_Toc1502401125.2JavaBean使用PAGEREF_Toc150240112h95HYPERLINKl_Toc1502401135.2.1标准动作PAGEREF_Toc150240113h95HYPERLINKl_Toc1502401145.2.2标准动作PAGEREF_Toc150240114h96HYPERLINKl_Toc1502401155.2.3标准动作PAGEREF_Toc150240115h97HYPERLI

23、NKl_Toc1502401165.2.4JavaBean的Scope属性PAGEREF_Toc150240116h97HYPERLINKl_Toc1502401175.2.5JavaBean的简单应用PAGEREF_Toc150240117h97HYPERLINKl_Toc1502401185.3JavaBean应用实例PAGEREF_Toc150240118h100HYPERLINKl_Toc1502401195.3.1编制商品展示页面home.htmlPAGEREF_Toc150240119h100HYPERLINKl_Toc1502401205.3.2编写一个购物车JavaBeanCa

24、rtBean.javaPAGEREF_Toc150240120h101HYPERLINKl_Toc1502401215.3.3编制购物车JSP页面cart.jspPAGEREF_Toc150240121h103HYPERLINKl_Toc1502401225.4Web应用中访问数据库PAGEREF_Toc150240122h104HYPERLINKl_Toc1502401235.4.1数据库访问类PAGEREF_Toc150240123h104HYPERLINKl_Toc1502401245.4.2Web应用(多Servlet)PAGEREF_Toc150240124h107HYPERLINK

25、l_Toc1502401255.4.3Web应用(单Servlet)PAGEREF_Toc150240125h114HYPERLINKl_Toc1502401265.5JSP/Servlet如何传递参数PAGEREF_Toc150240126h116HYPERLINKl_Toc1502401275.6本章小结PAGEREF_Toc150240127h118HYPERLINKl_Toc1502401285.7思考与练习PAGEREF_Toc150240128h118HYPERLINKl_Toc1502401295.7.1简答题PAGEREF_Toc150240129h118HYPERLINKl_

26、Toc1502401305.7.2操作题PAGEREF_Toc150240130h119HYPERLINKl_Toc150240131第6章使用JSTL标签库PAGEREF_Toc150240131h120HYPERLINKl_Toc1502401326.1JSP定制标签PAGEREF_Toc150240132h121HYPERLINKl_Toc1502401336.1.1什么是JSP定制标签PAGEREF_Toc150240133h121HYPERLINKl_Toc1502401346.1.2如何使用JSP定制标签库PAGEREF_Toc150240134h122HYPERLINKl_Toc

27、1502401356.1.3第三方JSP定制标签库PAGEREF_Toc150240135h123HYPERLINKl_Toc1502401366.2JSTL1.0PAGEREF_Toc150240136h124HYPERLINKl_Toc1502401376.2.1安装使用JSTL1.0PAGEREF_Toc150240137h124HYPERLINKl_Toc1502401386.2.2使用JSTL1.0的简单例子PAGEREF_Toc150240138h125HYPERLINKl_Toc1502401396.3表达式语言(EL)PAGEREF_Toc150240139h125HYPERL

28、INKl_Toc1502401406.3.1表达式语言语法PAGEREF_Toc150240140h126HYPERLINKl_Toc1502401416.3.2表达式语言隐含对象PAGEREF_Toc150240141h127HYPERLINKl_Toc1502401426.3.3表达式语言运算符PAGEREF_Toc150240142h132HYPERLINKl_Toc1502401436.4核心标签库PAGEREF_Toc150240143h135HYPERLINKl_Toc1502401446.4.1表达式操作PAGEREF_Toc150240144h136HYPERLINKl_Toc

29、1502401456.4.2迭代操作PAGEREF_Toc150240145h141HYPERLINKl_Toc1502401466.4.3流程控制PAGEREF_Toc150240146h147HYPERLINKl_Toc1502401476.4.4URL操作PAGEREF_Toc150240147h149HYPERLINKl_Toc1502401486.5本章小结PAGEREF_Toc150240148h151HYPERLINKl_Toc1502401496.6思考与练习PAGEREF_Toc150240149h152HYPERLINKl_Toc1502401506.6.1简答题PAGER

30、EF_Toc150240150h152HYPERLINKl_Toc1502401516.6.2操作题PAGEREF_Toc150240151h152HYPERLINKl_Toc150240152第7章Servlet高级应用PAGEREF_Toc150240152h153HYPERLINKl_Toc1502401537.1ServletContext对象PAGEREF_Toc150240153h154HYPERLINKl_Toc1502401547.1.1Web应用程序的初始参数PAGEREF_Toc150240154h154HYPERLINKl_Toc1502401557.1.2Servlet

31、Context对象的方法和属性PAGEREF_Toc150240155h156HYPERLINKl_Toc1502401567.2与ServletContext对象相关的侦听器和事件PAGEREF_Toc150240156h158HYPERLINKl_Toc1502401577.2.1ServletContext生命周期PAGEREF_Toc150240157h158HYPERLINKl_Toc1502401587.2.2ServletContextListener侦听器PAGEREF_Toc150240158h159HYPERLINKl_Toc1502401597.2.3ServletCon

32、textAttributeListener侦听器PAGEREF_Toc150240159h162HYPERLINKl_Toc1502401607.3与HttpSession对象相关的侦听器和事件PAGEREF_Toc150240160h163HYPERLINKl_Toc1502401617.3.1HttpSessionListener侦听器PAGEREF_Toc150240161h163HYPERLINKl_Toc1502401627.3.2利用侦听器完成在线人数统计工作的示例PAGEREF_Toc150240162h164HYPERLINKl_Toc1502401637.3.3HttpSes

33、sionAttributeListener侦听器PAGEREF_Toc150240163h166HYPERLINKl_Toc1502401647.4过滤器PAGEREF_Toc150240164h166HYPERLINKl_Toc1502401657.4.1过滤器的概念PAGEREF_Toc150240165h166HYPERLINKl_Toc1502401667.4.2应用过滤器PAGEREF_Toc150240166h168HYPERLINKl_Toc1502401677.5本章小结PAGEREF_Toc150240167h173HYPERLINKl_Toc1502401687.6思考与练

34、习PAGEREF_Toc150240168h173HYPERLINKl_Toc1502401697.6.1简答题PAGEREF_Toc150240169h173HYPERLINKl_Toc1502401707.6.2操作题PAGEREF_Toc150240170h173HYPERLINKl_Toc150240171第8章Java的模板设计PAGEREF_Toc150240171h174HYPERLINKl_Toc1502401728.1Velocity模板PAGEREF_Toc150240172h175HYPERLINKl_Toc1502401738.1.1Velocity的简单使用PAGER

35、EF_Toc150240173h175HYPERLINKl_Toc1502401748.1.2Set语句和条件语句PAGEREF_Toc150240174h178HYPERLINKl_Toc1502401758.1.3逻辑运算符PAGEREF_Toc150240175h181HYPERLINKl_Toc1502401768.1.4循环语句Foreach循环PAGEREF_Toc150240176h182HYPERLINKl_Toc1502401778.1.5Parse和StopPAGEREF_Toc150240177h183HYPERLINKl_Toc1502401788.1.6Velocim

36、acrosVelocity宏PAGEREF_Toc150240178h184HYPERLINKl_Toc1502401798.2Veclocity在Servlet中应用PAGEREF_Toc150240179h185HYPERLINKl_Toc1502401808.3JSP中的模板使用PAGEREF_Toc150240180h188HYPERLINKl_Toc1502401818.3.1运用模板思想的简单JSPPAGEREF_Toc150240181h188HYPERLINKl_Toc1502401828.4本章小结PAGEREF_Toc150240182h190HYPERLINKl_Toc1

37、502401838.5思考与练习PAGEREF_Toc150240183h190HYPERLINKl_Toc1502401848.5.1简答题PAGEREF_Toc150240184h190HYPERLINKl_Toc1502401858.5.2操作题PAGEREF_Toc150240185h191HYPERLINKl_Toc150240186第9章Web开发与模式应用PAGEREF_Toc150240186h192HYPERLINKl_Toc1502401879.1MVC模式PAGEREF_Toc150240187h193HYPERLINKl_Toc1502401889.1.1MVC概念PA

38、GEREF_Toc150240188h193HYPERLINKl_Toc1502401899.1.2应用PAGEREF_Toc150240189h193HYPERLINKl_Toc1502401909.2命令模式PAGEREF_Toc150240190h195HYPERLINKl_Toc1502401919.2.1简单应用PAGEREF_Toc150240191h196HYPERLINKl_Toc1502401929.2.2Web中的应用PAGEREF_Toc150240192h199HYPERLINKl_Toc1502401939.3策略模式PAGEREF_Toc150240193h201H

39、YPERLINKl_Toc1502401949.3.1基础应用PAGEREF_Toc150240194h202HYPERLINKl_Toc1502401959.3.2Web中的应用PAGEREF_Toc150240195h205HYPERLINKl_Toc1502401969.4本章小结PAGEREF_Toc150240196h209HYPERLINKl_Toc1502401979.5思考与练习PAGEREF_Toc150240197h209HYPERLINKl_Toc1502401989.5.1简答题PAGEREF_Toc150240198h209HYPERLINKl_Toc15024019

40、99.5.2操作题PAGEREF_Toc150240199h209HYPERLINKl_Toc150240200第10章技术解决方案PAGEREF_Toc150240200h210HYPERLINKl_To1JavaMailPAGEREF_Toc150240201h211HYPERLINKl_To1.1JavaMailAPIPAGEREF_Toc150240202h211HYPERLINKl_To1.2JavaMail的使用步骤及简单应用PAGEREF_Toc150240203h214HYPERLINKl_Toc15

41、024020410.1.3JavaMail的Web应用PAGEREF_Toc150240204h216HYPERLINKl_To2文件上传PAGEREF_Toc150240205h220HYPERLINKl_To2.1简单上传PAGEREF_Toc150240206h221HYPERLINKl_To2.2图片上传PAGEREF_Toc150240207h224HYPERLINKl_To3动态图片的创建PAGEREF_Toc150240208h226HYPERLINKl_Toc15024020

42、910.4网络投票系统的实现PAGEREF_Toc150240209h230HYPERLINKl_To5本章小结PAGEREF_Toc150240210h235HYPERLINKl_To6思考与练习PAGEREF_Toc150240211h235HYPERLINKl_To6.1简答题PAGEREF_Toc150240212h235HYPERLINKl_To6.2操作题PAGEREF_Toc150240213h235HYPERLINKl_Toc150240214第11章自定义标签PAGEREF

43、_Toc150240214h236HYPERLINKl_To1自定义标签简介PAGEREF_Toc150240215h237HYPERLINKl_To2自定义标签的结构PAGEREF_Toc150240216h237HYPERLINKl_To2.1自定义标签的表现形式PAGEREF_Toc150240217h237HYPERLINKl_To2.2Tag接口PAGEREF_Toc150240218h238HYPERLINKl_To3制作一个简单的自定义标签PAGERE

44、F_Toc150240219h240HYPERLINKl_To3.1编写标签处理器PAGEREF_Toc150240220h240HYPERLINKl_To3.2编写标签库描述文件PAGEREF_Toc150240221h241HYPERLINKl_To3.3部署标签库PAGEREF_Toc150240222h243HYPERLINKl_To3.4在JSP页面中使用标签PAGEREF_Toc150240223h244HYPERLINKl_To4给标签加属性PAGER

45、EF_Toc150240224h245HYPERLINKl_To4.1如何在标签处理器内处理标签属性PAGEREF_Toc150240225h245HYPERLINKl_To4.2在TLD文件中声明属性PAGEREF_Toc150240226h245HYPERLINKl_To4.3制作带有属性的myFont标签PAGEREF_Toc150240227h246HYPERLINKl_To5标签向JSP传递信息PAGEREF_Toc150240228h249HYPERLINKl_Toc150240

46、22911.6本章小结PAGEREF_Toc150240229h253HYPERLINKl_To7思考与练习PAGEREF_Toc150240230h253HYPERLINKl_To7.1简答题PAGEREF_Toc150240231h253HYPERLINKl_To7.2操作题PAGEREF_Toc150240232h253Web应用入门本章重点了解Web应用程序的特点掌握Web环境的搭建以及Tomcat的使用掌握典型Web应用程序的目录结构掌握如何创建和使用简单的ServletWeb应用概述Web应用程序特点We

47、b应用程序基于B/S结构,和一般的C/S的应用程序不同。以听音乐为例,在使用C/S结构的应用程序时,如媒体播放器,用户输入命令,如选择文件,媒体播放器就会播放出该文件。随着技术的发展,如今更多的用户喜欢在Internet上听音乐。这将使用户节约大量的磁盘空间。很多的网站都提供各种音乐,只要用户选择一个或多个音乐文件,网站就会播放选中的文件。此时,用户点播音乐的请求被Internet网络传输给网站的Web服务器上的Web应用程序,该Web应用程序响应用户的请求,给用户播放选中的文件。在这种B/S结构下,用户访问某网站时实际上是访问该网站的Web服务器。在Java中使用Servlet和JSP技术可

48、以开发Web应用程序。与桌面应用程序相比,Web应用程序具有以下优点:访问Web应用程序更容易用于访问Web网页的标准协议为HTTP协议,为绝大多数操作系统所支持。此外,所要求的客户端软件仅为浏览器,如MicrosoftInternetExplorer等。维护和部署成本低Web应用程序在浏览器中请求运行,不需要在每个客户端系统上安装客户端软件。Web应用程序代码可以在服务器端进行修改和维护,这将节省更新和部署应用程序所需的时间和成本。HTTP请求通常,用户的请求和Web应用程序的响应需要通过Internet从一台计算机发送到另一台计算机或服务器,使用的是超文本传输协议(HTTP)。HTTP客户

49、端(如浏览器)需要与服务器建立一个连接,并将一则请求消息通过连接发送到HTTP服务器,以请求相应的资源。然后服务器返回带有请求资源的相应消息。一旦回答了请求,服务器则关闭连接,这样便没有存储连接信息,所以HTTP被称为无状态协议。HTTP请求消息使用GET或POST方法以便在Web上传输请求。检索信息时使用GET方法,如检索文档、图表或数据库查询结果。要检索的信息作为字符参数传递,称为查询字符串。因此,传递的数据对客户端是可见的。根据不同的服务器,查询字符串的长度限制在240255个字符。例如,要使用GET方法在网站中查询name为a的用户信息,那么查询字符串的表示为:/user?name=a

50、HTTP定义的另一种请求方法是POST方法。使用POST发送的数据对客户端是不可见的,且对发送的数据的量没有限制。POST方法多用来传输敏感数据,如信用卡号或用户的密码等。Web应用程序体系结构大多数的应用程序由以下3个组件组成。表示层:由用户界面和用于生成界面的代码组成。业务层:包含系统的业务和功能代码。数据存取层:负责完成存取数据库的数据。应用程序的体系结构定义如何将这些组件组合在一起并交互完成软件的功能。以下是3种应用程序体系结构。一层体系结构这种体系结构中,所有与表示逻辑、业务逻辑和数据存取逻辑相关的代码都耦合在一起。二层体系结构在这种体系结构中,数据存取逻辑的代码与业务逻辑和表示逻辑

51、分开,而且任何与数据存取层的交互都将通过业务层来完成,但表示逻辑和业务逻辑的代码仍然耦合在一起。三层体系结构在这种体系结构中,与3个组件相关的代码相互之间保持独立。但是,现在是业务层充当数据存取层和表示层之间的接口,通常表示层不能与数据存取层进行通信。设计良好的Web应用程序通常是基于三层体系结构的。这种体系结构带来的优点有:大大的降低了各个组件之间的耦合性,即一个组件的更改不会影响其他两个组件。例如,如果用户需要更换数据库,那么只有数据存取逻辑组件需要修改代码。同样,如果更改了用户界面设计,那么只有表示逻辑组件需要修改。由于表示逻辑和数据存取逻辑相互独立,因而可以方便地扩充表示逻辑,使系统具

52、有良好的可扩展性。代码重复最少,因为在3个组件之间尽可能共享代码。良好的分工与协作。这将使不同的小组能够独立的开发应用程序的不同部分,并充分发挥各自的长处和优势。应用于Web应用程序的三层体系结构,表示层(通常为HTML或JSP页面)由在客户端系统显示用户接口的代码组成。业务层中相应的Servlet或JSP组件处理了用户的请求后,将进一步与数据存取层交互,数据存取层进行数据库的相应操作。JavaWeb环境搭建Tomcat的启动安装好Tomcat后,点击开始运行进入到命令行界面(如图1-1)。图1-1命令行界面然后进入到Tomcat下的bin目录下(如图1-2)。图1-2命令行界面使用start

53、up命令启动Tomcat服务(如图1-3、图1-4)。图1-3启动Tomcat图1-4启动成功Web应用程序目录结构图1-5Tomcat目录结构其中webapps用于发布程序集,Web应用程序就存储在该文件夹中,如图1-6,就是一个简单的Web应用程序的目录结构。图1-6目录结构Web应用程序有一个顶层目录,用来标识Web应用程序。例如,如果顶层目录的名称为“book”,则此Web应用程序可以用http:/localhost:8080/book/来访问。该顶层目录结构成为文档根目录,有以下几部分组成。静态文件:包括所有的HTML网页和图像文件等。JSP页面文件:利用JSP页面技术可以很方便地在

54、页面中生成动态的内容。WEB-INF:该目录存在于Web应用程序根目录下。主要有以下部分组成:classes目录:存储Servlet类、JavaBean类和Web应用程序需要的其他类。lib目录:包含Web应用程序所需的各种.jar文件。web.xml文件:Web应用程序的部署描述文件,该文件包含有关的Web应用程序的元数据信息。根元素为。示例:建立简单的Web程序并运行步骤一:在Tomcat下的webapps目录下建立Web应用程序主目录book。步骤二:在book目录下建立WEB-INF目录和简单的HTML文件。代码如1-1。代码1-1主页文件book.htmlHelloHelloWorl

55、d!步骤三:在WEB-INF目录下建立classes目录和lib目录以及web.xml文件。在web.xml文件中写入根元素,见代码1-2。代码1-2配置文件web.xml步骤四:启动Tomcat服务步骤五:通过http:/localhost:8080/book/book.html进行访问,结果如图1-7:图1-7运行结果Servlet入门什么是Servletservlet可以被认为是服务器端的applet。servlet被Web服务器加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种作业,然后返回结果。使用servlet的基本流

56、程如下:客户端(如Web浏览器)通过HTTP提出请求。Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载Web服务器将把它加载到Java虚拟机并且执行它。servlet将接收该HTTP请求并执行某种处理。servlet将向Web服务器返回应答。Web服务器将从servlet收到的应答发送给客户端。由于servlet是在服务器上执行,通常与applet相关的安全性的问题并不需实现。servlet使相当数量的不可能或者至少是很难由applet实现的功能的实现成为可能。与现有系统通过CORBA,RMI,socket和本地(native)调用的通信就是其中的一些例子。另外

57、,一定要注意:Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。这意味着如果Web服务器有防火墙保护,那么servlet也将得到防火墙的保护。为什么要使用Servletservlet可以很好地替代公共网关接口(CommonGatewayInterface,CGI)脚本。通常CGI脚本是用Perl或者C语言编写的,它们总是和特定的服务器平台紧密相关。而servlet是用Java编写的,所以它们一开始就是平台无关的。这样,Java编写一次就可以在任何平台运行(writeonce,runanywhere)的承诺就同样可以在服务器上实现了。servlet还有一些CG

58、I脚本所不具备的独特优点:servlet是持久的servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。与之相反,CGI脚本是短暂的、瞬态的。每一次对CGI脚本的请求,都会使Web服务器加载并执行该脚本。一旦这个CGI脚本运行结束,它就会被从内存中清除,然后将结果返回到客户端。CGI脚本的每一次使用,都会造成程序初始化过程(例如连接数据库)的重复执行。servlet是与平台无关的如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。servlet是可扩展的由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。

59、Java是健壮的、面向对象的编程语言,很容易扩展以适应需求。servlet自然也具备了这些特征。servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在Web服务器有防火墙保护的时候。servlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以可以很方便地在HTML中使用它们。编写Servlet的准备工作JavaSoft(SunMicrosystem的Java软件部)尽量地使servlet开发能够既方便又快捷。JavaServlets开发工具包(JSDK)就是他们努力的结晶。该软件可以从JavaSoft的

60、主页()上下载。从1.2版以后,JSDK已经成为Java开发工具包(JDK)的组成部分。在JSDK中包含了JavaServletAPI,JavaServletAPI是标准的Java扩展API。这意味着,JSDK不是Java核心框架的组成部分,因而可以由提供商将其作为附加包来提供。Java核心框架是所有使用Java的产品所必须包含的。在Javax.servlet包中提供了ServletAPI。运行Servlet的前提如前所述,运行servlet的全部需求就是一个支持ServletAPI的Web服务器。表1-1和1-2给出了第三方厂商提供的JavaWeb服务器的实现以及支持ServletAPI的附

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论