• java web分享ppt大纲 -- servlet包


     概述

    • servlet相关代码所在包:

    javax.servlet 

    javax.servlet.http

    • 常用的功能模块

    Servlet,filter,listener

    • 常用的相关类:

    servletContext 

    servletConfig

    HttpServletRequest

    HttpServletResponse

    HttpSession

    Cookie

     servlet

    • 定义

    Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求与服务器响应的中间层

    • servlet生命周期

    初始化阶段 init():

    在servlet创建时调用的方法,在整个生命周期仅调用一次,那么servlet什么时候创建那?通常是两种情况:

    1 在web.xml里面设置了 <load-on-startup>,则在servlet容器启动时创建,并根据该属性值决定创建的顺序,越小越先创建

    2 如果没有设置,则是在用户第一次对该servlet发出请求时调用

    在容器启动时创建的功能,通常可以被一些框架所利用,做路由控制和其他的全局操控,例如springmvc及jersey等框架

    响应客户请求阶段 service(),

    在客户请求时调用,可以通过多线程处理多个客户的并发请求,通常我们直接或者间接通过这个方法进行web业务逻辑的处理和输出

    对doGet,doPost的处理其实多数也是内部调用service的结果

    终止阶段 destory()

    在servlet销毁时调用的方法,例如关闭servlet容器时。在整个生命周期仅调用一次

    filter

    • 定义

    能够对目标资源的请求和响应进行截取

     

    一个web请求通常会经过一系列filter处理最后交由特定的servlet处理,当然filter自身也可以决定他是否向下把请求传递下去,如果不往下传,他也完全可以充当servlet的角色,例如我们常用的框架struts2.0或者是阿里的webx框架均是从filter实现的,并没有走到servlet中去 

    • 生命周期:

    初始化阶段 init(FilterConfig)

    初始化filter,整个生命周期只初始化一次

    过滤客户的请求阶段 dofilter

    对客户的请求进行过滤,可以通过多线程处理多个客户的过滤操作,相关的过滤逻辑写在doFilter中

    终止阶段 destory

    在filter销毁时调用的方法,例如关闭servlet容器时。在整个生命周期仅调用一次

    应用模式:(在filter-mapping中配置 dispatcher)

    Request,forward, include,error

    默认为request,则为用户实际发起的请求

    forward,为服务器内部跳转的请求

    include为 jsp中include包含的请求

    error为客户请求出现异常时的处理

    • 如何在filter中使用spring注入的bean

    方法一:org.springframework.web.filter.DelegatingFilterProxy

    该方法为bean的一个代理,可以使用实际的bean来充当filter

    方法二:使用原生api,获取ApplicationContext

    WebApplicationContextUtils.getWebApplicationContext(servletContext);

    listener:

    • 定义

     在web项目中,我们有时候会需要监听一些对象的状态,当状态变化时触发相关的操作,这个时候listener就充当了监听器的角色

     

    • 分类:

    简单可以分为事件监听器和生命周期监听器

    凡是带有AttributeListener的监听器,都会在属性发生改变时触发,例如HttpSessionAttributeListener会在session的属性添加,修改,删除时触发

    其他监听器,一般在该对象创建,销毁时触发,例如我们经常会用到的ServletContextListener监听器,他会在ServletContext创建和销毁时触发相应的方法,依托于此,spring这个框架得以在web项目中载入

     

    常用的相关类:

    • servletContext ,servletConfig

    这两个可以用来存储servlet 的环境变量,区别是一个是整个项目所有servlet公有的环境变量,一个是单个servlet独占的环境变量。

    表现在web.xml上,一个可以是web-app 级别设置的变量(通过init-param),一个是servlet级别下面设置的参数

    在编程中应用时,要注意虽然对于每个属性的获取和修改(如果有)操作都是线程安全的,但是组合起来使用却不一定时线程安全的。

    • HttpServletRequest 和 HttpServletResponse

    这两个是用户请求和答复的封装类,通过这两个对象,描述用户的请求和回复。一些get,post参数的获取,session,cookie对象在用户请求的提取,都是通过这两个进行操控的

    • HttpSession 和 Cookie

    这两个分别操控web项目中用户的session 和 cookie,需要注意的是session同样由于可以被并发访问,要注意读取和写入配合时的线程安全问题

  • 相关阅读:
    【Offer】[5] 【替换空格】
    【Offer】[3-2] 【不修改数组找出重复的数字】
    【Offer】[3-1] 【找出数组中重复的数字】
    【Spring】 IOC Base
    【Java并发】CallBack和Future模式
    【Java并发】并发队列与线程池
    【Java并发】几个常用API
    linux基础_vi和vim快捷键
    python_字典
    python_列表方法
  • 原文地址:https://www.cnblogs.com/wully/p/3305076.html
Copyright © 2020-2023  润新知