第13章 Servlet和JSP技术基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Servlet和JSP技术基础本章要点:了解Servlet和JSP技术及其特点了解Servlet和JSP技术的关系理解并掌握JSP的语法理解并掌握Servlet的生命周期掌握使用Servlet和JSP技术开发简单Web应用理解并掌握JSP的语法提纲1servlet技术及其特点1.1Servlet是什么?1.2Servlet的生命周期1.3JavaServletAPI1.4创建HTTPServlet1.5servlet技术的特点2JSP技术及其特点2.1JSP技术概述2.2JSP内置对象2.3JSP的语法2.4JSP技术的特点3使用Servlet和JSP开发Web应用3.1安装Servlet和JSP开发工具3.2安装支持Servlet的Web服务器-TOMCAT3.3创建和发布Web应用1servlet技术及其特点1.1Servlet是什么?1.2Servlet的生命周期1.3JavaServletAPI1.4创建HTTPServlet1.5servlet技术的特点1.1Servlet是什么?Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面,它使得用JAVA语言开发的WEB应用程序能够在服务器端得到响应。Servlet在Web服务器上运行并扩展了该服务器的能力。JavaServlet对于Web服务器就好象Javaapplet对于Web浏览器。Servlet装入Web服务器并在Web服务器内运行,而applet装入Web浏览器并在Web浏览器内运行。启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet将一直在内存中,随时响应客户机发出的请求。Servlet的功能(1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。(2)创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。(3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。(4)用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet可以是多参与者的游戏服务器。(5)将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。1.2Servlet的生命周期开始于装入Web服务器的内存时;结束于终止或者重新装入Servlet时1、初始化2、请求处理3、终止详见P3181.3JavaServletAPIJavaServlet开发工具提供了多个软件包,在编写Servlet时需要用到这些软件包。其中包括两个用于所有Servlet的基本软件包:javax.servlet和javax.servlet.http。HTTPServlet使用一个HTML表单来发送和接收数据。用FORM和/FORM来标记1、init()方法2、service()方法3、destroy()方法4、GetServletConfig()方法5、GetServletInfo()方法详见P3181.4创建HTTPServlet创建一个HTTPServlet,通常涉及下列四个步骤:1、扩展HttpServlet抽象类。2、重载适当的方法。如覆盖(或称为重写)doGet()或doPost()方法。3、如果有HTTP请求信息的话,获取该信息。用HttpServletRequest对象来检索HTML表格所提交的数据或URL上的查询字符串。“请求”对象含有特定的方法以检索客户机提供的信息,有3个可用的方法:getParameterNames()、getParameter()、getParameterValues()。4、生成HTTP响应。HttpServletResponse对象生成响应,并将它返回到发出请求的客户机上。它的方法允许设置“请求”标题和“响应”主体。“响应”对象还含有getWriter()方法以返回一个PrintWriter对象。使用PrintWriter的print()和println()方法以编写Servlet响应来返回给客户机。也可直接使用out对象输出有关HTML文档内容。1.5servlet技术的特点1、高效在服务器上仅有一个java虚拟机在运行,它的优势在于当servlet被客户端发送的第一个请求激活,以后它将继续运行,等待以后的请求。并且,每个请求将生成一个线程而不是进程。2、功能强大在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而传统的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。3、可移植性好Servlet用java语言编写,ServletAPI具有完善的标准。现在有很多企业编写Servlet,使得它无需任何实质上的改动就可移植到apache和MicorosoftIIS上。例13.1servlet样例(ServletSample.java)源代码。1importjava.io.*;2importjava.util.*;3importjavax.servlet.*;4importjavax.servlet.http.*;5publicclassServletSampleextendsHttpServlet{6publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{7StringmyName=request.getParameter(myName);8response.setContentType(text/html);9response.setHeader(Pragma,No-cache);10response.setDateHeader(Expires,0);11response.setHeader(Cache-Control,no-cache);12out.println(headtitleJustabasicservlet/title/head);13out.println(body);14out.println(h1Justabasicservlet/h1);15out.println(p+myName+,thisisaverybasicservletforhtml);16out.println(/body/html);17out.flush();18}19}2JSP技术及其特点2.1JSP技术概述2.2JSP内置对象2.3JSP的语法2.4JSP技术的特点2.1JSP技术概述JSP(JavaServerPages)是由Sun公司于1999年推出的新技术,是基于JavaServlet以及整个java体系的Web开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。动态:按照访问者的不同需要,对访问者输入的信息作出不同的响应,并提供响应的信息。动态网页技术的原理----一种实现:JSP技术服务器和客户端的交互如下:1.用户调出站点内容,默认页面的扩展名为.jsp2.浏览器在服务器上请求JSP文件3.服务器端脚本开始运行JSP4.JSP文件按照从上到下的顺序开始处理,执行脚本命令,生成HTML页面内容5.服务器将标准的HTML页面信息发送到浏览器详见P321工作原理WindowsNT/2000tomcat(webServers)JSP引擎*.jspJSDK脚本引擎ADOODBCDBMSDATABASE客户端HTTP请求Web浏览器标准HTML页面2.2JSP内置对象(1)1、request对象,request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取用户封装好的信息,即使用该对象可以获取用户提交的信息。2、response对象,response对象对客户的请求做出动态的响应,生成标准HTML页面,并向客户端HTML页面信息。3、session对象,session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。2.2JSP内置对象(2)4、aplication对象aplication对象运行于服务器端,服务器启动后就产生了这个application对象。5、out对象out对象是一个输出流,用来向客户端输出数据。6、CookieCookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。2.3JSP的语法JSP文件(扩展名为“jsp”)可以由指令(或称为指示语句)、Class-wide变量和方法、Java代码(scriptlet)、变量数据的Java表达式等组合而成。JSP语法普通的HTML标记符JSP标签,如指令标签、动作标签变量和方法的声明JAVA程序片JAVA表达式例1%@pagecontentType=“text/html;charset=GB2312”%HTMLBODYBGCOLOR=redFONTsize=4%!inti=0;%%i++;%p您是第%=i%个访问本站的用户。/BODY/HTML变量、方法声明程序片表达式声明方法:%!%之间声明方法,该方法在整个JSP页面内有效;但是该方法内定义的变量只在该方法内有效。方法在JAVA程序片中调用,当方法被调用的时候,方法中的变量被分配内存,调用完毕释放所占的内存。多个客户请求一个JSP页面的时候,可以使用方法来操作成员变量例2%@pagecontentType=“text/html;charset=GB2312”%HTMLBODYBGCOLOR=redFONTsize=4%!intnumber=0;synchronizedvoidcountpeople(){number++;}%%countpeople();//在程序片中调用方法%p您是第%=number%个访问本站的用户。/BODY/HTML例2synchronized方法控制对类成员变量的访问:每个类实例对应一把锁,每个synchronized方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。这种机制确保了同一时刻对于每一个类实例,其所有声明为synchronized的成员函数中至多只有一个处于可执行状态(因为至多只有一个能够获得该类实例对应的锁),从而有效避免了类成员变量的访问冲突(只要所有可能访问类成员变量的方法均被声明为synchronized)。服务器重启后会怎么样?服务器重启后,计数器又从0重新开始计数了。为了避免这种情况,我们可以使用JAVA的输入和输出流技术,将技术保存到文件中。例2%@pagecontentType=“text/html;charset=GB2312”%%@pageimport=“java.io.*”%HTMLBODYBGCOLOR=redFONTsize=4%!intnumber=0;Filefile=newFile(“count.txt”);synchronizedvoidcountpeople()//计算访问次数的同步方法{if(!file.exists()){number++;try{file.creatNewFile();FileOutputStreamout=newFileOutputStream(“count.txt”);DataOutputStreamdataout=newDataOutputStream(ou

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功