第二章 Servlet基础

这章我们主要的目标

理解Servlet

Servlet的编码和部署

Servlet生命周期

Servlet的配置

Servlet与容器交互 

 

什么是Servlet

-是运行在Web服务器或应用服务器上的Java程序

-在Web上创建动态内容的有效而强大的解决方案

-由容器来管理生命周期与Web服务器交互

-由Sun规范了其功能 

 

Servlet的规范组成  

Web应用程序  Servlet和HTTPServlet   过滤器  安全  国际化  

 

 

Servlet生命周期

Servlet遵循三阶段的生命周期:初始化  服务  销毁

初始化 销毁通常执行一次,服务可以执行多次。

所有的Servlet必须实现javax.servlet.Servlet接口。这个接口定义了 init();service(ServletRequest req, ServletResponse resp);destory();

 

 

Servlet的编码和部署

创建部署文件 (web.xml):

   一般在创建工程的时候,又有默认的web.xml;这时就不需要创建了

 

在容器中注册servlet:

<servlet>
      <servlet-name>OutputStream</servlet-name>
      <servlet-class>com.cy.OutputStream</servlet-class>
</servlet>

映射servlet:

<servlet-mapping>
       <servlet-name>OutputStream</servlet-name>
       <url-pattern>/OutputStream</url-pattern>
</servlet-mapping>

 

servlet配置:

为Servlet提供初始化配置信息

配置信息由web.xml声明中的字符串组成

 

eg:

<servlet>
    ....
  <init-param>
     <param-name>name</param-name>
     <param-value>Kitty</param-value>
  </init-param>

<init-param>
     <param-name>name1</param-name>
     <param-value>Kitty1</param-value>
  </init-param>

</servlet>

Servlet在编译的代码之外有初始化参数,当参数改变时,不需要重新编译Servlet  ,每个servlet都有一个与之相联的对象ServletConfig; (在servletConfig对象中包含了servlet的初始化参数信息。)

得到指定的参数value:String value= getServletConfig().getInitParameter(“name"); 

得到所有的所有的参数value:需要应用一个ServletConfig中的一个方法:getInitParameterNmes():返回一个Enumeration(枚举)对象,里面包含了所有的初始化参数。

 

  1. Enumeration e = this.getServletConfig().getInitParameterNames();  
  2.         while(e.hasMoreElements()){  
  3.             String name = (String)e.nextElement();  
  4.             String value = this.getServletConfig().getInitParameter(name);  
  5.             System.out.println(name+"="+value);  
  6.         }  
  7.     }  

 

ServletContext 应用上下文:

 

属于整个Web应用程序

可以访问到Web应用程序资源的本地输入流

把资源的虚拟路径转换为物理路径

记录事件日志

绑定一个对象在整个Web应用程序中共享

 

初始化web应用程序参数:

 <web-app>

 …

 <context-param>

     <param-name>admin email</param-name>

     <param-value>admin@cy.com</param-value>

  </context-param>

     …

</web-app>

 

在Servlet中共享信息

为所有的Servlet设置一个实时变化的参数值

在Web应用程序中共享一个对象

eg:

servletContext.setAttribute("password", "tiger");

String password = (String) servletContext.getAttribute("password");

虚拟路径转换为物理路径:

getResourcePaths(java.lang.String path):返回一个集合,路径必须从Web应用程序的根“/”开始;

getResourceAsStream(java.lang.String path):返回一个InputStream对象。当一个资源需要逐字节读取的时候该方法比较适用。

getResource(java.lang.String path):返回一个Web资源列表。

 

 

 

 

时间: 2024-10-31 08:01:27

第二章 Servlet基础的相关文章

JAVA AJAX教程第二章-JAVASCRIPT基础知识

开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用代码和事件汇总. 一.基础知识: 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,

《C# to IL》第二章 IL基础

-2- 如果你真的想要理解C#代码,那么最好的方法就是通过理解由C#编译器生成的代码.本章 和下面两章将关注于此. 我们将用一个短小的C#程序来揭开IL的神秘面纱,并解释由编译器生成 的IL代码.这样,我们就可以"一箭双雕":首先,我们将揭示IL的奥妙,其次,我们将会更 加直观地理解C#编程语言. 我们将首先展示一个.cs文件,并随后通过C#编译器以IL编写一个程序 .它的输出和cs文件是相同的.输出将会显示IL代码.这会增强我们对C#和IL的理解.好吧,不再啰嗦, 这就开始我们的冒险

初学JavaScript第二章_基础知识

JavaScript的对象都是实例化了的,只可以使用而不能够创建继承于这些对象的新的子类. window对象为所有对象的Parent window对象的主要属性有:Name,Length,Parent,Self,Top,Status,Default Status,Opener,Closed. window对象的主要方法有:Item,alert,blur,close,confirm,open,focus,showModalDialog. Document对象的常用属性:alinkcolor,Anc

第二章 算法基础

2.1 插入排序 C++实现: #include<iostream> using namespace std; void InsertSort(int arr[],int n) { int i,j,key; for(i=1;i<n;++i) { key=arr[i]; j=i-1; while(j>=0&&key<arr[j]) { arr[j+1]=arr[j]; j--; } arr[j+1]=key; } } int main() { int arr[1

&amp;gt; 第二章 NGWS Runtime 技术基础(rainbow 翻译) (转自重粒子空

<<展现C#>> 第二章 NGWS Runtime 技术基础(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch02.shtml 正文: 第二章  NGWS  runtime 技术基础     既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.    所以,这一章分为两部分--它

《Abaqus GUI程序开发指南(Python语言)》——第二章 Python语言基础2.1 Python语言的特点

第二章 Python语言基础 Abaqus GUI程序开发指南(Python语言)Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程(object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注.Python具有开源.自由等特征.它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用程序开发. 本章将简要介绍P

论坛营销的基础知识(第二章)

中介交易 SEO诊断 淘宝客 云主机 技术大厅 上一篇我们介绍的<论坛营销的基础知识(第一章)>简单的回顾下; 论坛营销的基本特点: 1.针对性强 2.氛围好 3.口碑宣传 4投入少,见效快 5.掌握用户信息 论坛营销的要素:天时,地利,人和 今天笔者周旭昇为大家继续介绍论坛营销的基础知识(第二章)操作步骤 第一.了解用户的需求 单从了解需求这一部分讲,我们需要了解的事情有很多; 1.目的:有很多人在做营销的时候不知道自己想要什么,为了什么,没有一个明确的目标,盲目的就去投入,听说人家怎么做,

第二章、进程的描述与控制

第二章.进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序. 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果. 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义

《.net编程先锋C#》第二章 理论基础-公用语言 运行环境(转)

编程 第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.所以,这一章分为两部分--它们是所有的概念和使用的基础.两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念. 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境.该运行时管理执行代码,并提供了使编程更容易的服务.只要你的编译器支持这种运行时,你