`
huinet
  • 浏览: 83570 次
  • 性别: Icon_minigender_1
  • 来自: 郑州市
社区版块
存档分类
最新评论

servlet 相关内容

    博客分类:
  • J2EE
阅读更多

Servlet和Servlet容器:

 

我们通过浏览器访问一个网页的过程,实际上是浏览器通过HTTP协议和WEB服务器进行

交互的过程。也就是说,用户要访问网络资源,首先需要在网络上架设Web服务器来为

用户提供 内容服务,所有的内容都存在与服务器端,客户端发出请求,服务器端对对

请求作出响应,将用户请求的资源发送到客户端。

 

开发WEB应用程序一般是利用已经实现了HTTP协议的服务器端软件,这些软件为我们提

供了扩展的接口,我们只需要按照一定的规则去提供相应的扩展功能。当这类Web服务

器接受到客户请求后,判断请求是否访问我们提供的扩展功能,如果是,就将请求交由

我们所编写的程序去处理。当处理完成后,程序将处理结果交给Web服务器软件,web服

务器再将结果作为相应信息返回给客户端。

 

在Java中,给我们提供了编写扩展功能的技术——Servlet。Java Servlet(Java服务

器小程序)是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,

用于生成动态的内容。Servlet是平台独立的Java类,编写一个Servlet,实际上就是按

照Servlet规范写一个Java类。Servlet被编译为平台中立的字节码,可以被动态加载到

支持Java技术的Web服务器中运行。

 

Servlet容器有时也叫Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在

发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。

Servlet容器在Servlet的生命周内包容和管理Servlet。

Servlet容器根据工作模式的不同,分三类:

1、独立的Servlet容器;

2、进程内的Servlet容器;

3、进程外的Servlet容器。


注:

Catalina :Tomcat 源于 Apache Jakarta 的开放源代码项目。Tomcat 是一种 Web 容

器,其中包括 servlet 和 JSP 容器(引擎)。从Tomcat4.0x中采用了新的Servlet容

器catalina。


Servlet接口:

接口提供了5个方法:

 

1、public void init(ServletConfig config)throws ServletException
   init():在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,

主要是为了让Servlet对象在处理客户请求前完成一些初始化工作,例如:建立数据库

的连接,获取配置信息等。对于每个Servlet实例,init()方法只能被调用一次。

servlet容器通过参数config向Servlet传递配置信息。Servlet使用ServletConfig对象

从Web应用程序的配置信息中获取以名-值对形式提供的初始化参数。另外,在Serlet

中,还可以通过ServletConfig对象获取描述Servlet运行环境的ServletContext对象,

使用该对象,Servlet可以和它的容器进行通信。

 

2、public vlid service(ServletRequest req,ServletResponse res)throws

ServletExcepton,java.io.IOException
   service():容器调用service()方法来处理客户端的请求。要注意的是,在service

()方法被容器调用之前,必须确保init()方法正确完成。容器会构造一个表示客户端请

求信息的请求对象(类型为ServletRequest)和一个用于响应的响应对象

(ServletReponse)作为参数传递给service()。

 

3、public void destory()
   当容器检测到一个Servlet对象应该从服务中被移出的时候,容器会调用该对象的

destory()方法,以便让Servlet对象可以释放所使用的资源,以保存到持久存储设备中

。例如:将内容中的数据保存到数据中,关闭数据库连接等。  


4、public ServletConfig getServletConfig()
   getServletConfig():该方法返回容器调用init()方法时传递给Servlet对象的

ServletConfig对象,ServletConfig对象包含了Servlet的初始化参数。

 

5、public java.lang.String.getServletInfo()
   getServletInfo():返回一个String类型的字符串,其中包括了关于Servlet的信息

,例如作者、版本和版权。

 

GenericServleta:

 

如果我们直接通过实现Servlet接口来编写一个Servlet类,就需要实现Servlet接口中定义的5中方法,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象的类GenericServlet,它提供了除service()方法外的其他4种方法的简单实现。GenericServlet类定义了一个通用的、不依赖于具体协议的Servlet,它实现了Servlet接口和ServletConfig接口。

如果我们要编写一个通用的Servlet,只需要从GenericServlet类继承,并实现其中的抽象方法service()。

 

GenericServlet类中,提供了两种重载的init()方法:


·public void init(ServletConfig config)throws ServletException


·public void init()throws ServletException


第一种init()方法是Servlet接口中init()方法的实现。这种方法中,首先将ServletConfig对象保存在一个transient实例变量中,然后调用第二种不带参数的init()方法。


通常我们在编写集成自GenericServlet的Servlet类时,只需重写第一种不带参数的init()方法就可以了。如果覆盖了第一种init()方法,那么应该在子类的该方法中,包含一句super.init(config)代码调用。

 


HttpServlet:

在应用中都是浏览器通过HTTP协议去访问服务器端的资源,而我们所编写的Servlet也主要应用于HTTP协议的请求和响应。Sun公司在javax.servlet.http包中给我们提供了一个抽象的类HttpServlet,它继承自GenericServlet类,用于创建适合Web站点的HTTPServlet。

 

HttpServlet提供了两种重载service()方法:
·public void service(ServletRequest req,ServletResponse res)throws ServletExcepton,java.io.IOException


·public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException

 

第一种service()方法是GenericeServlet类中的service()方法的实现。在这种方法中,首先将req和res对象转换为HttpServletRequest(继承自ServletRequest接口)和HttpServletResponse(继承自ServletResponse接口)类型,然后调用第二种service()方法,对客户请求进行处理。

 

针对HTTP1.1中定义的7种请求方法Get、Post、Head、Put、Delete、Trace和Options、HttpServlet分别提供了7种处理方法。


HttpServlet虽然是抽象类,但在这个类中没有抽象的方法,其中所有的方法都是已经实现的。只是在这个类中对客户请求进行处理的方法,没有真正的实现,当然也不可能真正的实现。

 

 

Servlet定义两个异常类:ServletException和UnavailableException。

ServletException类定义了一个一般的异常,可以被init()、service()、doXXX()方法抛出,这个类提供了下面4种构造方法和1种实例方法。


·public ServletException()
  构造一个新的servlet异常


·public ServletException(java.lang.String.message)
  message可以被写入服务器的日志中,或者显示给用户。


·public ServletException(java.lang.String.message,java.lang.Throwable rootCause)
  在Servlet执行时,如果有一个异常阻碍了servlet的正常操作,那么这个异常就是根原因(rootcause)异常。

 

·public ServletException(java.lang.Throwable rootCause)


·public java.lang.Throwable getRootCause()
  该方法返回引起这个servlet异常的异常,也就是返回根原因的异常。

 

 

UnavailableException类:

UnavailableException类是ServletException类的子类,该异常被Servlet抛出,用于向Servlet容器指示这个Servlet永久的或者暂时的不可用。提供了下面2中构造方法和3种实例方法。


·public UnavailableException(java.lang.String msg)
  该方法用一个给定的消息构造一个新的异常,指示Servlet永久不可用。


·public UnavailableException(java.lang.String msg,int seconds)
  暂时不可用,secondes内不可以用。


·public int getUnavailableSecondes()
  该方法返回Servlet预期的暂时不可用的秒数。负数表明永久不可以用或估计不出。


·public boolean isPermanent()
  该方法返回一个布尔值,返回true,表明是否永久不可以用。false表示可用或暂时不可用。

 

 

 

 

未完待续!

 

servlet 例子见附件。可直接导入到eclipse.

  • TServlet.rar (4 KB)
  • 描述: servlet 小例子
  • 下载次数: 10
1
1
分享到:
评论

相关推荐

    Servlet进阶的相关内容

    这篇博客"Servlet进阶的相关内容"可能深入探讨了Servlet的高级特性和实践应用。由于没有直接提供博客的具体内容,我会根据Servlet的常见进阶主题进行详细的阐述。 1. **Servlet生命周期**:Servlet在服务器启动时...

    javaservlet的一些内容

    `SessionServlet.java` 文件名暗示这是一个实现了Servlet接口的类,专门处理与HTTP会话(Session)相关的操作。在Web开发中,会话跟踪是保持用户状态的关键,特别是对于需要用户登录或需要记住用户信息的应用程序。...

    java Servlet学习笔记

    以下是对Servlet相关内容的详细说明: 一、Servlet概述 1.1 B/S架构(Browser/Server浏览器-服务器架构) B/S架构是一种基于互联网的软件应用模式,用户通过浏览器进行交互,服务器负责处理请求并返回数据。这种...

    servlet相关的实例(共三个包)第一包

    在这个“servlet相关的实例(共三个包)第一包”中,我们可以深入理解如何使用Servlet技术来构建实际的应用程序,比如人力资源管理系统。这个压缩包包含源码下载和一个使用JSP(JavaServer Pages)和Servlet实现的人力...

    servlet-ppt java web相关servlet课件

    - Servlet是一个Java类,它扩展了Java平台,使得Java可以用来处理Web应用程序中的动态内容。 - 通过实现Servlet接口或继承HttpServlet基类来创建Servlet。 - Web服务器通过Servlet容器(如Tomcat)来加载和运行...

    servlet-api_servlet_

    在描述中提到的"全新的servlet相关jar包,值得学习与研究",暗示了这是一个新的版本或者更新,包含了最新的Servlet规范和API。学习和研究Servlet API对于理解Web服务器如何处理HTTP请求,以及如何编写服务端代码来...

    serlvet 源码 servlet-src 源文件

    在这个压缩包中,我们可能会找到`javax`包,这是Java标准库的一部分,包含了Servlet相关的类和接口。 Servlet API主要包含以下几个核心概念: 1. **Servlet接口**:所有Servlet都必须实现这个接口,它定义了...

    servlet-api中文文档

    在`jsp.txt`文件中,可能包含了关于JSP指令、表达式、脚本元素、动作标签等相关内容的解释。 1. JSP指令:如`<%@ page %>`, `<%@ include %>`, 和`<jsp:directive>`,它们用于配置整个JSP页面或引入其他资源。 2. ...

    servlet的小demo

    让我们详细了解一下Servlet及其相关知识。 1. **Servlet概述**: Servlet是一个Java类,它扩展了Java平台的服务能力,特别是对于Web服务器。Servlet可以处理来自客户端的请求,执行业务逻辑,然后生成动态内容返回...

    servlet实现留言板

    至于压缩包中的"ServletMessage",这可能是项目的源代码文件夹,包含了实现留言板功能的Servlet类、Javabean类以及相关的HTML和JSP文件。在实际开发中,我们可能会看到如`MessageServlet.java`、`MessageBean.java`...

    servlet-api.jar和javax.servlet.jar

    Servlet-API.jar和javax.servlet.jar是Java Web开发中两个至关重要的库文件,它们包含了Servlet和相关API的实现。在深入理解这两个文件之前,我们先要了解Servlet的概念。 Servlet是一种Java类,它扩展了服务器的...

    servlet入门经典笔记

    这些方法会从ServletRequest对象中获取请求参数,并通过ServletResponse对象设置响应内容。 ServletConfig对象提供了初始化参数和ServletContext的访问。初始化参数是在Servlet部署描述符(web.xml)中定义的,可供...

    com.oreilly.servlet

    "com.oreilly.servlet" 是一个与Java Servlet相关的库,主要由O'Reilly Media公司提供。Servlet是Java编程语言中用于开发动态Web应用程序的核心技术。它允许Java代码响应来自Web客户端(如浏览器)的请求,并生成...

    javax.servlet.jar包下载

    当您在项目中遇到“找不到类”或“类路径异常”与Servlet相关的错误时,可能是因为缺少了这个jar包。 1. **Servlet简介** Servlet是Java中用于扩展服务器功能的接口和类的集合。它们是Java EE的一部分,允许开发者...

    基于Servlet的购物系统

    在ShoppCar这个子文件中,可能包含了购物车相关的Servlet类、JSP页面、数据库操作代码、甚至可能有专门处理购物车操作的过滤器或监听器。通过对这个文件的深入理解和修改,我们可以完善购物系统的购物车功能,比如...

    servlet的jar包

    在实际应用中,Servlet常与JSP(JavaServer Pages)结合使用,提供动态内容生成。Servlet负责处理业务逻辑和数据交互,而JSP则用于展示视图。此外,Servlet还可以配合Filter(过滤器)实现请求和响应的拦截、URL重写...

    servlet练习项目pdf与代码

    `SQL文件`可能用于创建数据库表或者填充初始数据,与Servlet项目中的数据存储部分有关,例如用户信息、文章数据等。 通过这个练习项目,学习者可以全面掌握Servlet的使用,包括编写Servlet类、处理HTTP请求、与...

Global site tag (gtag.js) - Google Analytics