• Servlet学习总结


    Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类别,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。servlet的命名:Server + Applet =Servlet 意为服务器端的小程序。

    Servlet工作模式

    • 客户端发送请求至服务器
    • 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
    • 服务器将响应返回客户端

    通用Servlet

    一般的,通用Servlet由javax.servlet.GenericServlet实现Servlet接口。程序设计人员可以通过使用或继承这个类来实现通用Servlet应用。

    HttpServlet

    javax.servlet.http.HttpServlet实现了专门用于响应HTTP请求的Servlet,提供了响应请求的doGet()和doPost()方法。

    生命周期

    当servlet被部署在应用服务器中(应用服务器中用于管理Java组件的部分被抽象成为容器)以后,由容器控制servlet的生命周期。除非特殊制定,否则在容器启动的时候,servlet是不会被加载的,servlet只会在第一次请求的时候被加载实例化。servlet一旦被加载,一般不会从容器中删除,直至应用服务器关闭或重新启动。但当容器做内存回收动作时,servlet有可能被删除。也正是因为这个原因,第一次访问servlet所用的时间要大大多于以后访问所用的时间。

    注:servlet在服务器中的运行:1.加载 ->2.初始化 - > 3.调用 - 4.销毁 生命周期:servlet的生命周期在【2.初始化】后开始其生命周期,在【4.销毁】后结束其生命周期

    与JSP的关系

    Java服务器页面(JSP)是HttpServlet的扩展。由于HttpServlet大多是用来响应HTTP请求,并返回Web页面(例如HTMLXML),所以不可避免地,在编写servlet时会涉及大量的HTML内容,这给servlet的书写效率和可读性带来很大障碍,JSP便是在这个基础上产生的。其功能是使用HTML的书写格式,在适当的地方加入Java代码片断,将程序员从复杂的HTML中解放出来,更专注于servlet本身的内容。JSP在首次被访问的时候被应用服务器转换为servlet,在以后的运行中,容器直接调用这个servlet,而不再访问JSP页面。JSP的实质仍然是servlet。

    Servlet 2.5的新特征

      2005年9月发布Servlet 2.5

      Servlet2.5一些变化的介绍:

      1) 基于最新的J2SE 5.0开发的。

      2) 支持annotations 。

      3) web.xml中的几处配置更加方便。

      4) 去除了少数的限制。

    5) 优化了一些实例

    Servlet里的过滤器

    (1)过滤器的主要作用

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

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

    3,统一解决编码

    (2)创建一个过滤器:

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

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

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

    Servlet里的监听器

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

    三种servlet监听器

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

    (2)创建一个session监听器:

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

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

     

  • 相关阅读:
    解决The current branch is not configured for pull No value for key branch.master.merge found in confi
    使用Eclipse构建Maven项目 (step-by-step)
    ecpilise引入Maven项目目录不正常,无JRE,无Maven Dependencies
    解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
    Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories.
    (转) launch failed.Binary not found in Linux/Ubuntu解决方案
    .c_str()/atoi()/
    (转)Should I use char** argv or char* argv[]
    (转) int argc, char* argv[] 的用法
    (转) 制作 Clonezilla live 启动盘
  • 原文地址:https://www.cnblogs.com/doit8791/p/2743930.html
Copyright © 2020-2023  润新知