• 基础知识:Web开发相关技术


    Web应用需要遵循哪些规范

       

    主要包括目录结构,文件存放方式等方面的规范,比如Java Web程序的所有文件需要包含在一个文件夹中,这个文件夹就是我们的应用程序文件夹,在eclipse下就是建立一个工程的那个目录,应用程序文件夹下还需要包括一个WEB-INF文件夹,WEB-INF文件夹还需要包括Classes文件夹和lib文件夹,以及web.xml描述文件

       

    第三方的jar文件需要放在WEB-INF文件夹下的lib文件夹下

       

    web.xml文件里定义了应用程序可以访问的资源和这些资源的行为,包括Servlet、过滤器、监听器等

       

    JSPHTML、图片、声音等这些文件需要放在与WEB-INF同级的目录中,因为WEB-INF文件夹对于客户端是不可见的

       

    过滤器的作用

       

    web容器收到一个对某个资源的请求时,web容器会判断是否有过滤器与该信息资源关联,如果有的话,会把请求一一的交给这些过滤器处理,然后再交给目标资源,同样,响应的时候就会以相反的顺序交给过滤器处理,然后再返回给浏览器

       

    过滤器的工作原理

       

    过滤器也像Servlet一样需要编写和配置

       

    过滤器编写

       

    过滤器需要实现javax.servlet.Filter接口,该接口的doFilter方法就是过滤器的核心代码区,类似于Servlet的service方法,doFilter方法的参数列表中有一个FilterChain接口的实现对象,在doFilter的核心代码区中可以调用FilterChain对象引用chain的doFilter方法,注意这是两个doFilter方法。

       

    在调用chaindoFilter方法之前的代码会在资源到达之前执行,在调用chaindoFilter方法之后的代码会在资源到达之后执行

       

    过滤器配置

       

    同样是<filter>标签和<filter-mapping>标签,<filter>标签中有<filter-name><filter-class><filter-mapping>中有<filter-name><url-pattern>,这样凡是在<url-pattern>中匹配的资源请求都会经过该过滤器

       

    web应用程序各类的范围模型

       

    Request代表HTTP请求,它的生命周期从请求开始到请求结束为止,中间可以穿插多个信息资源,比如过滤器、ServletJSP

       

    Session代表会话,也可以认为代表了一个用户,一次会话过程中可以包含多个请求,而一般一个用户对应一个会话,所以会话中也经常保存用户的数据

       

    Application代表一个web应用,它的生命周期从web容器启动开始,以web容器停止结束,一般用于存放应用标题或者其他外部资源连接器等

       

    web应用程序中的监听器

       

    web应用程序的监听器是针对web生命周期的3种事件进行监听

       

    针对request事件的监听器,需要实现java.servlet.ServletRequestListener接口,它有两个方法requestInitialized和requestDestroyed方法,分别是请求初始化的代码以及请求销毁时的代码

       

    针对session事件的监听器,需要实现java.servlet.http.HttpSessionListener接口,也是有两个方法,sessionCreate以及SessionDestroyed方法

       

       

    针对Application事件的监听器,需要实现java.servlet.ServletContextListener,也包含两个方法,ContextInitializedDestroyed方法

       

  • 相关阅读:
    wince5.0 key
    CSS基础知识思维导图xmind
    切图
    头部标签集
    List和Set的区别
    PicGo + Gitee 实现 Markdown 图床
    GitHub Pages 与 Gitee Pages 上的 Jekyll
    Agile, CI/CD,DevOps
    你还不了解DevOps? 看这篇就够了
    DevOps实践心得
  • 原文地址:https://www.cnblogs.com/keedor/p/4506342.html
Copyright © 2020-2023  润新知