JavaWeb学习(二)之HTTP Servlet

JavaWeb学习(二)之HTTP Servlet

推荐视频 B站:遇见狂神说JavaWeb视频:https://www.bilibili.com/video/BV12J411M7Sj

1、HTTP

1.1、什么是HTTP

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

简单来说http就是一个简单的请求-响应协议。

工作原理如下

  • HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

  • Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。

  • Web服务器根据接收到的请求后,向客户端发送响应信息。

  • HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

1.2、HTTP请求

客户端—发请求(Request)—服务器

在这里插入图片描述

菜鸟教程

例如360导航:

请求 URL: https://hao.360.com/    请求地址
请求方法: GET					   get方法/post方法
状态代码: 200 / OK                 状态码:200

在这里插入图片描述

1.3、请求行
  • 请求行中的请求方式:GET
  • 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
1.4、消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
1.5、Http响应
  • 服务器—响应-----客户端

百度:

Cache-Control:private    缓存控制
Connection:Keep-Alive    连接
Content-Encoding:gzip    编码
Content-Type:text/html   类型
1.5.1、响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
1.5.2、响应状态码

在这里插入图片描述

200:请求响应成功 200

3xx:请求重定向

  • 重定向:你重新到我给你新位置去;

4xx:找不到资源 404

  • 资源不存在;

5xx:服务器代码错误 500 502:网关错误

2、Servlet

2.1、什么是servlet

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。我们可以这样理解Servlet是指Java语言实现的一个接口或者是实现了这个Servlet接口的类

2.2、第一个Servlet程序

第一步在 IDEA或者eclipse中创建一个web项目 这里以IDEA为例 下面提供两种创建web项目的方法

  1. 用Maven创建一个web项目 官网:https://maven.apache.org/ 在网上可以自己找教程下载配置maven

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

maven目录结构
在这里插入图片描述

项目建好后目录结构
在这里插入图片描述

2.用普通方法创建web项目
在这里插入图片描述

然后就在java目录下创建一个普通类 继承HttpServlet

public class HelloServlet extends HttpServlet {
   
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        System.out.println("doGet方法开始启动");
        PrintWriter writer = resp.getWriter();
        writer.print("Hello world ----helloServlet");
    }

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

然后在web.xml中进行配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SC_IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值