首页 技术 正文
技术 2022年11月11日
0 收藏 719 点赞 3,037 浏览 2093 个字

Servlet执行流程

  • 客户端浏览器向Tomcat服务器发送Http请求
  • Tomcat解析web.xml文件,找到对应的url以及servlet-name,根据servlet-name找到对应的servlet进行实例化
  • 执行servlet的service方法
  • 将service执行结果响应给浏览器
  • 浏览器解析然后展示

<img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1">​

补充

  • Servlet默认情况下是第一次访问时实例化的,也可以通过web.xml配置load-on-startup,使其在服务器启动的时候实例化
  • Servlet是单例的,利用多线程来提供web服务

Servlet生命周期是什么

  • 装载 – web.xml
  • 创建 – 构造函数
  • 初始化 – init()
  • 提供服务 – service()
  • 销毁 – destory()

Http请求的结构

  • HTTP请求包含三部分:请求行、请求头、请求体

<img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1">​

  • get请求没有请求体

Http响应的结构

  • HTTP响应包含三部分:响应行、响应头、响应体

<img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1">​

请求转发

  • 请求转发是服务器跳转,只会产生一次请求
  • 请求转发语句是:request.getRequestDispatcher().forward()

响应重定向

  • 重定向则是浏览器端跳转,会产生两次请求
  • 响应重定向语句是:response.sendRedirect()

请阐述Session的原理

Session即用户会话,与客户端浏览器窗口绑定的,存储在服务器内部的数据。

当浏览器第一次向Tomcat发送请求,Tomcat收到请求后,会在运行内存中创建一个全新的存储空间,并赋予一个SessionId;如果我们使用session.setAttribute()方法,会把值存放到内存空间(自定义属性);处理完后响应回传SessionId给浏览器,浏览器会把SessionId保存到Cookie中;第二次请求时,SessionId会发送给Tomcat,Tomcat发现已经存在,调用session.getAttribute()方法会把存储内容直接响应。

<img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1">​

JSP九大内置对象是什么

<img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" width="15" height="15" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1">​

Statement和PreparedStatement的区别

  • PreparedStatement是预编译的SQL语句,效率高于Statement
  • PreparedStatement支持?操作符,相对于Statement更加灵活
  • PreparedStatement可以防止SQL注入,安全性高于Statement

JDBC使用步骤

  • 加载JDBC驱动
  • 创建数据库连接(Connection)
  • 创建命令(Statement)
  • 处理结果(ResultSet)
  • 关闭连接

感谢耐心观看!!!
如有不足,欢迎指出,一起成长!
如有帮助,请点赞给予支持,感谢!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,497
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298