get/post分发处理

servlet中的get/post两种分发处理的方式

继承servlet接口:

package servlet_practice;

import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import org.w3c.dom.ls.LSOutput;

import java.io.IOException;

public class sevlt_interface implements Servlet {
    //servlet生命周期
    //1.执行servlet的构造器方法
    //2.执行init初始化方法
    //前两步是第一次访问时创建servlet会被调用
    //3.执行service方法
    //第三步每次访问都会被调用
    //4.执行destory方法
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2.执行init初始化方法");
    }
    public sevlt_interface(){
        System.out.println("1.执行servlet的构造器方法");
    }
    @Override
    public ServletConfig getServletConfig(
    ) {

        return null;
    }

    @Override
    //service方法是专门用来处理请求和相应的
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3.执行service方法");
        System.out.println("被访问了");
        //servletRequest中的方法可以得到请求方式 需强制转型
        HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
        String s = httpServletRequest.getMethod();
        if (s.equals("GET")){
            System.out.println("执行get方法");
        }
        if (s.equals("POST")){
            System.out.println("执行post方法");
        }
    }

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

    @Override
    public void destroy() {
        System.out.println("4.执行destory方法");
    }
}

继承父类:

package servlet_practice;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class sevlt_extends extends HttpServlet{
    @Override
    //在get请求时调用
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //super.doGet(req, resp);需要对父类中的方法进行重写否则出现405
        System.out.println("调用了get方法");
    }

    @Override
    //在post请求时调用
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("调用了post方法");
    }
}

表单中设置提交方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>get与post</title>
</head>
<body>
    <form action="http://localhost:8080/Dynamic_Web_war_exploded/hello" method="get">
        <input type="submit" value="get接口提交">
    </form>
    <form action="http://localhost:8080/Dynamic_Web_war_exploded/hello" method="post">
        <input type="submit" value="post接口提交">
    </form>
    <form action="http://localhost:8080/Dynamic_Web_war_exploded/hello1" method="get">
        <input type="submit" value="get继承提交">
    </form>
    <form action="http://localhost:8080/Dynamic_Web_war_exploded/hello1" method="post">
        <input type="submit" value="post继承提交">
    </form>
</body>
</html>

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="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--servlet标签给Tomcat配置Servlet程序-->
    <servlet>
        <!--servlet-name标签给Servlet程序起别名一般是类名-->
        <servlet-name>sevlt_interface</servlet-name>
        <!--servlet-class是Servlet程序的全类名-->
        <servlet-class>servlet_practice.sevlt_interface</servlet-class>
    </servlet>
    <!--servlet-mapping标签给给Servlet程序配置访问地址-->
    <servlet-mapping>
        <!--servlet-name标签作用是告诉服务器 当前配置的地址给哪个Servlet程序使用-->
        <servlet-name>sevlt_interface</servlet-name>
        <!--url-pattern配置访问地址-->
        <!--通常以/打头后面跟访问路径-->
        <!--/   斜杠在服务器解析时表示地址为 http://ip:port/工程路径
            /hello 表示地址为http://ip:port/工程路径/hello
        -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>sevlt_extends</servlet-name>
        <servlet-class>servlet_practice.sevlt_extends</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>sevlt_extends</servlet-name>
        <url-pattern>/hello1</url-pattern>
    </servlet-mapping>
</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值