Servlet基础(一)

servlet

一, 什么是Servlet?

Servlet是符合Servlet API规范的,在Web服务器上装载和执行的能够接受客户请求(通过Web服务器),执行任务并返回结果的Java类,地位像客户端的Applet。因为它本身是一个JAVA类,所以它拥有JAVA的所有优点,还有自己的一些优点:与其它资源交互;安全性;与协议无关。

二, 三角关系

规范制定者,容器提供者,组件开发者。

Servlet API的正式称呼是JSR(JAVA请求规范),它是JCP(JAVA社团处理过程)的一部分。在JSR公布之前,他会提供示例代码,这不仅用于检验设计,而且为容器提供商(Servlet引擎)和开发人员提供示例。这个称做参考实现(RI)。Apache Tomcat就是JSR的RI,他是Apache组织的一部分,Apache组织的宪章是“提供基于JAVA平台的优质服务器解决方案,JAVA平台是以开放和合作方式开发的。”

“ 这里感觉很想EJB中的模式,SUN制定规范,IBM,BEA根据这些规范编写容器,而我们这些应用程序员也根据这些规范编写组件,由于容器与组件实现了同样的接口,或者说遵循同样的规范,就可以使在一个容器上编写的组件在别的实现规范的容器上很好的运行。而在这里呢?SUN公司提供了(或者是SUN的一些工作人员)提供了Servlet API,它们是一些接口,基类以及一些具体的要求规范,然后各个容器厂商根据给反实现接口,编写容器;而我们应用程序员也根据这些规范和容器厂商提供的基类来编写组件,就是Servlet或者说类。”

三, TOMCAT目录问题

bin 启动和停止Tomcat的脚本。

Common 所有Tomcat服务器公用的类和jar文件。

Confg 一般的配置信息,例如服务器定义和用户信息。

Webapps Tomcat开始时自动装载的Web应用程序。

Logs 由tomcat生成的运行时日志文件。

Works 由Web应用程序使用的临时工作目录。

注意:logs 和works是第一次启动Tomcat时创建的。

四, Servlet API

一>,接口名称:javax.servlet.Servlet;

实现于:javax.servlet.GenericServlet;

1,init();又Servlet容器调用。

2,public javax.servlet.ServletConfig getServletConfig();

得到ServletConfig对象。

3,service();由servlet容器调用,可以让servlet对请求进行响应。

4,public String getServletInfo();

返回有关Servlet的信息,如作者,版本,版权等。

5,destroy();让servlet有机会清除所占用的所有资源(内存)。

二>,ServletConfig

接口名称:javax.servlet.ServletConfig;

由Servlet容器建立的Servlet配置对象,用于初始化期间向Servlet传递信息。

1, public String getServletName();

2, public ServletContext getServletContext();

返回对执行Servlet的ServletContext的引用。

3, pulic Enumeration getInitParameterNames();

返回Servlet初始化参数名称列表。

4, public String getInitparameter(String mystring);

返回具体参数名称的值。

例如在web.xml中我们定义了这样一端:

<servlet>

<servlet-name>myservlet</servlet-name>

<servlet-class>lsmx.MyServlet </servlet-class>

<init-param>

<param-name>myparamname</param-name>

<param-value>myparamvalue</param-value>

</init-param>

</servlet>

public class MyServlet extends HttpServlet {

//略

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

ServletConfig config = this.getServletConfig();

System.out.println(config.getServletName());

Enumeration enum = config.getInitParameterNames();

while (enum.hasMoreElements()) {

String myparametername = (String) enum.nextElement();

String myparametervalue = config.getInitParameter(myparametername);

System.out.println(myparametername);

System.out.println(myparametervalue);

}

//略

}

则会在控制台打印出:

myservlet(<servlet-name>myservlet</servlet-name>),myparamname,myparamvalue

三>,GenericServlet

类名称:javax.servlet.GenericServlet;

超类:java.lang.Object;

直接子类:java.servlet.http.HttpSrvlet;

实现于:javax.servlet.Servlet;

javax.servlet.ServletConfig;

java.io.Serializable;

定义普通的,与协议无关的servlet。它具备Servlet与ServletConfig的所有方法。方法的使用与返回值与以上类似,这里不再阐述。

 

时间: 2024-09-01 10:26:46

Servlet基础(一)的相关文章

Servlet基础例程 - HelloServlet - Linux版本

servlet /*作者:何志强[hhzqq@21cn.com]日期:2000-08-10版本:1.0功能:Servlet基础例程 - HelloServlet*/ import java.io.*;import java.text.*; //MessageFormatimport javax.servlet.*;import javax.servlet.http.*; public class HelloServlet extends HttpServlet{   //页面标题   prote

Servlet基础例程 - HelloServlet - NT版本

servlet /*作者:何志强[hhzqq@21cn.com]日期:2000-08-10版本:1.0功能:Servlet基础例程 - HelloServlet*/ import java.io.*;import java.text.*; //MessageFormatimport javax.servlet.*;import javax.servlet.http.*; public class HelloServlet extends HttpServlet{   //页面标题   prote

Servlet和JSP知识复习(2)Servlet基础

js|servlet Servlet和JSP知识复习(2)Servlet基础 ·生成HTML的servlet    ·告知浏览器接下来发送的时HTML        - response.setContentType("text/html");    ·修改println语句以构建合法的Web页面        - 打印语句应用输出相应的HTML标签.    ·用形式语法验证器 检查生成的HTML        - http://validator.w3.org/        - h

Jsp Servlet基础入门学习篇处理Cookie

9.1 Cookie概述 Cookie是服务器发送给浏览器的体积很小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器.通过让服务器读取它原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份.安全要求不高的场合避免用户重复输入名字和密码.门户网站的主页定制.有针对性地投放广告,等等. Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁.Cookie永远不会以任何方式执行,

jsp Servlet基础入门学习:第一个Servlet

js|servlet      3.1 Servlet基本结构 下面的代码显示了一个简单Servlet的基本结构.该Servlet处理的是GET请求,所谓的GET请求,如果你不熟悉HTTP,可以把它看成是当用户在浏览器地址栏输入URL.点击Web页面中的链接.提交没有指定METHOD的表单时浏览器所发出的请求.Servlet也可以很方便地处理POST请求.POST请求是提交那些指定了METHOD="POST"的表单时所发出的请求,具体请参见稍后几节的讨论. import java.io

jsp Servlet基础入门学习:处理表单数据

js|servlet|数据     4.1 表单数据概述 如果你曾经使用过Web搜索引擎,或者浏览过在线书店.股票价格.机票信息,或许会留意到一些古怪的URL,比如"http://host/path?user=Marty+Hall&origin=bwi&dest=lax".这个URL中位于问号后面的部分,即"user=Marty+Hall&origin=bwi&dest=lax",就是表单数据,这是将Web页面数据发送给服务器程序的最

jsp Servlet基础入门学习:读取HTTP请求头

js|servlet|请求     5.1 HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST).如有必要,客户程序还可以选择发送其他的请求头.大多数请求头并不是必需的,但Content-Length除外.对于POST请求来说Content-Length必须出现. 下面是一些最常见的请求头: Accept:浏览器可接受的MIME类型. Accept-Charset:浏览器可接受的字符集. Accept-Encoding:浏览器能够

jsp Servlet基础入门学习:访问CGI变量

cgi|js|servlet|变量|访问     6.1 CGI变量概述 如果你是从传统的CGI编程转而学习Java Servlet,或许已经习惯了"CGI变量"这一概念.CGI变量汇集了各种有关请求的信息: 部分来自HTTP请求命令和请求头,例如Content-Length头: 部分来自Socket本身,例如主机的名字和IP地址: 也有部分与服务器安装配置有关,例如URL到实际路径的映射. 6.2 标准CGI变量的Servlet等价表示 下表假定request对象是提供给doGet和

jsp Servlet基础入门学习:HTTP应答状态

js|servlet     7.1 状态代码概述   Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档.下面是一个最简单的应答: HTTP/1.1 200 OKContent-Type: text/plain Hello World 状态行包含HTTP版本.状态代码.与状态代码对应的简短说明信息.在大多数情况下,除了Content-Type之外的所有应答头都是可选的.但Content-Type是必需的,它描述的是后面文档的M

jsp Servlet基础入门学习:设置HTTP应答头

js|servlet     8.1 HTTP应答头概述 Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档.设置HTTP应答头往往和设置状态行中的状态代码结合起来.例如,有好几个表示"文档位置已经改变"的状态代码都伴随着一个Location头,而401(Unauthorized)状态代码则必须伴随一个WWW-Authenticate头. 然而,即使在没有设置特殊含义的状态代码时,指定应答头也是很有用的.应答头可以用来完成:设置Cookie,