Servlet 的初理解

                                           1. http1.1

  持久连接和流水线连接允许 Web 浏览器通过单个持久连接发送多个请求;(短链接)
在此期间,出现了 HTTPS (安全超文本传输协议)。它是使用 SSL/TLS 进行安全加密通信的 HTTP
的安全版本。
底程是TCP:TCP 是 面向连接的、可靠的、基于字节流的传输层 通信协议

  请求和响应报文

   客户端与服务端通过报文联系

报文的格式:主体上分为报文首部和报文主体,中间空行隔开,报文部首可以继续细分为 "" ""

请求报文

                   请求首行(请求行); GET/POST 资源路径?参数 HTTP/1.1(请求行:请求方式、资源路径、协议及版本。)

                   请求头信息(请求头)    ;

                   

-主机虚拟地址
Host: localhost:8080   
-长连接
Connection: keep-alive 
-请求协议的自动升级[http的请求,服务器却是https的,浏览器自动会将请求协议升级为https的]
Upgrade-Insecure-Requests: 1  
- 用户系统信息
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
- 浏览器支持的文件类型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*
;q=0.8
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]:   可以通过此路径跳转回上一个页面,广
告计费,防止盗链
Referer: http://localhost:8080/05_web_tomcat/login.html
- 浏览器支持的压缩格式
Accept-Encoding: gzip, deflate, br
- 浏览器支持的语言
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
                    空行;
                        
                   请求体: 使用 form 表单发送 POST 请求,请求体中才有数据

响应报文

                   
响应首行( 响应行 );协议 / 版本状态码状态码描述(HTTP/1.1 200)
响应头信息( 响应头 );
 
Server: Apache-Coyote/1.1            服务器的版本信息
Accept-Ranges: bytes
ETag: W/"157-1534126125811"
Last-Modified: Mon, 13 Aug 2018 02:08:45 GMT
Content-Type: text/html              响应体数据的类型[浏览器根据类型解析响应体数据]Content-Length: 157                  响应体内容的字节数
Date: Mon, 13 Aug 2018 02:47:57 GMT  响应的时间,这可能会有8小时的时区差
空行;
响应体: 需要浏览器解析使用的内容 [ 如果响应的是 html 页面,最终响应体内容会被浏览器显示到页面中
响应状态码
200 请求成功,浏览器会把响应体内容(通常是 html )显示在浏览器中;
302 重定向,当响应码为 302 时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个
响应头 Location 指定新请求的 URL 地址;
304 使用了本地缓存;
404 请求的资源没有找到,说明客户端错误的请求了不存在的资源;
405 请求的方式不允许;
500 请求资源找到了,但服务器内部出现了错误;

2.servlet

       静态资源:无需在程序运行时通过代码运行生成的资源,在程序运行之前就写好的资源. 例如:html css js img ,音频文件和视频文件;

      动态资源:需要在程序运行时通过代码运行生成的资源,在程序运行之前无法确定的数据,运行时动态生成,例如Servlet,Thymeleaf ... ...; 动态资源指的不是视图上的动画效果或者是简单的人机交互效果;

Servlet:

用来接收、处理客户端请求、响应给浏览器的动态资源。在整个 Web 应用中, Servlet 主要负责接收处理请求、协同调度功能以及响应数据。我们可以把Servlet 称为 Web 应用中的 控制器
for example:
校验注册时,用户名是否被占用。通过客户端向一个 Servlet 发送请求,携带 username ,如果用户
名是 'atguigu' ,则向客户端响应 NO ,如果是其他,响应 YES
   
publicclassUserServlet  extendsHttpServlet {
    @Override
    protectedvoidservice(HttpServletRequestreq, HttpServletResponseresp) throws ServletException, IOException {
        // 获取请求中的键值对参数   key=value
        Stringusername=req.getParameter("username");
        if("atguigu".equals(username)){
            //通过响应对象响应信息
            resp.getWriter().write("NO");
        }else{
            resp.getWriter().write("YES");
        }
在service写:
自定义一个类,要继承 HttpServlet 类;
重写 service 方法,该方法主要就是用于处理用户请求的服务方法;
HttpServletRequest 代表请求对象,是有请求报文经过 Tomcat 转换而来的,通过该对象可以获取请
求中的信息;
HttpServletResponse 代表响应对象,该对象会被 Tomcat 转换为响应的报文,通过该对象可以设置
响应中的信息;
Servlet 对象的生命周期 ( 创建、初始化、处理服务、销毁 ) 是由 Tomcat 管理的,无需自己 new
HttpServletRequest HttpServletResponse 两个对象也是由 Tomcat 负责转换,在调用 service 方法时传
入给我们用的;

在web.xml写:有便捷方法@WebServlet("路径")

<?xmlversion="1.0" encoding="UTF-8"?>
<web-appxmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee 
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <servlet>
        <!--给UserServlet起一个别名-->
        <servlet-name>userServlet</servlet-name>
        <servlet-class>com.atguigu.servlet.UserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--关联别名和映射路径-->
        <servlet-name>userServlet</servlet-name>
        <!--可以为一个Servlet匹配多个不同的映射路径,但是不同的Servlet不能使用相同的url-pattern-->
        <url-pattern>/userServlet</url-pattern>
       <!-- <url-pattern>/userServlet2</url-pattern>-->
        <!--
            /        表示通配所有资源,不包括jsp文件
            /*       表示通配所有资源,包括jsp文件
            /a/*     匹配所有以a前缀的映射路径
            *.action 匹配所有以action为后缀的映射路径
        -->
       <!-- <url-pattern>/*</url-pattern>-->
    </servlet-mapping>
</web-app>
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值