第13章Servlet和JSP技术基础_第1页
第13章Servlet和JSP技术基础_第2页
第13章Servlet和JSP技术基础_第3页
第13章Servlet和JSP技术基础_第4页
第13章Servlet和JSP技术基础_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、Servlet和JSP技术基础,本章要点:,了解Servlet和JSP技术及其特点 了解Servlet和JSP技术的关系 理解并掌握JSP的语法 理解并掌握Servlet的生命周期 掌握使用Servlet和JSP技术开发简单Web应用 理解并掌握JSP的语法,提纲,1 servlet技术及其特点 1.1Servlet是什么? 1.2Servlet的生命周期 1.3Java Servlet API 1.4创建HTTPServlet 1.5servlet技术的特点 2 JSP技术及其特点 2.1JSP技术概述 2.2 JSP内置对象 2.3JSP的语法 2.4JSP技术的特点 3 使用Servle

2、t和JSP开发Web应用 3.1安装Servlet和JSP开发工具 3.2安装支持Servlet的Web服务器TOMCAT 3.3创建和发布Web应用,1 servlet技术及其特点,1.1Servlet是什么? 1.2Servlet的生命周期 1.3Java Servlet API 1.4创建HTTPServlet 1.5servlet技术的特点,1.1Servlet是什么?,Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面,它使得用JAVA语言开发的WEB应用程序能够在服务器端得到响应。 Servlet在Web服务器上运行并扩展了该服务器的能力。

3、Java Servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内运行,而applet装入Web浏览器并在Web浏览器内运行。 启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet将一直在内存中,随时响应客户机发出的请求。,Servlet的功能,(1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。 (2)创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。 (3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。 (4)用多个客户机处理连

4、接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet可以是多参与者的游戏服务器。 (5)将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。,1.2Servlet的生命周期,开始于装入Web服务器的内存时; 结束于终止或者重新装入Servlet时 1、初始化 2、请求处理 3、终止,详见P318,1.3 Java Servlet API,Java Servlet开发工具提供了多个软件包,在编写Servlet时需要用到这些软件包。 其中包括两个用于所有Servlet的基本软件包:javax.servlet 和 javax.servlet.h

5、ttp。 HTTPServlet使用一个HTML表单来发送和接收数据。用和 来标记 1、init( )方法 2、service( )方法 3、destroy( )方法 4、GetServletConfig( )方法 5、GetServletInfo( )方法,详见P318,1.4创建HTTPServlet,创建一个HTTPServlet,通常涉及下列四个步骤: 1、扩展HttpServlet抽象类。 2、重载适当的方法。如覆盖(或称为重写)doGet()或doPost()方法。 3、如果有HTTP请求信息的话,获取该信息。用HttpServletRequest对象来检索HTML表格所提交的数据

6、或URL上的查询字符串。“请求”对象含有特定的方法以检索客户机提供的信息,有3个可用的方法:getParameterNames()、getParameter()、getParameterValues()。 4、生成HTTP响应。HttpServletResponse对象生成响应,并将它返回到发出请求的客户机上。它的方法允许设置“请求”标题和“响应”主体。“响应”对象还含有getWriter()方法以返回一个PrintWriter对象。使用PrintWriter的print()和println()方法以编写Servlet响应来返回给客户机。也可直接使用out对象输出有关HTML文档内容。,1.5

7、servlet技术的特点,1、高效 在服务器上仅有一个java虚拟机在运行,它的优势在于当servlet被客户端发送的第一个请求激活,以后它将继续运行,等待以后的请求。并且,每个请求将生成一个线程而不是进程。 2、功能强大 在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而传统的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。 3、可移植性好 Servlet用java语言编写,Servlet API具有完善的标准。现在有很多企业编写Servlet,使得它无需任何实质上的改

8、动就可移植到apache和MicorosoftIIS上。,例13.1 servlet样例(ServletSample.java)源代码。 1 import java.io.*; 2 import java.util.*; 3 import javax.servlet.*; 4 import javax.servlet.http.*; 5 public class ServletSample extends HttpServlet 6 public void doGet (HttpServletRequest request, HttpServletResponse response) thro

9、ws ServletException, IOException 7 String myName = request.getParameter(myName); 8 response.setContentType(text/html); 9 response.setHeader(Pragma, No-cache); 10response.setDateHeader(Expires, 0); 11response.setHeader(Cache-Control, no-cache); 12out.println(Just a basic servlet); 13out.println(); 14

10、out.println(Just a basic servlet); 15out.println ( + myName + , this is a very basic servlet for html); 16out.println(); 17out.flush(); 18 19,2 JSP技术及其特点,2.1JSP技术概述 2.2 JSP内置对象 2.3JSP的语法 2.4JSP技术的特点,2.1JSP技术概述,JSP(Java Server Pages)是由Sun公司于1999年推出的新技术,是基于Java Servlet以及整个java体系的Web开发技术。利用这一技术可以建立先进、安

11、全和跨平台的动态网站。 动态:按照访问者的不同需要,对访问者输入的信息作出不同的响应,并提供响应的信息。动态网页技术的原理- -一种实现:JSP技术 服务器和客户端的交互如下: 1.用户调出站点内容,默认页面的扩展名为.jsp 2.浏览器在服务器上请求JSP文件 3.服务器端脚本开始运行JSP 4.JSP文件按照从上到下的顺序开始处理,执行脚本命令,生成HTML页面内容 5.服务器将标准的HTML页面信息发送到浏览器,详见P321,工作原理,2.2 JSP内置对象(1),1、request对象,request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取用户封装好的信息,即使用该对

12、象可以获取用户提交的信息。 2、response对象,response对象对客户的请求做出动态的响应,生成标准HTML页面,并向客户端HTML页面信息。 3、session对象,session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。,2.2 JSP内置对象(2),4、aplication对象 aplication对象运行于服务器端,服务器启动后就产生了这个application对象。 5、out对象 out对象是一个输出流,用来向客户端输出数据。 6、Cookie Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户

13、的电脑上保存信息并且随后再取回它。,2.3 JSP的语法,JSP文件(扩展名为“jsp”)可以由指令(或称为指示语句)、Class-wide变量和方法、Java代码(scriptlet)、变量数据的Java表达式等组合而成。,P324 JSP语法,JSP 语法,普通的HTML标记符 JSP标签,如指令标签、动作标签 变量和方法的声明 JAVA程序片 JAVA表达式,例1, 您是第 个访问本站的用户。 ,变量、方法声明,程序片,表达式,声明方法: 之间声明方法,该方法在整个JSP页面内有效;但是该方法内定义的变量只在该方法内有效。 方法在JAVA程序片中调用,当方法被调用的时候,方法中的变量被分

14、配内存,调用完毕释放所占的内存。 多个客户请求一个JSP页面的时候,可以使用方法来操作成员变量,例2, 您是第 个访问本站的用户。 ,例2,synchronized 方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。这种机制确保了同一时刻对于每一个类实例,其所有声明为 synchronized 的成员函数中至多只有一个处于可执行状态(因为至多只有一个能够获得该类实例对应的锁),从而有效避免了类成

15、员变量的访问冲突(只要所有可能访问类成员变量的方法均被声明为 synchronized)。,服务器重启后会怎么样? 服务器重启后,计数器又从0重新开始计数了。 为了避免这种情况,我们可以使用JAVA的输入和输出流技术,将技术保存到文件中。,例2, %! int number=0; File file=new File(“count.txt”); synchronized void countpeople( ) /计算访问次数的同步方法 if( !file.exists() ) number+; try file.creatNewFile( ); FileOutputStream out = n

16、ew FileOutputStream(“count.txt”); DataOutputStream dataout = new DataOutputStream(out); dataout.writeInt(number); out.close( ); dataout.close( ); catch(IOException e) ,例2,else try file.creatNewFile( ); FileInputStream in = new FileInputStream(“count.txt”); DataInputStream datain = new DataInputStrea

17、m(in); number=datain.readInt( ); number+; in.close( ); datain.close( ); FileOutputStream out = new FileOutputStream(“count.txt”); DataOutputStream dataout = new DataOutputStream(out); dataout.writeInt(number); out.close( ); dataout.close( ); catch(IOException e) % 您是第 个访问本站的用户。,2.4 JSP技术的特点,1、将内容的生成

18、和显示进行分离 2、强调可重用的组件 3、采用标识简化页面开发 4、适应更多的平台 这是JSP比ASP的优越之处。几乎所有平台都支持Java,JSP+JavaBean可以在所有平台下通行无阻。,3 使用Servlet和JSP开发Web应用,3.1安装Servlet和JSP开发工具 3.2安装支持Servlet的Web服务器TOMCAT 3.3创建和发布Web应用,3.1安装Servlet和JSP开发工具,安装JSWDK 配置好环境变量:CLASSPATH 关注servlet.jar和jsp.jar,3.2安装支持Servlet的Web服务器TOMCAT,持Servlet的Web服务器很多,如A

19、pache Tomcat、JavaServer Web Development Kit(JSWDK)、New Atlanta的Servlet Exec和Gefion的Lite Web Server(LWS) 使用Apache Tomcat 作为Web服务器 。免费。 1.先装j2sdk1.4.2 2.装tomcat5.0.16,过程见课本P327328,3.3创建和发布Web应用,1、了解例子中的Web应用的目录结构 2、了解Web应用中的web.xml文件 3、在server.xml中加入元素 4、部署HTML文件 5、部署JSP 6、部署Servlet,例13.2 login.jsp he

20、lloapp User Name: Password: ,P332,例13.3 hello.jsp helloapp Welcome: ,P332,例13.4 DispatcherServlet.java package mypack; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class DispatcherServlet extends HttpServlet private String target = /hello.jsp; public void init(ServletConfig config) throws ServletException super.init(config); public void doGet (HttpServletRequest request, HttpServletResponse response) t

温馨提示

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

最新文档

评论

0/150

提交评论