HTTP Servlet的原理(get和post使用详情)

 1.Servlet 快速入门

2.Servlet 执行流程

3.Servlet 生命周期

对象的生命周期指一个对象从被创建到被销毁的整个过程

 3.1Serclet的destroy方法调用

在控制台Terminal中输入  mvn tomcat7:run 等待 通过Ctrl + c 结束就可以看到destroy()的调用

 3.2获取ServletConfig对象 ServletConfig getServletConfig()使用技巧

 代码

@WebServlet(urlPatterns="/demo3",loadOnStartup = 1)
public class ServletDemo3 implements Servlet {
    private ServletConfig config;

    @Override
    public void init(ServletConfig config) throws ServletException {
        this.config = config;
        System.out.println("init...");
    }
    @Override
    public ServletConfig getServletConfig() {
        return config;
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("servlet hello world~");
    }
     //获取Servlet信息 一般为空 不写
    @Override
    public String getServletInfo() {
        return "";
    }
}

 4.Servlet 体系结构

 4.1介绍getpost方法使用

1.get是在请求行里面

 2.post 在请求体里面

4.2调用get和post方法 

get是默认的调用方式,post需要定义在web.app中一个.htm文件进行调用

1.设置一个.html文件例如a.html文件,编写代码  

2.在浏览器中调用a.html如图所示

 

3.点击提交后,浏览器就会自动以post的方式去访问demo4的资源了 

 

4.就可以看到post调用了  

 4.3.判断get和post的调用方式,简写demo,可以通过继承的方式来简化代码

1.判断get和post的调用方式

 //2. 判断
        if("GET".equals(method)){
            // get方式的处理逻辑
            doGet(req,res);
        }else if("POST".equals(method)){
            // post方式的处理逻辑
            doPost(req,res);
        }

2.编写一个父类 MyHttpServlet ,编写get和post方法判断的方法

doGet(req,res);  doPost(req,res);

 代码:

package com.itheima.web;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class MyHttpServlet implements Servlet {
    @Override
    public void init(ServletConfig config) throws ServletException {

    }

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

    @Override
    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);
        }
    }

    protected void doPost(ServletRequest req, ServletResponse res) {
    }

    protected void doGet(ServletRequest req, ServletResponse res) {
    }

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

    @Override
    public void destroy() {

    }
}

3.子类继承父类,重写调用父类的方法

 4.运行调用demo5

5.调用成功

4.4.也可以通过java自带的HttpServlet当作父类,直接去调用其中的方法

5.Servlet urlPattern配置

5.1配置多个 urlPattern

5.2urlPattern配置规则:

 5.3.XML 配置方式编写 Servlet

在web.app--WEB-INF--web.xml文件进行配置

    <!--
        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>
</web-app>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值