欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java语言程序设计-Servlet程序设计解析课件.ppt

    • 资源ID:1285846       资源大小:726.57KB        全文页数:92页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java语言程序设计-Servlet程序设计解析课件.ppt

    1,第十一章 Servlet程序设计,JAVA语言程序设计,1第十一章 Servlet程序设计JAVA语言程序设计,2,目录,11.1 Java网络程序设计的基本概念11.2 Servlet基础11.3 Servlet的生命周期11.4 与客户端交互11.5 客户端跟踪11.6 协作与通讯11.7 程序举例11.8 本章小结,2目录11.1 Java网络程序设计的基本概念,3,11.1 Java网络程序设计的基本概念,网络将世界联系在一起,使世界变得更加丰富多彩。同时网络互连是一个内容丰富而复杂的主题,所以这方面的程序设计涉及面很广且不易掌握与其他语言相比,Java语言在网络应用程序方面具有一定的优势。Java提供了很多内置的网络功能,使得基于Internet和Web的应用开发变得更加容易,311.1 Java网络程序设计的基本概念网络将世界联系在一,4,11.1.1 协议,所有使用或实现某种Internet服务的程序都必须遵从一个或多个网络协议,这种协议很多,而IP、TCP、UDP是最为根本的三种协议,是所有其它协议的基础IP(Internet Protocol,Internet协议)是最底层的协议定义了数据按照数据报(Datagram,一种自带寻址信息的、独立地从数据源走到终点的数据包)传输的格式和规则TCP(Transport Control Protocol,传输控制协议)建立在IP之上,定义了网络上程序到程序的数据传输格式和规则,提供了IP数据包的传输确认、丢失数据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制是面向连接的协议,在开始数据传输之前,必须先建立明确的连接UDP(User Datagram Protocol,用户数据报协议)与TCP相似,比TCP具有更好的传输效率。不可靠的,不保证数据的传输,也不提供重新排列次序或重新请求功能,是一种无连接协议,Java网络程序设计的基本概念,411.1.1 协议所有使用或实现某种Internet服务的,5,HTTP协议( HyperText Transfer Protocol)是Internet众多协议中的一种,表示超文本传输协议,它构成了WWW的基础具有简单快速、灵活、无状态、无连接等特点基于请求(Request)/响应(Response)模式。其工作过程如下首先客户端与服务器建立连接然后客户端发送一个请求给服务器服务器接到请求后,给予相应的响应信息;最后关闭连接,完成一次操作,11.1.1 协议(续) HTTP协议,Java网络程序设计的基本概念,5HTTP协议( HyperText Transfer Pr,6,客户端发送给服务器的请求有很多类型,被称为方法,其中最常用的是GET、POSTGET方法用来从服务器读取信息,比如从服务器读取文件、表格、数据库查询结果等POST方法用来向服务器传送信息,比如把信用卡号、表格、存储于数据库的数据等传送到服务器HEAD方法用来读取服务器响应头(Response Head);得到诸如文件大小,文件最后修改时间,服务器类型等信息PUT方法将文件直接传到服务器DELETE方法将文件直接从服务器删除TRACE方法用来协助程序调试OPTIONS方法用来查询服务器所支持的方法,11.1.1 协议(续) HTTP协议中客户端发送给服务器的请求,Java网络程序设计的基本概念,6客户端发送给服务器的请求11.1.1 协议(续),7,11.1.2 关于URI,URI(Uniform Resource Identifier,统一资源标志符) HTTP协议用URI标识定位网络上的数据如果知道了公布在网络上的某个HTML文件的URI,不管文件位于什么地方,都可以通过HTTP访问该文档通常所说的URL是URI的一种,Java网络程序设计的基本概念,711.1.2 关于URIURI(Uniform Resou,8,URL类Java语言提供了URL类让我们能在源代码层使用URL有六个构造函数,其中最简单的是URL(String url)。每个URL对象都封装了资源的标识符和协议处理程序,可以调用URL的方法来提取URL的组件把URL对象作为AppletContext接口的showDocument方法的参数,就可以使执行applet的浏览器显示URL所指定的资源,11.1.2 关于URI(续) URL类,Java网络程序设计的基本概念,8URL类11.1.2 关于URI(续),9,applet浏览指定URL举例: ShowDocument.javaimport .*;import java.util.*;import java.awt.*;import java.awt.event.*;import java.applet.AppletContext;import javax.swing.*;import javax.swing.event.*;public class ShowDocument extends JApplet public void init() JButton goButton = new JButton(Link to ); Container myContainer = getContentPane(); myContainer.add( new JLabel(Link to SOHU),BorderLayout.NORTH); myContainer.add(goButton,BorderLayout.SOUTH); goButton.addActionListener(new ButtonListener();,11.1.2 关于URI(续) 例11_1,Java网络程序设计的基本概念,9applet浏览指定URL举例: ShowDocument,10,class ButtonListener implements ActionListener public void actionPerformed(ActionEvent e) try URL newDocument = new URL(http:/); AppletContext browser = getAppletContext(); browser.showDocument(newDocument); catch(Exception URLException) ,11.1.2 关于URI(续) 例11_1,Java网络程序设计的基本概念,10 class ButtonListener imple,11,11.1.3 基于套接字的有连接通信,基于套接字(socket)的有连接通信使用TCP协议一个socket必须在发送数据之前与目的地的socket取得连接一旦连接建立了,sockets就可以使用一个流接口完成打开-读-写-关闭,所有的发送的信息都会在另一端以同样的顺序被接收面向连接的操作比无连接的操作效率低,但是数据的安全性高,Java网络程序设计的基本概念,1111.1.3 基于套接字的有连接通信基于套接字(sock,12,用Java建立简单的服务器程序需要五个步骤Step1:创建ServerSocket对象ServerSocket myServer = new ServerSocket (int port, int backlog);Port 指定一个可用的端口号,用来定位服务器上的服务器应用程序backlog指定能够连接到服务器的最多客户数。连接客户达到由backlog指定的最大客户数量时,服务器将拒绝客户连接Step 2:通过ServerSocket的accept方法监听客户连接,服务器无限期的监听客户连接Socket connection = myServer.accept();有一个客户连接时,将产生并返回一个socket,11.1.3 基于套接字的有连接通信(续) 服务器端,Java网络程序设计的基本概念,12用Java建立简单的服务器程序需要五个步骤11.1.3,13,Step 3:通过Socket的方法getInputStream和getOutputStream获取InputStream和OutputStream对象;通常将其他流类型和它们联系起来,如:ObjectInputStream input = new ObjectInputStream( connection.getInputStream( ) );ObjectOutputStream output = new ObjectOutputStream( connection.getOutputStream( ) );Step 4:客户和服务器通过OutputStream和InputStream对象进行通信Step 5:通信传输完毕,服务器通过调用流和套接字的close方法关闭连接,11.1.3 基于套接字的有连接通信(续) 服务器端,Java网络程序设计的基本概念,13Step 3:通过Socket的方法getInputSt,14,在客户端建立简单连接的思路类似,可分为四步Step 1:建立一个Socket,实现与服务器的连接Socket connection = new Socket ( InetAddress address, int port);address:服务器IP地址。port:端口号连接成功,将返回一个Socket,否则产生异常Step 2:通过getInputStream和getOutputStream分别获取Socket的InputStream和OutputStream的引用。同样,也可以将其他流类型与InputStream和OutputStream联系起来Step 3:客户与服务器通过InputStream和OutputStream进行通信Step 4:传输完毕后,通过调用流和套接字的close方法关闭连接,11.1.3 基于套接字的有连接通信(续) 客户端,Java网络程序设计的基本概念,14在客户端建立简单连接的思路类似,可分为四步11.1.3,15,11.4 数据报通信,数据报通信(Datagram Communication)使用用户数据报协议 ( User Datagram Protocol, UDP) 与TCP不同的一种协议不能保证数据会被成功地送达,也不保证数据抵达的次序与送出的次序相同,所以也被称为“不可靠的通信协议”,虽然可靠性不高,但是它的速度很快,所以有些场合也有很大的用处服务器通过DatagramSocket接收或发送信息,这些信息以DatagramPackets 的形式存在DatagramSocket mySocket = new DatagramSocket ( int port );port表示端口,上述语句将服务器绑定到一个可以从客户端接收packet的端口上,如果绑定失败,将产生SocketException异常,Java网络程序设计的基本概念,1511.4 数据报通信数据报通信(Datagram Com,16,客户端应用程序的工作流程Step1:通过创建一个DatagramSocket对象来建立数据报通讯的Socket。有如下两种构造方法public DatagramSocket() 构造一个数据报socket,并使其与本地主机任一可用的端口连接。若打不开socket则抛出SocketException异常。public DatagramSocket(int port) 构造一个数据报socket,并使其与本地主机指定的端口连接。若打不开socket或socket无法与指定的端口连接则抛出SocketException异常,11.1.4 数据报通信(续) 客户端,Java网络程序设计的基本概念,16客户端应用程序的工作流程11.1.4 数据报通信(续),17,Step 2:用DatagramPacket类来创建一个数据报包,用来实现无连接的包传送服务DatagramPacket对象封装了数据报包的数据(bufferedarray,包长度(length),目标地址(address),目标端口(port);length必须小于等于bufferedarry.length DatagramPacket(byte bufferedarray, int length, InetAddress address, int port)DatagramPacket类提供了四个方法来获取信息public byte getData() 返回一个字节数组,包含收到或要发送的数据报中的数据public int getLength() 返回发送或接收到的数据的长度public InetAddress getAddress() 返回一个发送或接收此数据报包文的机器的IP地址public int getPort() 返回发送或接收数据报的远程主机的端口号,11.1.4 数据报通信(续) 客户端,Java网络程序设计的基本概念,17Step 2:用DatagramPacket类来创建一个,18,Step 3:调用DatagramSocket对象的send(DatagramPacket p)方法发送数据报文包Step 4:调用DatagramSocket对象的receive(DatagramPacket p)方法接收从服务器返回的结果数据报文包该DatagramPacket对象用到另一种构造方法,只需指明存放接收的数据报的缓冲区和长度 DatagramPacket(byte bufferedarray, int length)receive方法会一直阻塞,直到收到一个数据报文包,此时DatagramPacket的缓冲区中包含的就是接收到的数据,也包含发送者的IP地址,发送者机器上的端口号等信息Step 5:处理接收缓冲区内的数据,获取服务结果Step 6:通讯完成后,使用DatagramSocket对象的close()方法来关闭数据报通讯Socket,11.1.4 数据报通信(续) 客户端,Java网络程序设计的基本概念,18Step 3:调用DatagramSocket对象的se,19,服务器端应用程序的工作流程 与客户端应用程序的通讯过程使非常相似 建立数据报通讯DatagramSocket构建数据报文包DatagramPacket接收数据报和发送数据报,处理接收缓冲区内的数据通讯完毕后,关闭数据报通讯Socket不同的是,服务器应用程序要面向网络中的所有计算机,所以服务器应用程序收到一个包文后要分析它,得到数据报的源地址信息,这样才能创建正确的返回结果报文给客户机,11.1.4 数据报通信(续) 服务器端,Java网络程序设计的基本概念,19服务器端应用程序的工作流程 11.1.4 数据报通信(续,20,11.5 Servlet,Servlet是用java技术来实现CGI(Common Gateway Interface, 通用网关接口)功能的编程介于浏览器(或其他HTTP客户端)与服务器之间,起到桥梁的作用。具体作用为:读取客户端发送的数据获取客户请(request)中所包含的信息产生响应结果,并将结果包含到一个文件中,比如HTML文件中设置HTTP响应参数,比如告诉浏览器,文件类型为HTML将文件返回给客户端Servlet的应用并不限于处理HTTP请求的网页或者应用程序服务中,还可以置入到邮件或FTP服务程序中,Java网络程序设计的基本概念,2011.5 ServletServletJava网络程序设,21,与传统的CGI相比,Servlet具有很多优点高效率通过Servlet,Java虚拟机用轻量级的Java线程处理每个请求。同时有N个请求的情况下,CGI程序需要被调入到服务器内存N次;对于Servlet将开启N个线程,但仅仅调入一个Servlet实例到内存中应用方便Servlet在解析和译码HTML数据,读取设置HTML标题,操作Cookie等很多方面,应用更加方便。继承自java的特点,其可靠性与复用性好功能强大Servlet可以直接与Web服务程序对话;多个Servlet可以共享数据;Servlet与数据库的连接也比较简单等,11.1.5 Servlet(续) 优点,Java网络程序设计的基本概念,21与传统的CGI相比,Servlet具有很多优点11.1.,22,便携性好Servlet用Java语言编写,遵循标准的API。因此Servlet编写的程序可以无任何修改的在Apache,Microsoft Internet Information Server(IIS),IBM WebSphere,或者StarNine WebStar 上运行。同样具有一次编译,到处运行移植性好的特点安全基于Java语言的安全特性,Servlet的安全性也比较可靠成本低有很多免费或相对比较便宜的Web服务器,适合做个人的或者小容量的网站。而且很多商业级的Web服务器相对也比较便宜。而且使一个服务器支持Servlet所需的额外花费也很少,11.1.5 Servlet(续) 优点,Java网络程序设计的基本概念,22便携性好11.1.5 Servlet(续),23,11.2 Servlet基础,本节内容包括Servlet容器、web服务器、应用服务器Web应用程序Servlet APIServlet的基本结构Servlet编译和安装,2311.2 Servlet基础本节内容包括,24,11.2.1 Servlet容器、Web服务器和应用服务器,Servlet容器也称为Servlet引擎是一个编译好的可执行程序,它是web服务器与servlet间的的媒介负责将请求翻译成Servlet能够理解的形式传递给servlet,同时传给servlet一个对象使之可以送回响应负责管理servlet的生命周期,Servlet 基础,2411.2.1 Servlet容器、Web服务器和应用服务,25,web服务器能够处理Http请求的服务器可以提供静态页面、图像等有的web服务器也支持动态页面的生成,支持JSP、Servlet等,具有JVM应用服务器可以处理基于多种协议的请求,当然也包括Http协议可以支持servlets和JSP,以及所有其他J2EE服务,包括JNDI、EJBs、JMS等,11.2.1 Servlet容器、Web服务器和应用服务器(续),Servlet 基础,25web服务器11.2.1 Servlet容器、Web服务,26,servlet容器可以与web服务器协作提供对servlet的支持一些servlet容器(如Apache Tomcat)自己也可以作为独立的web服务器运行随着servlet和JSP的流行,一些主要的Web服务器和应用程序服务器都直接或者通过插件支持servlet和JSP。如:Sun ONE Application ServerLotus Domino Go WebServerBEA weblogic Tengah ServerWebSphere应用服务器JigsawNetForgeAcmeServerMot Bays Jetty,11.2.1 Servlet容器、Web服务器和应用服务器(续),Servlet 基础,26servlet容器可以与web服务器协作提供对servl,27,Apache Tomcat 5 是servlet2.4和JSP2.0规范的官方参考实现完全免费,并且提供完整的源代码可以到http:/jakarta.apache.org/tomcat/ 下载最新版本初始设置设置JAVA_HOME。假设JDK安装在C: j2sdk1.4.2,可以仿照path和classpath的设置方法,新建一个环境变量:JAVA_HOMEC: j2sdk1.4.2,11.2.1 Servlet容器、Web服务器和应用服务器(续) Apache Tomcat 5服务器及其初始设置,Servlet 基础,27Apache Tomcat 5 11.2.1 Servl,28,为方便调试,还可进行如下设置启动servlet重新载入功能(所请求servlet类文件发生变化后,自动重新载入到服务器内存)。打开install_dir/conf/server.xml,在注释 后插入语句 开启servlet调用器invoker servlet(可以不修改Web应用的web.xml文件即可运行servlet)。打开install_dir/conf/web.xml,将servlet-mapping元素取消注释 invoker /servlet/*,11.2.1 Servlet容器、Web服务器和应用服务器(续) Apache Tomcat 5服务器及其初始设置,Servlet 基础,28为方便调试,还可进行如下设置11.2.1 Servlet,29,11.2.2 Web应用程序,Web应用程序组成部分包括servlet、JSP及其支持文件这些组成部分需要进行部署通常部署在Tomcat的webapps子目录中。一般其目录结构包括根目录(context root)和几个子目录,也可以把子目录捆绑到一个类型为war的存档文件中,Servlet 基础,2911.2.2 Web应用程序Web应用程序Servlet,30,11.2.2 Web应用程序(续),webapps子目录一般包括,WEB-INF包含Web应用程序的部署描述文件(web.xml)在web.xml文件中配置Web应用程序。可以制订各种配置参数:调用servlet的名称、servlet的描述、servlet的完全的类名和servlet容器调用servlet的路径修改web.xml的部署描述符后,需要重新启动Tomcat服务器WEB-INF/classes包括Web应用程序中所使用的servlet和实用工具类文件。如果类文件是包的组成部分,则包的目录结构从该目录开始WEB-INF/lib包含Java存档文件(JAR文件),是servlet和实用工具类文件,Servlet 基础,3011.2.2 Web应用程序(续)webapps子目录一,31,11.2.2 Web应用程序(续),Servlet 基础,3111.2.2 Web应用程序(续)Servlet 基础,32,11.2.3 Servlet API,Servlet API开发servlet和JSP程序,需要参考Servlet API文档包含javax.servlet和javax.servlet.http两个包中所有servlet须实现javax.servlet.Servlet接口,通常继承如下两个类中的一个GenericServletHttpServlet,Servlet 基础,3211.2.3 Servlet APIServlet AP,33,Servlet接口所有servlets 必须实现这一接口Servlet接口的所有方法都是被自动调用的HttpServlet类覆盖了javax.servlet.Servlet接口的service方法service方法由servlet容器调用,对客户端的请求作出响应。它会根据请求类型的不同自动调用doGet或doPost等方法能够处理两个最普通的 HTTP 请求类型doGet方法 响应 get 请求doPost 方法响应 post 请求,Servlet 基础,11.2.3 Servlet API(续),33Servlet接口Servlet 基础11.2.3 Se,34,11.2.3 Servlet API(续),HttpServletRequest接口由Web服务器创建该接口的一个对象,并将其传递给servlet的 service 方法该类对象含有来自于客户端的请求HttpServletResponse接口由Web服务器创建该接口的一个 对象,并将其传送给servlet的 service 方法通过该类对象服务器端可以对客户端发出响应信息,Servlet 基础,3411.2.3 Servlet API(续)HttpSer,35,11.2.3 Servlet API(续) HttpServletRequest接口,Servlet 基础,3511.2.3 Servlet API(续),36,11.2.3 Servlet API(续) HttpServletResponse接口,Servlet 基础,3611.2.3 Servlet API(续),37,11.2.4 Servlet的基本结构,Servlet的基本结构一般扩展自HttpServlet复写doGet或者doPost方法doGet或doPost都接收两个类型的参数:HttpServletRequest和HttpServletResponse通过HttpServletRequest,可以得到所有的输入数据,比如表单数据、HTTP请求报头等客户信息通过HttpServletResponse可以指定输出信息由于doGet和doPost方法可能生成异常,必须在方法名称后声明抛出异常或者用try-catch语句处理异常,Servlet 基础,3711.2.4 Servlet的基本结构Servlet的基,38,GET请求是WEB浏览器请求的常见类型,用来请求Web页面。 本例中通过doGet方法处理GET请求。在doGet方法中通过HttpServletResponse对象得到PrintWriter,然后将一个文档发给客户。最终在客户端生成一个网页import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MyServlet extends HttpServlet public void doGet( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException res.setContentType(text/html); PrintWriter out = res. getWriter(); out.println(); out.println(My First Servlet ); out.println(); out.println( First Servlet ); out.println();,11.2.4 Servlet的基本结构(续) 例11_2,Servlet 基础,38GET请求是WEB浏览器请求的常见类型,用来请求Web页,39,11.2.5 Servlet编译和安装,编译在设置好path和classpath的前提下,servlet的编译和普通的java程序完全相同可以通过javac.exe编译,比如可以在Dos环境下输入:javac MyServlet.java也可以通过集成开发环境(IDE)编译复制编译成功之后,将生成的类文件复制到相应的目录下即可。在Tomcat服务器上,此目录可能是 install_dirwebappsROOTWEB-INFclasses运行启动Tomcat服务器,在地址栏输入 http:/localhost:8080/servlet/MyServlet,Servlet 基础,3911.2.5 Servlet编译和安装编译在设置好p,40,11.3 Servlet的生命周期,首先服务器仅创建servlet的一个实例创建servlet实例时,它的init方法都会被调用针对每个客户端的每个请求,都会创建一个线程该线程调用servlet实例的service方法Service方法根据收到HTTP请求得类型,调用doGet,doPost或者其他方法多个并发请求,一般会导致多个线程同时调用service方法,通过单线程模式(SingleThreadModel)也可以规定任何时间仅允许一个线程运行最后,卸载servlet服务器调用servlet的destroy方法,4011.3 Servlet的生命周期首先服务器仅创建ser,41,11.3 Servlet的生命周期(续) Servlet生命周期示意图,服务器,服务器,Servlet代码,服务器,客户端,客户端,装载,Servlet代码,卸载,Servlet代码,处理客户端请求,Servlet 的生命周期,4111.3 Servlet的生命周期(续) S,42,11.3.1 初始化,servlet的初始化服务器启动,servlet被用户首次调用,服务器构造servlet实例之后,即立刻调用init(ServletConfig)方法,执行servlet实例的初始化工作ServeletConfig对象包含servlet初始化所需的很多参数,比如计数器、默认值等init方法都会在servlet处理客户请求(request)之前被调用一旦init方法被调用,只有服务器通过destroy方法销毁servlet之后,init方法才能再次被调用,Servlet 的生命周期,4211.3.1 初始化servlet的初始化Servlet,43,11.3.1 初始化(续),init方法的定义public void init(ServletConfig config) throws ServletExceptionsuper.init(config);String greeting = getInitParameter(greeting);/ Initialization code,Servlet 的生命周期,4311.3.1 初始化(续)init方法的定义Servle,44,11.3.2 销毁,servlet的销毁服务器卸载servlet实例之前,需要先调用servlet的destroy方法释放servlet所获得的资源使servlet有机会关闭数据库连接、停止后台运行的线程、将cookie列表和点击数写入到磁盘执行其他清理活动,Servlet 的生命周期,4411.3.2 销毁servlet的销毁Servlet 的,45,11.4 与客户端交互,HTTP servlet与客户端的交互通过service方法处理客户端的请求service方法根据请求(request)类型的不同,调用不同的方法对于GET请求,调用doGet( )方法进行处理对于POST请求,调用doPost( )方法进行处理,4511.4 与客户端交互HTTP servlet与客户端的,46,11.4.1 提取Servlet信息,注册的servlet都有相关的很多初始化参数这些初始化参数写在web.xml中,具体语法格式请参阅Tomcat文档getInitParameter()方法可以得到servlet初始化的一些参数返回一个指定参数的值(String类型)如果指定参数不存在,则返回nullgetInitParameterNames()方法可以得到初始化参数名称返回String类型的Enumeration类型数据如果不存在初始化参数,则返回一个null的Enumeration,与客户端交互,4611.4.1 提取Servlet信息注册的servlet,47,通过servlet初始化参数建立一个数据库连接的程序段如下java.sql.Connection con = null;public void init(ServletConfig config) throws ServletException super.init(config);String host = getInitParameter(host);int port = Integer.parseInt(getInitParameter(port);String db = getInitParameter(db);String user = getInitParameter(user);String password = getInitParameter(password);String proxy = getInitParameter(proxy);con = establishConnection(host, port, db, user, password, proxy);,11.4.1 提取Servlet信息(续) 通过初始化建立数据库连接,与客户端交互,47通过servlet初始化参数建立一个数据库连接的程序段如,48,输出全部初始化参数名称import java.io.*;import java.util.*;import javax.servlet.*;public class PrintInitParaNames extends GenericServlet public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException res.setContentType(text/plain); PrintWriter out = res.getWriter(); out.println(Init Parameters As Following:); Enumeration enum = getInitParameterNames(); while (enum.hasMoreElements() String name = (String) enum.nextElement(); out.println(name : + getInitParameter(name); ,11.4.1 提取Servlet信息(续) PrintInitParaNames.java,与客户端交互,48输出全部初始化参数名称11.4.1 提取Servlet信,49,11.4.2 提取服务器信息,servlet可以得到很多服务器相关的信息,同时可以将这些信息发送到客户端getServerName()返回服务器名称getServerPort()返回服务器监听端口getServerInfo()输出服务器程序和版本,之间用“/”分开getAttribute()返回服务程序的属性得到路径相关的信息public String HttpServletRequest.getPathInfo()public String HttpServletRequest.getPathTranslated(),与客户端交互,4911.4.2 提取服务器信息servlet可以得到很多服,50,提取服务器信息举例 import java.io.*;import java.util.*;import javax.servlet.*;public class ServerSnoop extends GenericServlet public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException res.setContentType(text/plain); PrintWriter out = res.getWriter(); out.println(req.getServerName() output: + req.getServerName(); out.println(req.getServerPort() output: + req.getServerPort(); out.println(getServletContext().getServerInfo() output: + getServletContext().getServerInfo() ); out.println(getServletContext().getAttribute(attribute) output: + getServletContext().getAttribute(attribute) ); ,11

    注意事项

    本文(Java语言程序设计-Servlet程序设计解析课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开