zoukankan      html  css  js  c++  java
  • [转] servlet 总结

     servlet 是什么? 从它的发展产生就能知道,担当处理请求,产生相应的。

    http://wenku.baidu.com/view/b7b83bdf50e2524de5187ea9.html

    百度文库 : servlet 入门指南

    http://blog.csdn.net/seelye/article/details/8469474

    一,什么是Servlet?


    Servlet是一个Java编写的程序,此程序是基于Http协议的(不仅仅只http协议),在服务器端运行的(如tomcat), (其实servlet和tomcat都一起运行在服务器上安装的jre上)

    是按照Servlet规范编写的一个Java类。



    二,Servlet有什么作用?


    主要是处理客户端的请求并将其结果发送到客户端。



    三,Servlet的生命周期?


    Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。

    初始化阶段:


    1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。


    2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。


    3,Servlet容器创建一个servlet对象


    4,Servlet容器调用servlet对象的init方法进行初始化



    运行阶段:


    当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

    然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

    信息。并处理该请求(见下面的怎么处理一个请求?)。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和

    servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。


    销毁阶段:


    当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,

    同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放

    servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。



    在这里该注意的地方:


    在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户

    端访问的次数


    四,Servlet怎么处理一个请求?

    在ServletRequst对象中封装了用户的请求信息,然后Servlet容器把ServletRequst和ServletResponse对象

    传给用户所请求的Servlet,Servlet把处理好的结果写在ServletResponse中,然后Servlet容器把响应结果传给用户。


    五,Servlet与JSP有什么区别?


    1,jsp经编译后就是servlet,也可以说jsp等于servlet。


    2,jsp更擅长页面(表现)。servlet更擅长逻辑编辑。 (最核心的区别)。


    3,在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页. 在struts框架中, JSP位于MVC设计模式的视图层,而Servlet位于控制层。


    六,Servlet里的cookie技术?


    cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段,是由Netscape公司开发出来的。


    cookie技术的好处:


        1,Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。


        2,Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。
       
    创建一个cookie

    Java代码  收藏代码
    1. //里面的两个参数分别是cookie的名和cookie的值  
    2.   
    3. response.addCookie(new Cookie("abc","10000000"));  

    使用cookie

    Java代码  收藏代码
    1. Cookie[] cook =request.getCookies();//用一个Cookie数组来接收  
    2.   
    3. for(int j=0;j<cook.length;j++){//通过循环来打印Cookie  
    4.   
    5.         cook[j].getName()://取cookie的名    
    6.         cook[j].getValue()://去cookie的值  
    7.   
    8. }  


    七,Servlet里的过滤器?


    过滤器的主要作用


    1,任何系统或网站都要判断用户是否登录。


    2,网络聊天系统或论坛,功能是过滤非法文字


    3,统一解决编码


    (2)怎么创建一个过滤器:

    1,生成一个普通的class类,实现Filter接口(javax.servlet.Filter;)。


    2,重写接口里面的三个方法:init,doFilter,destroy。


    3,然后在web.xml配置过滤器。



    八,Servlet里的监听器?


    监听器的作用:自动执行一些操作。

    三种servlet监听器:

    对request的监听。对session的监听。对application的监听。

    怎么创建一个session监听器:


    1,生成一个普通的class类,如果是对session的监听,则实现HttpSessionListener。


    2,然后重写里面的五个方法:

    Java代码  收藏代码
      1. public void sessionCreated(HttpSessionEvent arg0) {} // 创建  
      2.   
      3. public void sessionDestroyed(HttpSessionEvent arg0) {} // 销毁  
      4.   
      5. public void attributeAdded(HttpSessionEvent arg0) {} // 增加  
      6.   
      7. public void attributeRemoved(HttpSessionEvent arg0) {} // 删除  
      8.   
      9. public void attributeReplaced(HttpSessionEvent arg0) {} // 替换
  • 相关阅读:
    POJ 3616 Milking Time(简单区间DP)
    AizuOJ ALDS1_7_A Rooted Trees(有根树的表达)
    jQuery中 attr() 和 prop() 的区别
    前后端交互模式
    快速排序
    冒泡排序实现
    Vue 组件间进行通信
    JavaScript 数组常用方法
    如何将内网映射到公网?
    javax.mail.AuthenticationFailedException: 535 Login Fail. Please enter your authorization code to login. More information in
  • 原文地址:https://www.cnblogs.com/dayInAndOut/p/3759665.html
Copyright © 2011-2022 走看看