JavaWeb笔记03-Servlet

今日内容

  1. Servlet
  2. HTTP协议
  3. Request

Servlet

概念

步骤

执行原理

生命周期

Servlet3.0注解配置

Servlet的体系结构

  • Servlet – 接口
    • GenericServlet – 抽象类:将Servlet接口中其他方法做了默认空实现,只将service()方法作为抽象
      • 将来定义Servlet类时候,可以继承GenericServlet,实现service()方法即可
    • HTTPServlet – 抽象类:对http协议的一种封装,简化操作
      1. 定义类继承httpservlet方法
      2. 腹泻doGet/doPost方法

Servlet相关配置

  1. urlpattern:Servlet访问路径
    • 一个Servlet可以定义多个访问路径:@WebServlet({"/d4","/dd4","/ddd4"})
    • 路径定义规则:
      1. /xxx
      2. /xxx/xxx
      3. *.do*说白了就是通配符,这里注意前面不要加/

HTTP:

概念:Hyper Text Transfer Protocol 超文本传输协议

  • 传输协议: 定义了,客户端和服务器端通信时,发送数据的格式
  • 特点:
    1. 基于TCP/IP 的高级协议
    2. 默认端口:80
    3. 基于请求/响应模型的:一次请求对应一次响应
    4. 无状态的:每次请求之间相互独立,不能交互数据
  • 历史版本:
    • 1.0: 每一次请求响应都会建立新的链接
    • 1.1: 复用

请求消息数据格式:

  1. 请求行
    • 请求方式 请求url 请求协议/版本 GET/login.html HTTP/1.1
    • 请求方式:
      • HTTP协议有7种请求方式,常用的有2种
        • GET:
          1. 请求参数在请求行中,在url后
          2. 请求的url长度有限制的
          3. 不太安全
        • POST:
          1. 请求参数在请求体中
          2. 请求的url长度没有限制的
          3. 相对的安全(其实对于有心人来说,都是能看到的)
  2. 请求头(客户端告诉服务器的一些信息,头是固定的,值是不一样的)
    • 请求头名称:请求头值
    • 常见的请求头:
      1. User-Agent: 浏览器告诉服务器,我访问你使用的浏览器版本信息
        • 可以在服务端获取该头的信息,解决浏览器的兼容性问题
      2. Referer:http://localhost/login.html
        • 告诉服务器,我(当前的请求)从哪里来?
          • 作用:
            1. 防盗链:
            2. 统计工作
  3. 请求空行
    • 空行,用于分割POST的请求头和请求体的
  4. 请求体(正文)
    • 封装POST请求消息的请求体的
    • get方式的没有请求体的
    • post方式的请求体是带了一些参数username=zhangsan

响应消息数据格式:

登录

请求和响应的过程

  1. tomcat服务器会根据请求url的资源路径,创建对应的ServletDemo1对象
  2. tomcat服务器,会创建request和response对象,request对象中封装请求消息数据
  3. tomcat将request和response两个对象传递给service方法,并且调用service方法.
  4. 程序员(我们),可以通过request对象获取请求消息数据,通过通过response对象设置响应消息数据
  5. 服务器在给浏览器做出响应之前,会从response对象中拿程序员

request:

  1. request对象和response对象的原理
    1. request和response对象是有服务器创建的,我们来使用它们
    2. request对象是来获取请求消息的response是来设置响应消息
  2. request对象继承体系结构
ServletRequest -- 接口    | 继承
HTTPServletRequest -- 接口| 实现
org.apache.catalina.connector.RequestFacade类(tomcat)
  1. request:功能
    1. 获取请求消息数据
      1. 获取请求行数据
        • GET/day14/demo1?name=zhangsan HTTP/1.1
        • 方法:
          1. 获取请求方式:GET
            • String getMethod();
          2. 获取虚拟目录:day14
            • String getContextPath()
          3. 获取Servlet路径:/demo1
            • Stirng getServletPath
          4. 获取get方式请求参数:name = zhangsan
            • String getQueryString()
          5. 获取请求URI:/day14/demo1
            • String getRequestURI()
            • StringBuffer getRequestURL():http://loaclhost/day14/demo1
            • url:统一资源定位符:http://loaclhost/day14/demo1(中华人民共和国)
            • uri:统一资源标识符:/day14/demo1(共和国)
              我现在要说的是,uri比url大,同意吧,就像上面的比喻
          6. 获取协议版本:HTTP/1.1
            • String getProtocol()
          7. 获取客户机的IP地址
            • String getRemoteAddr()
      2. 获取请求头数据
      3. 获取请求体数据
    2. 其他功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发中无处不在的设计模式——动态代理模式

继续更新设计模式系列。写这个模式的主要原因是近期看到了动态代理的代码。 先来回想一下前5个模式: - Android开发中无处不在的设计模式——单例模式 - Android开发中无处不在的设计模式——Builder模式 - Android开发中无处不在的设计模式——观察者模式 - A…

用于MPEG-4视听流的RTP负载格式

MPEG-4的rtp协议封装英文原版 RFC 3016:http://www.rfc-editor.org/rfc/rfc3016.txt中文翻译:组织:中国互动出版网(http://www.china-pub.com/)RFC文档中文翻译计划(http://www.china-pub.com/compters/emo…

pycharm python 模板配置_windows下pycharm安装、创建文件、配置默认模板

本文为大家分享了windows下pycharm安装、创建文件、配置默认模板的具体步骤,供大家参考,具体内容如下步骤:下包 —->安装——>创建文件—->定制模板一、下包官方地址这里有企业版和社区版,老司机都知道社区版是免费的&am…

JavaWeb笔记02-Tomcat

今日内容 web相关概念回顾web服务器软件:TomcatServlet入门学习 web相关概念回顾 软件架构 C/S: 客户端/服务器端B/S: 浏览器/服务器端 资源分类 静态资源: 所有用户访问后,得到的结果都是一样的,成为静态资源,静态资源可以直接被浏览器解析 如:html, css ,JavaScript 动态资…

网上的画板代码收集和整理

修改后的代码[1]为,少了一个} package com.example.administrator.myapplication;import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.graphics.Canvas; import an…

如何写年终总结(转)

很多人不重视年终总结,觉得是一个非常令人厌烦的任务,往往是应付了事,短短几百字,对目前工作中存在的问题发现不够,思考不足,对自己一年的评价和未来一年的定位没有说明。造成的后果就是公司得不到来自基层…

cad移动时捕捉不到基点_CAD入门必备(一)移动和复制新手必看

cad也疯狂前言:CAD绘图之所以能够取代手工绘图,很大的一部分原因是因为它可以很方便的修改和重复利用,例如外参可以节省很大部分时间。而我们在使用CAD中,用得最频繁的功能就是移动和复制了,当然这也是新手必备的其中一…

H.264软件解码器在PXA270平台上的优化

罗 嵘,何 苦 时间:2009年04月24日摘 要: 研究了嵌入式系统中H.264 Baseline软件解码器设计和优化的问题,提出了四种有效的优化方法,并在PXA270平台上进行了测试。测试结果显示,综合使用提出的四种方法,H.26…

JavaWeb笔记04-解决GET与POST乱码问题

解决GET与POST乱码问题: 请求的乱码问题 GET:tomcat8版本之前,get请求会乱码 正常文字 --> UTF-8编码 --> 字节数组 --> ISO-8859-1 编码 --> 乱码文字 正常文字 <-- UTF-8编码 <-- 字节数组 <-- ISO-8859-1 编码 <-- 乱码文字解决乱码的两种格式: …

EF架构~codeFirst从初始化到数据库迁移

一些介绍 CodeFirst是EntityFrameworks的一种开发模式&#xff0c;即代码优先&#xff0c;它以业务代码为主&#xff0c;通过代码来生成数据库&#xff0c;并且加上migration的强大数据表比对功能来生成数据库版本&#xff0c;让程序开发人员不用维护数据库的变更&#xff0c;而…

Ubuntu用户Steam控制器不工作的解决办法

Steam 控制器已开始送货到世界各地游戏玩家手中&#xff0c;不过有朋友遇到 Steam 控制器在 Ubuntu 中无法正常工作&#xff0c;本文我们来介绍一下解决办法。该解决办法并非 Ubuntu 官方提出的最佳解决方案&#xff0c;不过还是可以临时解决 Ubuntu 用户 Steam 控制器不工作的…

lisp 车位块自动编号_机械车位做产权登记,真的适合吗?

为了更好地把握停车市场发展动向&#xff0c;给停车行业从业者提供一个发表观点、各抒己见的平台&#xff0c;共同促进停车行业的发展&#xff0c;《城市停车》开设热点版块&#xff0c;每期针对1-2个行业热点&#xff0c;广泛征集业内人士观点和看法。HOT TOPIC本期热点今年两…

JavaWeb笔记05-解决线程安全问题

线程安全问题: Servlet的service方法,每次被请求是,调用. 这个调用很特殊,是在新的子线程中调用的,当service方法执行完毕,子线程死亡了. 可以简单的理解为:service方法每次执行都是一个新的线程. package cn.xdl.demo1;import javax.servlet.ServletException; import jav…

Java并发编程实战 第14章 构建自定义的同步工具

状态依赖性 定义&#xff1a;只有满足特定的状态才能继续执行某些操作&#xff08;这些操作依赖于固定的状态&#xff0c;这些状态需要等待别的线程来满足&#xff09;。 FutureTask&#xff0c;Semaphroe&#xff0c;BlockingQueue等&#xff0c;都是状态依赖性的类。 条件队列…

webserver接口_SpringBoot内置源码解析WebServer初始化过程

WebServer 初始化过程在上一节中 Spring Boot 初始化了 WebServer 对应的工厂类。同时&#xff0c;我们也知道对应 Web容器的WebServer实现类有:TomcatWebServer、JettyWebServer和UndertowWebServer。这节重点讲解这些 WebServer 是如何被初始化&#xff0c;又如何启动的。Web…

提升应用程序弹性:保障工作负载正常运行

通过集群化、复制、快照、微服务和应用程序设计来提高企业工作负载的应用程序弹性和可用性。 应用程序的弹性和可用性是现代企业工作负载的关键属性。应用程序需要在硬件故障发生后&#xff0c;扛过服务故障(例如负载平衡器和域名系统错误)保持工作状态&#xff0c;并且可以忍受…

JDBC笔记01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties

学习目标 理解JDBC原理 掌握Connection接口的使用 掌握Statement接口的使用 掌握ResultSet接口的使用 掌握PreparedStatement接口的使用 掌握Properties类与配置文件的使用 JDBC 概念 JDBC (Java DataBase Connectivity) Java数据库连接技术的简称&#xff0c;提供连接各种常…

NVDKC6416平台H.264算法优化

本文转载自&#xff1a;http://blog.csdn.net/embedesign/archive/2009/09/15/4556486.aspx&#xff0c;版权归原作者&#xff0c;编辑&#xff1a;小乙哥 多媒体通信终端设备具有广泛的应用前景&#xff0c;可以应用于视频会议、可视电话、PDA、数字电视等各个领域&#xff0…

拦截器及 Spring MVC 整合

一、实验介绍 1.1 实验内容 本节课程主要利用 Spring MVC 框架实现拦截器以及 Spring MVC 框架的整合。 1.2 实验知识点 Spring MVC 框架拦截器1.3 实验环境 JDK1.8Eclipse JavaEE二、实验步骤 2.1 拦截器实现 在项目 hrms 的目录 src/main/java 下新建包 com.shiyanlou.interc…

高德地图轨迹回放_高德地图上线了一个新功能….

文、路人甲TM德地图这两天刚上线了一个叫做「家人地图」的功能&#xff0c;所谓家人地图顾名思义&#xff0c;就是你可以通过高德地图组建一个家人圈&#xff0c;在这个圈子里面你可以看到你的家人在什么位置&#xff0c;当你的家人到达什么位置的时候自动发送通知或者警告&…