龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Servlet 技术

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
什么是servlets 明白Servlet API以及与CGI相比较 知道在servlet的主要的类的使用。 能够实现简单的servlets 什么是servlet? 一般地,服务器端Java应用程序扩展了Web服务器的功能。 .在服务器上可

  什么是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引擎调用一个Servlet's服务方法:
  
  浏览器(客户)<====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!");
  out. println("");
  }
  }
  
  HttpServletRequest
  提供客户请求
  "Getters"请求的特征,比如:
  请求头部,内容类型,长度,方法....
  请求URL如同一个String
  Servlet"path"
  客户安全性类型
  访问请求参数(通过name)
  请求中,数据在参与对象中的共享范围
  
  
  请求协议
  getParmeterNames()
  在HTML页上,返回一个的枚举的参数
  getParmeterValues(String name)
  返回multi-valued参数的值
  getParameter(String name)
  返回一个指定的命名的参数的值
  getReader()
  返回BufferedReader到输入视图
  
  案例:
  

  
  

精彩图集

赞助商链接