JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--Servlet  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
了解Servlet
作者:未知     文章来源:www.jspcn.net
访问次数:1658次     加入时间:2005年01月19日
什么是servlets
?明白Servlet API以及与CGI相比较
?知道在servlet的主要的类的使用。
?能够实现简单的servlets


?什么是servlet?
?一般地,服务器端Java应用程序扩展了Web服务器的功能。
.在服务器上可以完整地运行
.没有必要下载到浏览器
.代替CGI脚本
?Servlets的优势在于:
.方便性与灵活性
.安全性
.执行效率

安全性优势
?在服务器的范围中调用
?能够约束servlet的调用
?在安全体系中能够成为单一(全局)信号的一部分


性能优势
?Run in the same context as application server
?执行并且驻留在内存中
?有请求时提前被装入或装入
?通过HTTP请求维持对话
?减轻后置系统的负担
?多线程
?可伸缩于多处理器以及多机种系统(IBM WebSphere Performance Pack)

一般的Servlet调用
?客户建立一个Web服务请求,命名为一个Servlet,就如同URL的一部分
?Web服务器向由一个servlet类的对象所定位的Servlet引擎发送一个请求
?servlet引擎调用一个Servlets服务方法:

浏览器(客户)<====URL请求=====>Web服务器<===>servlet对象(应用程序服务器)


Java Servlet 应用程序接口API
?JSDK包括了两个包:
javax.servlet
javax.servlet.http

javax.servlet.Servlet
| 实现
javax.servlet.GenericServlet A
|
javax.servlet.http.HttpServlet A

Servlet
?表现一项服务
?一般通过URL请求
?Servlets通过应用程序服务器被装入
?在服务的初始化阶段(如果是预装入)
?在客户端首次请求时
?在servlet重新装入时

servlet的生命周期
?在装入时init()方法被调用
?仅这一次
?当每个客户发出请求时,service()方法被调用
?当它被卸载时,destroy()方法被调用

init()
|
service()
|
destroy()


HTTP Servlet
?一个HTTP-specific请求处理器
?加入两个HTTP-specific的方法
?doGet()--处理一个GET请求(URL)
?doPost()--处理一个POST请求(HTML)
?子类代替了这两个信息并且可能代替init()和destroy()
?doGet()和doPost()作这些工作并且被service()调用


请求与响应
?service(),doGet()和doPost()方法都具体有两个参数:
?HttpServletRequest--提供请求数据(参数)HttpSession信息等访问。
?HttpServletResponse--提供允许servelt向发出请求的客户的响应的服务
?大多数servlet程序是用来读出请求并且写入响应


HttpServletResponse
?向客户提供通讯的通道
?允许servlet返回内容并且/或者是错误
?设置内容头(类型,长度......)
?重定向服务器以返回一个指的URL

应答协议
?getWriter()
?返回一个输出的PrintWriter
?setContentType(String type)
?为这个响应设置内容的类型
?类型是MIME型
?sendRedirect(String anURL)
?重定向浏览器到一个新的URL


简单的servelt

public class MyServlet extends HttpServlet {
public void doGet( HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
// get stream to output HTML on!
res. setContentType(" text/ html");
PrintWriter out = res. getWriter();

// send out a simple banner
out. println("< HTML>< BODY>");
out. println("< h1> Hello World!</ h1>");
out. println("</ BODY></ HTML>");
}
}

HttpServletRequest
?提供客户请求
?"Getters"请求的特征,比如:
?请求头部,内容类型,长度,方法....
?请求URL如同一个String
?Servlet"path"
?客户安全性类型
?访问请求参数(通过name)
?请求中,数据在参与对象中的共享范围


请求协议
?getParmeterNames()
?在HTML页上,返回一个的枚举的参数
?getParmeterValues(String name)
?返回multi-valued参数的值
?getParameter(String name)
?返回一个指定的命名的参数的值
?getReader()
?返回BufferedReader到输入视图

案例:
<P> Please fill out this form with your name.
Thanks!
<FORM METHOD=" POST"
ACTION="/ servlet/ NameServlet">
<P> Please enter your name:
<P> First name: <INPUT NAME=" first" TYPE=" TEXT"
SIZE=" 12" MAXLENGTH=" 20">
Surname: <INPUT NAME=" surname" TYPE=" TEXT"
SIZE=" 15" MAXLENGTH=" 25">
<P> Thank you! <INPUT TYPE=" SUBMIT"> <INPUT
TYPE=" RESET">
</ FORM>


读入一个post
public void doPost( HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{

Enumeration enum = req. getParameterNames();
while (enum. hasMoreElements()) {
String name = (String) enum. nextElement();
String value = req. getParameter( name);
//… do something with each pair...
}
}

调用servelet
最普遍使用的调用HttpServlet是通过类名(classname)比如:
http://www.ibm.com/servlets/com.ibm.a.Myservlet

?"load/run by classname"的支持通过另一个称为"Invoker"的servlet所提供
?"Invoker"servlet试图找到servlet的类的路径
?考虑到会有无名的servlet,一个servlet用这种方法装入运行
在WebSphere中的servlet
?另一方面,大多数的servlet引擎支持servlet通过名字注册
?被使用的参数可以初始化
?参数约束servlet的行为
?一个servlet可以提供不同的服务(在不同的"short names")
?参数在init()方法中使用
?允许servlet被预装入
?通过RequestDispatcher,允许简单定位
?允许servlet被保护

摘要
?我们已经看到Servlets的优势大于CGI
?安全性,灵活性,效率
?我们已经介绍了Servlet的基本类和接口
?Servlets,GenericServlet,HttpServlet,HttpServletRequest,HttpServletResponse


VisulalAge for Java 的复习
?首先,需要知道:
?IBM VisualAge for Java 基本概念
?IDE
?Scrapbook
?Debugger
?VisualAge for Java与WebSphere之间的关系
?VisualAge for Java:

?Visual Builders
?Visual Application Builder
?Enterprise Access Builder
?Data,CICS,RMI,C++
? Many others
工具:
?IDE
?AppletViewer
?Smart Guides
?Debugger
?Browsers
?Scrapbook
类库
?JDK1.1.7
?JDK1.2
?IBM Enterprise Connectivity
编译器和虚拟机
?Incremental
?Java to byte code
?Byte code to machine code translation
?Multiple VMs
部件:
? JavaBeans
?EJB develpement environment
?WebSphere Test environment
技术支持
?Integrated team environment
?Scaleable

集成开发环境
?组织管理项目,类,方法
?组队开发--聚宝库
?导入及导出类文件到开发环境同Java文件一样
?优化编译
?视图:项目,类,界面,所有的问题
?搜索,智慧向导
?剪贴本,Debugger 
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号