`
huinet
  • 浏览: 81774 次
  • 性别: 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
分享到:
评论

相关推荐

    web练习题 jsp servlet

    web练习题 jsp servlet相关内容

    Servlet进阶的相关内容

    NULL 博文链接:https://meipeng1114-163-com.iteye.com/blog/1127789

    servlet temple

     Servlet是使用Java Servlet 应用程序设计接口(API)及相关类和方法的 Java 程序。除了 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件包。Servlet 在启用 Java 的 Web 服务器上或应用...

    09配置+servlet+高速缓存

    这些副作用可能包含对其他 servlet 或 Java Server Pages(JSP)文件的调用,或有关条目的元数据,包括超时和条目优先级信息。配置 servlet 高速缓存以将 servlet 的输出和 JavaServer Pages(JSP)文件保存到动态...

    servlet的快速入门, 执行查询全部

    servlet的快速入门, 执行查询全部,涉及jstl内容及servlet相关内容 web项目的打包 部署 等

    servlet3 api 文档

    java web开发必备文档,详细介绍了servlet 相关方法和内容,是开发人员日常查询必备文档

    Servlet3.1规范文档

    详细介绍了SERVLET3.1规范相关内容,界面清晰,带完整目录,学习JAVA的同学不要错过

    深入Java Servlet网络编程

    1 相关的HTTP协议的规定 6. 3. 2 使用Servlet下载文件实例 第7章 在Servlet中使用数据库 7. 1 JDBC概述 7. 1. 1 JDBC驱动程序的类型 7. 1. 2 使用JDBC 7. 1. 3 使用JDBC的实例 7. 2 连接地 7. 2. 1 ...

    servlet工作原理

    该资源是达内java web 培训课程的servlet部分内容,学习相关视频请联系达内相关人员,本人提供的仅仅是配套视频自己整理的笔记。

    java-servlet-api.doc

    当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载一个...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...

    servlet局部刷新及json字符串

    1.纯servlet+jquery局部刷新...2.fresh 后台包含 json内容,需要json相关jar包,自行下载,不需要的可以删除; 3.有页面点击事件,初学者可以研究下; 4.QQ569317668 不喜勿喷 servlet局部刷新及json字符串 相互学习!

    Web服务启动时自动加载Servlet,并读取数据库内容

    然后我们来修改我们的代码,让这个Servlet可以读取数据库的内容,并进行相关的处理。 我操作数据库用的是spring的HibernateTemplate和JdbcTemplate,访问数据库是以bean注入的方式,在action里注入service的实现,...

    Servlet 解析AJAX 传递的JSONArray

    Servlet 处理 AJAX中传递的JSON格式参数,JSON中含有JSONArray!在网上搜索资源时发现没有相关内容,所以自己写了一下跟大家一起分享!如有雷同,纯属巧合!第一次传资源,有不好的地方希望大家提出建议!

    Servlet与JSP核心编程带完整书签

    本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。本书的例子简练真实,将复杂的任务拆分成多个步骤逐一介绍,大大减轻了读者阅读的负担。另外...

    Servlet与JSP核心编程(第二版 源码

    本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。本书的例子简练真实,将复杂的任务拆分成多个步骤逐一介绍,大大减轻了读者阅读的负担。另外...

    servlet相关资料介绍.zip

    servlet,Servlet是一种基于Java的Web技术,它允许开发者创建可以接收客户端请求并生成响应的服务器端应用...Servlet通常被用作Web应用程序的控制器,处理用户的输入,生成动态内容,并与数据库或其他资源进行交互。

Global site tag (gtag.js) - Google Analytics