Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Servlet(一)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

什么是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!</ h1>"); 
    out. println("</ BODY></ HTML>"); 
    } 
    } 
    

    HttpServletRequest

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

    请求协议

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

      (未完)




     如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



    上一篇:使用JSP读取客户端信息   下一篇:Servlet(二)

    文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号