代码编织梦想

http

http特点

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
    缺点:多次请求间不能共享数据。
    优点:速度快

http请求数据格式

在这里插入图片描述

请求行

请求的第一行,其中

  •      GET:请求方式
    
  •      /:请求资源路径
    
  •      HTTP/1.1:协议版本
    

请求头

请求的第二行开始,以键值对的格式出现,其中

  •      host:请求的主机号
    
  •      user-agent:浏览器版本
    
  •      accept:表示浏览器能接收的资源类型
    
  •      accept-language:浏览器偏好的语言
    
  •      accept-encoding:浏览器可以支持的压缩类型
    

请求体

请求的最后一部分,存放请求参数
在这里插入图片描述

get和post的区别

  1. get请求参数在请求行,没有请求体
    post请求参数在请求体中
  2. get请求参数有大小限制,2-8k
    post参数没有大小限制
  3. 浏览器访问后台全是get请求,
    get请求会显示在浏览器地址栏,post不会
  4. 请求刷新时post会重新提交数据
  5. get请求会缓存,post不会
  6. get的请求更快,因为直接走的缓存
  7. 每次必须请求后台,必须是新请求,不要走缓存,用post
  8. get请求只能进行URL编码(get请求必须是字符串),post请求所有格式(文件图片视频都可以)

http响应数据格式

在这里插入图片描述

响应行

响应的第一行,其中

  •      HTTP/1.1:协议版本
    
  •      200:响应状态码,状态响应码重点如下
    
    •          1xx:响应中
      
    •          2xx:成功
      
    •          3xx:重定向
      
    •          4xx:客户端错误
      
    •          5xx:服务器端错误
      
  •      OK:状态码描述
    

响应头

从响应的第二行开始,格式为key:value

响应体

响应的最后一行,存放响应数据

Tomcat

web访问后台需要一个容器,这个容器就是Tomcat。
Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
Tomcat 也被称为 Web容器、Servlet容器。Servlet 需要依赖于 Tomcat才能运行

web服务器

Web服务器是一个应用程序(软件),对 HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是“提供网上信息浏览服务”

如何启动Tomcat以验证安装完成

首先,下载Tomcat的时候需要注意版本问题,并且安装Tomcat之前需要先安装jdk。
此外,不建议下载压缩版,建议直接下载安装版。压缩版需要配置环境变量,而安装版不需要。
安装好Tomcat之后,右键计算机,在管理----服务之中找到Apache Tomcat 9.0 Tomcat9,启动服务在浏览器访问localhost:8080
如果可以正常访问,则说明安装成功。

创建javaweb项目

  1. 直接创建一个Maven项目
  2. 添加web服务支持。右键项目,打开框架支持,只用勾选第一个即可。完成后项目会多出一个web目录。里面存放前端页面,而src里面的main目录是最后的成品,test目录是用来专门做测试的,再往下的java目录存放java文件,resource则用于存放各种资源文件。
  3. 添加Tomcat。右上角添加,找到Tomcat Service(不是TomcatEE),点击local,找到自己的Tomcat文件夹,ok之后点击fix,将Application context里面只留下/,然后ok,完成操作。
  4. 右上角debug启动项目,访问的是web下面的index.jsp页面

为什么能够直接访问到index.jsp

这是Tomcat的conf文件夹下面的web.xml所决定的
在这里插入图片描述
先找index.html找不到再找index.htm再找不到则寻找index.jsp
如果想要默认打开界面是自己的选择的,则修改web.xml文件,不过一般不修改Tomcat的,修改自己项目里面的web.xml
在这里插入图片描述
修改之后建议重启服务器,或者刷新项目
在这里插入图片描述
如果运行的时候控制台有乱码,可能是中文的问题,在Tomcat的conf目录下找到logging.properties,将里面的UTF-8全部修改为GBK,重新启动服务后中文即可正常显示

servlet

Servlet 是 Java提供的一门动态web资源开发技术。
Servlet 是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet。

servlet使用

  1. 使用servlet需要在pom.xml里面导入servlet的jar包。
    在这里插入图片描述
    依赖从哪儿来呢?可以直接百度Maven Servlet依赖,也可以搜索search.maven.org搜索servlet/javax.servlet找到想要的版本的依赖。
  2. 创建:定义一个类,实现 Servlet接口,并重写接口中所有方法,并在 service方法中输入一句话,这里是输出"Servlet service"
package com.wanxi.servlet;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/index")
public class IndexServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
		System.out.println("Servlet service");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

  1. 配置:在类上使用@WebServlet 注解,配置该 Servlet的访问路径。
  2. 访问:启动 Tomcat,浏览器输入URL 访问该Servlet。如果地址所表示的页面没有写,那么浏览器会是一片空白,但是控制台会输出对应的信息。
  3. 此外,还可以继承HttpServlet类,只需要重写doGet和doPost方法。
package com.wanxi.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HttpServlet doGet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("HttpServlet doPost");
    }
}

WebServlet里面的地址唯一,且以“/”开头
查询用get,更新(增加、删除、修改)用post;涉及到密码等敏感信息以及IO流,用post

servlet生命周期

Servlet由web服务器创建,由web服务器调用方法Servlet方法

    1. 加载和实例化 当Servlet第一次被访问时,由容器创建Servlet对象
    1. 初始化 调用init()方法,只调用一次
    1. 请求处理 调用service()方法
    1. 服务终止 销毁,调用destory()方法

urlPattern配置规则

  •   一个servlet可以配置多个地址
    
  •  精确匹配     @WebServlet("/user/select")  访问准确的地址
    
  •  目录匹配     @WebServlet("/user/*")       当前目录下都可以访问
    
  •  拓展名匹配   @WebServlet("*.do")           拓展名为do的所有页面
    
  •  任意匹配     @WebServlet("/")或者@WebServlet("/*")任意路径都能访问
    

“/”和“/*”的区别

简单的说就是使用“/*”的话,如果地址错误将会在浏览器报错,显示404。如果使用的是“/”,那么地址输入错误将会指向一个默认的页面,不会在浏览器显示404,但是控制台还是会输出对应的信息(如果写了的话)。比如:

package com.wanxi.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/")
public class DefaultServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("ERRO");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

浏览器是空白,但是控制台却输出了信息
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_56013994/article/details/128816301

tomcat 和 servlet 的关系_llllllllee的博客-爱代码爱编程

在刚开始学 java web 的时候,使用的是 MyEclipse,只知道 web 项目要写 servlet,然后在 servlet 中去调用逻辑层,最后返回相应的结果,响应前台。最后配合 web.xml 部署描述文件,we

Tomcat、Servlet、Servlet容器-爱代码爱编程

Tomcat 简单一句话:Tomcat是一个Servlet容器。这个容器当然就是装Servlet用的。那Servlet是什么,就是一个(按照Servlet规范写的一个)java类。 这个“装”怎么理解:*实现了Servlet、JSP规范,同时提供http服务。*其实,就像社会与人的关系:社会制定能够规范,人按照规范做事。然后社会保证你和其他人的良好沟通。

Tomcat Servlet中文乱码问题解决-爱代码爱编程

背景 一些基于Tomcat的传统Web项目,在Servlet处理HttpServletRequest和HttpServletResponse的时候,如果未正确设置编码方式,中文内容在接收端往往表现为为乱码。 1、在GET请求中获取请求参数,中文乱码。 原因: Tomcat默认编码为iso-8859-1。 几种处理方式: 直接进行转码:Str

tomcat和servlet的关系-爱代码爱编程

tomcat和servlet的关系 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供

IDEA部署Tomcat以及解决Servlet 404的问题-爱代码爱编程

​ 这几日在做web项目,有快一年的时间没有碰servlet了,今天部署了两个多小时都是404,然后我疯狂百度,疯狂配置,有点第一次配资部署Tomcat的味道了,hhh~~最终还是部署成功了,所以来写一篇博客记录一下我犯的错误,顺便总结一下经验。 ​ 第一步我们先新建一个Java web的项目 然后我们需要新建两个文件夹一个是classes一个是lib,

tomcat和servlet的关系及区别-爱代码爱编程

tomcat和servlet的关系及区别 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能

Tomcat到Servlet再到DispatcherServlet-爱代码爱编程

前言 写这篇文章的初衷其实是上一篇文章之后的想法,在TCP/IP五层模型视角下的浏览器请求中我以TCP/IP五层模型的视角分析了浏览器请求的传输过程,浏览器输入的url经过http封装后到达服务端TCP层后,得到的是个http请求,那么在服务端怎么对这个消息进行处理并返回响应? 先上结论,Tomact的Connector会监听端口,接受TCP请求并产生

tomcat手动配置servlet-爱代码爱编程

1.准备工作 如下图,先按照要求创建好各个文件 这时候如果你觉得能运行,那就错了(我一开始卡在这了) idea的项目结构 如果学习过用idea创建servlet应用,你肯定会发现,这里提供的web.xml根本不完整 请用以下代码囊括上述的servlet标签 <?xml version="1.0" encoding="UTF-8"?> &

Tomcat创建Servlet容器-爱代码爱编程

Tomcat启动简单介绍 Tomcat如何创建servlet容器的??servlet是处理http请求的 Tomcat如何接收请求,并找到对应的servlet处理?? Tomcat访问应用,一般的配置是 <Context path="/projectOne" docBase="D:\projects\projectOne" reloadabl

使用Tomcat运行Servlet程序-爱代码爱编程

Tomcat安装教程 参考:Tomcat安装配置教程 Tomcat文件结构 Tomcat启动 1. 启动Tomcat服务器 如果在浏览器输入localhost:8080,出现Tomcat首页即启动成功。 Tomcat使用 Java提供了Servlet API,我们在Servlet API中实现自己的Servlet来处理Http请求 首先搭

input标签内容提交到servlet程序导致乱码的解决方法-爱代码爱编程

情况说明 乱码如上,我使用我设计的页面添加数据到数据库中后会发现数据库中的数据会出现乱码,但是其实真正的原因应该是这些表单数据传递到servlet程序的过程中由于编码的格式出现了乱码.但是后面终于解决了. 查看网页的编码格式 按下F12,再控制台/Console中输入 document.charset 查看数据库的编码格式 show

Tomcat&Servlet 运行原理讲解-爱代码爱编程

文章目录 一、客户端(浏览器)与服务器之间的交互二、Tomcat启动过程三、Tomcat处理请求过程四、Servlet的service方法 在从前的时候,想要运行一个Java代码,就必须要实现main方法,这是程序的入口,通过初识 Servlet 就会发现没有实现 main 方法,程序就被成功调用,并且还能够在浏览器除看见想要看见的结果,这是为什

tomcat和初学servlet_tomcat 二次开发-爱代码爱编程

文章目录 一、Tomcat1.Tomcat的基本介绍2.Tomcat中的文件解释3.Tomcat的打开和关闭4.使用Tomcat的目的 二、Servlet1.Servlet介绍2.利用Java来写Serv

servlet部署教程(基于tomcat)_javax.servlet-爱代码爱编程

⭐相关阅读推荐⭐  Tomcat :Tomcat使用教程                   Smart Tomcat插件使用教程(IDEA)  Servlet : Servlet部署教程(基于Tomcat) 前端网络:Fiddler使用教程(HTTP抓包 前端debug)                   HTTP、HTTPS协议详解  

idea中运行tomcat servlet程序出现http status 500错误的解决方案_idea启动tomcat项目报错500-爱代码爱编程

路径没有错,,环境变量都配置了的情况下我遇到的情况: 1导入jdbc   jar包后.  需要Library 2.  配置tomcat   添加lib    tomcat  依赖 3.由于执行的先后顺序可能需要    fix  把依赖重新加入到部署包 里面 4.再检查以下

【tomcat】壹 -爱代码爱编程

文章目录 Tomcat简介Tomcat的安装和删除Tomcat的安装Tomcat文件夹下各文件的作用解决Tomcat运行时cmd命令乱码的问题Tomcat的删除 TomCat的使用Tomcat端口号的修改