网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java数据结构---基于数组的表.
.编程必备经典:Java常见问题集锦(.
.自己写的一个支持200人在线的聊天.
.int、char、double与byte相互转换.
.通过动态编译获取字符串表达的值.
.使用SWT开发基于Java的图形用户界.
.用Java实现音频播放.
.java2html_src_0.8alpha源代码发.
.多线程学习初步.
.Java企业应用系统框架的比较与选.
.Java语言概述.
.如何使用Java自带的正则表达式.
.漫谈EJB——Enterprise JavaBean.
.java关于日期的运算等处理方法.
.java中文乱码的解决.
.按位左移运算符 (<<).
.Java 2 引用类使用指南.
.java开发工具——EditPlus.
.Java: 使用 finally 关键字来避免.
.J2SE综合:JAVA异常处理方式的区别.

JBuilder2005 Servlet开发之开发必备

发表日期:2008-1-5



  用Servlet可以创建协议、平台无关的Web应用程序,Applet运行于浏览器的JRE中,而Servlet则运行于Web应用服务器的Servlet容器中,Servlet没有用户图形界面,Servlet和Web应用服务器的Servlet容器交互以接收请求返回响应。
请求最先由Web应用服务器的Servlet容器处理并传给Servlet,Servlet通过Web应用服务器返回响应给客户端。客户端程序可以使用任何可向Web应用服务器发送请求的语言开发。

  Servlet最大的优势在于它的高性能,Servlet采用了和CGI截然不同的运行方式,首先Servlet在第一次初始化时装载并驻留在内存中,以后直接从内存中运行;其次,在默认情况下Servlet以单实例多线程的方式工作,一个新请求到达后,Servlet实例开启一个新的线程服务这个请求。

  Servlet 结构和线程安全

  所有的Servlet都直接或间接地实现Javax.servlet.Servlet接口,这些接口规定了Servlet如何与Servlet容器进行通讯的方法,此外还定义了Servlet的生命周期。GenericServlet是和协议无关的通用Servlet,HttpServlet是专门针对HTTP协议开发的Servlet,Web应用程序的Servlet都直接继续HttpServlet。其类的继续体系如下图所示:

JBuilder2005 Servlet开发之开发必备(图一)
图 1 Servlet的类继续体系

  javax.servlet.Servlet接口包括了3个控制Servlet生命周期的方法,它们分别是:

  ·init(ServletConfig config)方法

  当Servlet初始化时,init()方法被调用执行初始化Servlet的工作,init()方法只被调用一次。Servlet初始化后就进入就绪态,随时预备响应客户端的请求。

  ·service(ServletRequest req, ServletResponse resp)方法

  Servlet容器调用service()方法处理请求并返回响应。ServletRequest和ServletResponse作为入参传给service(),ServletRequest封装了请求的信息而ServletResponse封装了响应的信息。

  ·destroy()方法

  Servlet容器可以在任何时候卸载Servlet,此时destory()被调用,你可以在这儿释放Servlet所占用的资源。

  而javax.servlet.http包中的类用于支持HTTP协议,创建Html网页。HTTP协议是基于请求/响应工作模式,这些HTTP的请求方式包括:

  GET

  POST

  PUT

  DELETE

  HEAD

  TRACE

  CONNECT

  OPTIONS

  javax.servlet.http.HttpServlet定义了多个服务HTTP协议的方法,这些方法名为doXxx()的样式命名和HTTP请求方式名相呼应:如HTTP GET请求方式对应doGet(),而HTTP POST对应doPost()等。HttpServlet最初以service(HttpServletRequest req, HttpServletResponse resp)响应客户端请求,并依据HTTP的请求方式调用相应的doXxx()方法来处理。

  一般的,你仅需要覆盖doGet()或doPost()方法,假如希望得到更多的控制,你也可以覆盖doPut()和doDelete()方法,其他的方法一般很少使用。假如你使用JBuilder的Servlet向导,你可以具体指定创建哪些方法。

  非凡需要指出的是Servlet是以多线程的方式工作的,Servlet可以同时处理多个请求。作为开发人员,需要注重Servlet成员变量的线程安全,在doGet()、doPost()中的局部域变量是线程安全的,而Servlet的成员变量则有线程安全的隐患。所以除非你有意需要应用这种特性,在一般情况下,不宜将一些可改写的变量定义成Servlet的成员变量,否则一定要采取线程同步的措施确保线程安全。
上一篇:手机Java小程序DIY 人气:919
下一篇:JBuilder2005单元测试之创建测试用例 人气:540
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐