Web核心

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


一、B/S模式

浏览器/服务器

二、HTTP

hypertext transform protocol 

基于tcp 请求 对事物没有记忆功能 每一次都要重新加载

常见请求头:

host:请求头
User-Agent:浏览器版本
Accept:浏览器能接收的资源类型 such as text
Accept-language:表示浏览器偏好语言,服务器可以据此返回不同语言的网页
Accept-Encoding:浏览器可以支持的压缩类型,如gzip、deflate等




get请求头没有请求体 比如密码直接放在请求行中

post请求头 有请求体 密码放在请求体里面

2.响应数据格式

代码如下(示例):

1.响应行:第一行
2.响应头:第二行 开始 key values
3.响应体:后面的

该处使用的url网络请求的数据。

3.状态码


三、idea创建webapp项目

1.下载tomcat 并解压

2.创建项目

 3.成功

4. 配置本地tomcat

1.

2.

3

 

直接加a.html就可以

 四、Servlet

1.快速入门

1.创建web项目 导入Servlet依赖坐标

  <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>5.0.0</version>
    </dependency>

注意:tomcat10 对应的servlet版本是 5.0(如果版本太低会报错)

java.lang.NoClassDefFoundError: javax/servlet/Servlet

 2.定义一个类 实现Servlet接口 重写所有方法

package test;

import jakarta.servlet.annotation.WebServlet;

import jakarta.servlet.*;
import java.io.IOException;

@WebServlet("/c")
public class my 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("成功啦成功啦");
    }

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

    @Override
    public void destroy() {

    }


}

3.在类上使用 @WebServlet注释 配置Servlet的访问路径 如上

4.启动

 空白界面就成功啦 

控制台有以下输出就ok啦

 

2.Servlet 生命周期

1.加载和实例化 servlet由  tomcat 创建 默认

2.初始化:调用Servlet init()方法 只调用一次哈

3.请求处理 调用service() 会调用很多次

4.终止 不是强制关闭 会调用destroy()

3.方法

获取ServletConfig对象

public ServletConfig getServletConfig() {
        return null;
    }
获取Servlet信息
 public String getServletInfo() {
        return null;
    }

4.Servlet 体系结构

 

 

为什么分 get post 方法?

请求参数不一样 所以要写不同的逻辑 

如何调用 ?

获取请求方式 写if else 

 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // 根据请求方式的不同,进行分别的处理
        HttpServletRequest request = (HttpServletRequest) req;
        //1. 获取请求方式
        String method = request.getMethod();
        //2. 判断
        if("GET".equals(method)){
            // get方式的处理逻辑
            doGet(req,res);
        }
        else if("POST".equals(method)){
            // post方式的处理逻辑
            doPost(req,res);
        }
    }

最基本的方法

public class ServletDemo9 extends HttpServlet {

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

        System.out.println("demo9 get...");
    }

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


    }
}

5.Servlet urlPsttern配置 

/**
 * urlPattern:
 *  * 目录匹配:/user/*
 */

@WebServlet(urlPatterns = "/user/*")

urlPattern({})

/**
 * urlPattern:
 *  * 任意匹配:/
 */

//@WebServlet(urlPatterns = "/")//不建议用

 

*  * 任意匹配:/*
/**
 * urlPattern:一个Servlet可以配置多个访问路径
 */

@WebServlet(urlPatterns = {"/demo7","/demo8"})

6.XML 配置Servlet

 

 <!--
        Servlet 全类名
    -->
    
    <servlet>
        <servlet-name>demo13</servlet-name>
        <servlet-class>com.itheima.web.ServletDemo13</servlet-class>
    </servlet>
    
    
    <!--
        Servlet 访问路径
    -->
    
    <servlet-mapping>
        <servlet-name>demo13</servlet-name>
        <url-pattern>/demo13</url-pattern>
    </servlet-mapping>

不好用啊 不如直接 @WebServlet

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值