zoukankan      html  css  js  c++  java
  • Java Web 总结

    Java Servlet 总结

    Servlet 简介

    Servlet 是什么?

    运行在Web服务器上的应用程序,作为浏览器和服务器之间的中间层。
    与CGI功能类似,优点在于

    *性能更好
    *在Web服务器的地址空间中运行,不会为每个客户端请求创建一个新的进程
    *平台独立,可用Java类库

    Servlet 架构

    Servlet 任务

    • 读取客户端发送的显式数据。(http表单等)
    • 读取隐式数据, 比如cookies
    • 处理数据产生结果
    • 发送显式 隐式数据

    Servlet 生命周期

    • 通过init() 初始化
    • service() 处理用户请求

    收到请求检查方法类型,调用对应的方法。

    • destroy() 终止
    • 垃圾回收器回收

    注意desroy() 销毁之后并不会立即被垃圾回收。

    Servlet 编写过滤器

    Servlet过滤器可以动态地拦截请求和响应,可以在拦截客户端和服务器端之间交互的信息。通过urlpattern来指定拦截的服务。过滤器中我们可以根据 doFilte() 方法中的 request 对象获取表单参数信息,例如我们可以获取到请求的用户名和密码进行逻辑处理,也可以通过 response 对用户做出回应。比如如果验证用户名不正确,禁止用户访问 web 资源,并且向浏览器输出提示,告诉用户用户名或者密码不正确等等。

    Servlet 异常

    Servlet Session

    Servlet 工作原理解析

    从Servlet 容器说起

    Servlet 和 Servlet 容器密不分可,通过接口进行连接。在Tomcat的容器等级中,Context 容器直接管理Servet 在 容器中的包装类wrapper,一个Context 对应一个web app。

    Servlet 容器的启动过程

    将Servlet包装后作为自容器添加到Context 中,其他的web.xml 属性解析到Context 容器中,
    初始化 Servlet 调用其init 方法,

    Servlet 体系结构

    enter image description here

    Tomcat 创建的 response 和 request 都是轻量级对象易于回收,接下去当交给一个用户线程去处理这个请求时又创建 Request 和 Response 对象。这两个对象一直穿越整个 Servlet 容器直到要传给 Servlet,传给 Servlet 的是 Request 和 Response 的门面类 RequestFacade 和 RequestFacade,这里使用门面模式与前面一样都是基于同样的目的——封装容器中的数据。

    enter image description here

    Servlet 如何工作

    当用户从浏览器发起一个请求,通过tomcat 的 Mapper 找到对应的 Wrapper, 通过Filter 调用对应的service()。

    Session/Cookie 的区别

    Session 是服务器端保存的一个数据结构,用来跟踪用户的状态。
    Cookie 是客户端保存用户信息的机制,也是实现Session的一种方式,服务器端将Session保存后给一个Session ID 让客户端存在cookie 里面。

    Servlet 能够提供的信息

    • 初始化调用init的时候设置的ServletConfig
    • 通过RequestFacade 获取请求中的HTTP信息。

    Cookie 和 Session 的作用都是为了保持前后端的交互状态。

    JAVA JSP 总结

    JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。

    JSP 简介

    什么是 JSP

    使用jsp标签 在HTML 中插入java 代码,主要负责MVC 中的View层。

    JSP 处理

    服务器识别出队jsp 的请求,将请求传递给JSP引擎
    载入jsp 文件 ,然后转化为Servlet
    将Servlet 编译成可执行类
    Web服务器的组件调用Servlet引擎,载入并且执行对应的Servlet类。
    返回动态产生的HTML

    JSP 生命周期

    • 编译阶段 产生Servlet类
    • 初始化阶段 创建实例 调用初始化方法
    • 执行阶段 调用Servlet的服务方法
    • 销毁阶段

    JSP 编译

    如果没有被编译过,那么解析->转化->编译

  • 相关阅读:
    说说Java中的代理模式
    一个奇怪的异常
    JDBC第二次学习
    浅谈事务
    JDBC第一次学习
    Firebug & Chrome Console 控制台使用指南
    js 事件创建发布
    vue ui之 iview 事件拦截
    fetch获取json的正确姿势
    js对象通过属性路径获取属性值
  • 原文地址:https://www.cnblogs.com/joeylee97/p/8427714.html
Copyright © 2011-2022 走看看