zoukankan      html  css  js  c++  java
  • JSP的灵魂Servlet的生命周期

      大家好呀...好久没写些有点技术的东东了,不好意思.1来工作的原因.2来我自身的原因,我不知道如何去把自己的知识与大家进行分享,不知道应该向哪个方向发展.如果说讲的太基础,我想会对大多数学习语言的朋友可能觉得太闷太枯燥乏味.如果说讲的程序源码应用彩色太浓,代码一但多起来也会影响大家的学习激情.于是我想了很长时间,今天想把在实际运用中会有如JSP的WEB应用这样的东东拿出来,将自已在做JSP开发时的心得体会与大家共同分享,达到一个共同学习与进步的目的!有什么问题M我,一定知无不言.


         好了书归正传,JSP做WEB应用,就是我们所说的做网站,我今天给大家讲的就是Servlet这个在JSP应用中比较核心的东东.

        我们知道JSP作为一个动态网页而言相对于静态的HTML的页面最大的不一样就是,他提供了与服务器的交互,如果传统的HTML只是一个单方面的演讲的话,那JSP就是一个生动的辩论会.他更强调一种互动性.如何实现互动呢.请看下面
       
        首先访问者在客户机上通过浏览器进行访问我们的服务器,他们可以通过http的方法向我们提交请求,这里的请求有四种分别是:
       
          1.    Get方法这种是客户机向服务器请求得到一个资源,通常是得到图像/文本,而这种方式是在html的<form>标签的方法属性设置,向服务器请求的.看下面的例子:
       
         http://www.servicesapp.com/login/testservlet?userName=shine&password=hi
    这里的请求以用户名shine和密码hi的身份登录,以&进行连接.
    由于这种方式内部URL是可见的.不建议对敏感数据用这种方式传送,而它还有255字符和只能传文本的限制


          2.    Post向服务器发送一个信息或是投递一个信息,这是一个无限容易的以二进制传送的方式.可以传送大数据量的信息使用


          3.    put向服务器添加一个资源,方式和Post差不起多,主要区别在于这个是将请求资源同URL关联起来,一般用于发布页面


          4.    head用于得到服务器上特定的资源的头部信息,这里指更新时间,内容类型,目的为了节省带宽不浪费多余的资源


        好了,刚才讲了客户发出http请求,这时将请求委托给servlet 然后由httpservlet请进相应的处理这里包含了两个参数对应处理相应的请求和回应分别是HttpServletRequest和HttpservletResponse,这里对应了一个表反应四种请求的对应不同方法,这两个方法都会抛出servletException 和IOException异常

              http 方法                                  httpServlet其中的处理
            Get                                               doGet()
            Post                                              doPost()
            Head                                             doHead()
            Put                                               doPut()


          有了这上面的工作,入我们今天的主题servlet的生命周期的问题!


          等下你们就会明白为什么上面的内容与这个主题相关联了


       
          这里源于servlet生命周期是由一系列事件组成的.这些事情包含了servlet的加载/实例化,初始化,处理客户的请求以及它是如何从服务器中删除的.


          1.  加载 / 实例化:
          Servlet容器查找并加载所有的servlet类.当Servlet引擎启动时或者说在客户http请求委托时实例一个Servle或多个Servlet类

          2.  初始化
          这里在客户请求委托代理之前,使用init()方法进行初始化.

          3.  请求处理
          当初始化完成之后这时就可以处理客户http请求了.这里使用service()这个方法来完成并把其作参数进行传递,这里的参数包含了httpServletRequest()和httpServletResponse()两个方法分别对应于请求和回应它们也会抛出servletException和IOException然后针对不同的http请求(四个上面说过,get,post,put,head)由doGet(),doPost(),doPut(),doHead(),这四个不同的方法块里的处理单元来处理...


          4.  删除Sevlet
          有时出于一些原因需要对Sevlet容器中的servlet实例进行删除,这时就可以调用
                  destroy()
          方法进行, 执行了这个方法之后,这时Sevlet就不能再执行其它客户机的请求了...而这时它也就成了JAVA垃圾回收机的回收对象了!
  • 相关阅读:
    VSCode远程编写Shell并实时调试配置过程
    eclispe 无法启动调试 cannot connect to VM
    工作流之设置表访问权限
    利用工作流返回达到无限次重复办理业务的过程
    eworkflow工作流系统在iis中发布
    ie8用ajax访问不能每次都刷新的问题
    视频演示(动态指定执行人+指定申请人的上级)
    视频演示eworkflow集成定制aspx页面的过程
    利用开发框架中的标签库集成报表工具
    流程设计器之标签工具
  • 原文地址:https://www.cnblogs.com/shinefzh/p/1128877.html
Copyright © 2011-2022 走看看