欢迎
游客
,
注册
|
登录
|
会员
|
界面
|
简洁版本
|
在线
|
帮助
商都网教育宝典宝库
商都网教育宝典宝库
计算机
网络工程
如何编写HTTPServlet程序
本主题被查看404次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
上一主题
下一主题
标题: 如何编写HTTPServlet程序
huahua
-[尕硴]
超级版主
UID: 71
来自:
精华:
130
积分: 14003
帖子: 12909
注册: 2007-10-22 17:59:00
状态:
离线
威望: 444.00
金钱: 3355.00 元
发短消息
用户资料
树型
回复
引用
只看楼主
2008-03-19 09:41
如何编写HTTPServlet程序
在编写Servlet 时需要用到两个用于所有 Servlet 的基本软件包:javax.servlet 和 javax.servlet.http。下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口。
首先介绍一下Java Servlet的基本方法。
init() 方法
在Servlet的生命周期中,仅执行一次 init() 方法,即在服务器装入Servlet时执行。通过配置服务器,可以设定在启动服务器或客户机首次访问Servlet 时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行 init()。
service() 方法
service()方法是Servlet的主体部分。客户对一个HttpServlet对象的每次请求都会调用该对象的service() 方法,并传递给这个方法一个"请求"对象和一个"响应"对象作为参数。"请求"对象提供有关请求的信息,而"响应"对象提供了一个将响应信息返回给浏览器的通信途径。javax.servlet 软件包中的相关类为ServletRequest和ServletResponse,而javax.servlet.http 软件包中的相关类为HttpServletRequest 和 HttpServletResponse。Servlet 通过这些对象与服务器通信并最终与客户机通信。Servlet 能通过调用"请求"对象的方法获知客户机环境、服务器环境的信息和所有由客户机提供的信息;通过调用"响应"对象的方法,Servlet可以向客户机发送响应。
HttpServlet中的service()方法默认的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如,如果 HTTP 请求方法为 GET,则默认情况下就调用 doGet()。当一个客户通过HTML表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
Servlet的响应可以是下列几种类型:
·一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。
·一个HTTP错误响应,重定向到另一个URL、Servlet和JSP。
destroy() 方法
destroy() 方法仅执行一次,即在服务器停止且卸载Servlet 时执行该方法。当服务器卸载 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个Servlet 在运行service() 方法时可能会产生其他的线程,因此在调用 destroy() 方法时,必须确认这些线程已终止或完成。
GetServletConfig()方法
GetServletConfig()方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和ServletContext。ServletContext 接口提供有关Servlet 的环境信息。
GetServletInfo()方法
GetServletInfo()方法是一个可选的方法,它提供有关Servlet 的信息,如作者、版本、版权。
下面介绍编写一个基本HTTP Servlet的步骤。
(1)引入相应的包和类,包括:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
继承javax.servlet.http.HttpServlet
public class MyServlet extends HttpServlet{
(2)实现service方法。
Servlet的主要功能是接受从浏览器发送过来的HTTP请求(request),并返回HTTP响应(response)。这个工作是在service方法中完成的。service方法包括从request对象获得客户端数据和向response对象创建输出。
如果一个Servlet从javax.servlet.http.HttpServlet继承,实现了doPost或doGet方法,那么这个Servlet只能对POST或GET做出响应。如果开发人员想处理所有类型的请求(request),只要简单地实现service方法即可(但假如选择实现service方法,则不必实现doPost或doGet方法,除非在service方法的开始调用super.service())。其中的差别如图14-2所示。
HTTP Servlet规范描述了用来处理其他请求(request)类型的方法,所有这些方法都可以归属于service方法。所有的service 方法使用一样的参数。HttpServletRequest提供关于请求(request)的信息,Servlet可以使用 HttpServletResponse 对HTTP客户端做出响应。
public void service(HttpServletRequest req,HttpServletResponse res)
throws IOException{
// 设置响应内容的类型
res.setContentType("text/html");
// 获得java.io.PrintWriter对象的引用,用来输出
PrintWriter out = res.getWriter();
// 使用PrintWriter对象的println()方法创建一些HTML代码,例如
out.println("");
out.println("Hello World!");
……
}
(3)编译Servlet。
从存放此Servlet源代码文件的目录编译此Servlet到包含此Servlet的应用中的 WEB-INF/classes目录。如:
javac -d /your_application_dir/WEB-INF/classes your_servlet.java
(4)将此Servlet作为应用的一部分部署。
把程序编译到指定目录后还是没有开启这个服务,我们必须对它进行配置,在C:\bea\wlserver6.1\config\mydomain\applications\DefaultWebApp\WEB-INF下有一个web.xml文件,这个就是应用程序的配置文件。这个文件的一般形式如下:
HelloWorld2
examples.servlets.HelloWorld2
greeting
welcome
person
weblogic developer
HelloWorld2
/HelloWorld2/*
index.html
其中servlet-name是Servlet的名字,servlet-class是在\WEB-INF\classes下存放class文件的相对路径。我们还可以在此文件中初始化参数,形式如下:
greeting
welcome
param-name是参数的名称,在本例中是greeting;param-value是参数的值,在本例是welcome。我们可以以此形式初始化更多的参数。
HelloWorld2
/HelloWorld2/*
这段代码是Servlet名称与url-pattern路径的映射。根据这段代码,HelloWorld2这个Servlet程序的URL路径就是http://SERVER_ADDRESS:/HelloWorld2。
(5)从浏览器访问Servlet。一般说来,调用Servlet的URL 取决于包含Servlet的Web应用的名字和Web应用部署描述中的Servlet映射的名字。请求(request)参数也可以是调用Servlet的URL的一部分,一般Servlet 的URL如以下模式:
http://SERVER_ADDRESS:/your_web_application_name/ mapped_servlet_name? Parameter
#1
大
中
小
本主题被查看404次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
论坛跳转...
胎教早教
准备怀孕
怀孕期
出生与分娩
婴儿期(0-1岁)
幼儿期(1-3岁)
学龄前(3-6岁)
中小学
课件
试题
中招
中招动态
招生快讯
相关政策
考试辅导
语文
数学
英语
物理
化学
生物
政治
历史
地理
家长交流
历年中招资料
满分作文
高考
高考动态
高考状元
历年试题
家长必读
志愿填报
心理减压
复习技巧
考生经验
备考辅导
高考大纲
历年分数线
高考常识
高考指南
语文
数学
外语
物理
化学
生物
历史
地理
政治
文综
理综
高考满分作文
家长
教师
读书
作文
郑州新东中学
学校动态
学生天地
高等教育
移民留学
成人高考
自学考试
考研
论文
外语
雅思
托福
四六级
实用英语
职称外语
公共英语(PETS)
商务英语
英语口语
小语种
英思力美语
在线留言
学校动态
课程
学生作业
英思力相册
学英语资料
计算机
办公应用
软件开发
平面动画设计
IT资格认证
等级考试
网络工程
初学者之路视频教程
计算机基础
Windows
Word2003
Execl2003
Powerpoint
Flash
Deamweaver
Fireworks
黑客基础
北大青鸟
青鸟新闻
开班信息
青鸟师资
在线问答
学员相关
技术文章
职业资格
企业培训师
资料库
历年试题
案例探讨
相关政策
财务会计
公务员考试
营养师
营养动态
职业前景
健康权威
学习指导
营养知识
健康食谱
心理咨询师
心理俱乐部
学习指导
花季少年
爱情婚姻
心理障碍
人在职场
职业前景
经典案例
导游
司法考试
建筑工程资格
外贸资格
医药资格考试
教师资格考试
电子商务师
人力资源师
资料库
历年试题
案例探讨
相关政策
技能培养
汽车驾驶
美容美发
美容
美发
化妆
整体形象设计
相关课程
人才信息
茶艺
调酒
厨师烹饪
手机维修
音乐乐器
舞蹈健身
企业管理
人力资源
市场营销
管理激励
管理书籍
管理视频
信诺专栏
职场招聘
招聘信息
职场沙龙
现在的时间是 2008-07-07 07:44:04
版权所有
商都网教育宝典
Powered by
Discuz!NT
1.0.6666 Copyright © 2001-2008
Comsenz Inc
.
Processed in 0.16 seconds