Servlet技术5_请求的分发处理

servlet程序中,由于service方法只有一个,但是请求有post和get两种,因此需要请求的分发处理

在工程下的web文件夹下创建一个html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://localhost:8080/06_servlet1_war_exploded/hello" method="post">
    <input type="submit">
</form>
<br/>
<form action="http://localhost:8080/06_servlet1_war_exploded/hello" method="get">
    <input type="submit">
</form>
</body>
</html>

在servlet程序中的service方法中,通过ServletRequest对象的子类型,调用getMethod方法,获取请求的类型

    /**
     * service方法是专门用来处理请求和响应的(只要访问HelloServlet程序,他就会执行这个方法)
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    
    
        System.out.println("3.service方法————HelloServlet被访问了");

        /*  ServletRequest对象中有一种getMethod方法
            ServletRequest对象不能直接调用getMethod方法,他的子类型(子接口)可以使用
         */
        HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
        String method = httpServletRequest.getMethod();
//        System.out.println(method);
        if ("GET".equals(method)) {
    
    
            System.out.println("get请求");
        } else if ("POST".equals(method)) {
    
    
            System.out.println("post请求");
        }
    }

注:有时候get请求和post请求很多,显得代码臃肿,有时会通过写doGet和doPost两个方法,通过方法调用去实现需要的功能。

猜你喜欢

转载自blog.csdn.net/weixin_45024585/article/details/108855379