get、post、put、delete、实现地址栏请求参数

本文详细介绍了如何在Java中使用HttpServlet处理不同HTTP方法(GET,POST,PUT,DELETE),以及两种不同的URL参数传递方式:一种是通过地址栏,另一种是通过路径。还展示了如何使用Postman进行测试。
摘要由CSDN通过智能技术生成

前言:

在http请求中get方法、post方法、put方法、delete方法都可以实现地址栏的参数请求。

地址栏的参数请求一共有两种分别是:

1、http://lcoalhost:8080/web01/hello04?username=zhangsan&age=99&gender=男
2、http://localhost:8080/web01/hello04/zhangsan/99/男

发送的请求使用Postman来测试更方便一些

第一种请求方式的实现
java代码

创建好项目并继承HttpServlet类,重写get,post,put,delete的四个方法,记得把里面的父类方法删掉,在servlet中是使用getParameter方法来接受参数

代码展示

@WebServlet(urlPatterns = "/hello04")
public class MyServlet04 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String age = req.getParameter("age");
        String gender = req.getParameter("gender");
        System.out.println(username);
        System.out.println(age);
        System.out.println(gender);
        System.out.println("get");  
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String age = req.getParameter("age");
        String gender = req.getParameter("gender");
        System.out.println(username);
        System.out.println(age);
        System.out.println(gender);
        System.out.println("post");
    }

    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String age = req.getParameter("age");
        String gender = req.getParameter("gender");
        System.out.println(username);
        System.out.println(age);
        System.out.println(gender);
        System.out.println("put");
    }

    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String age = req.getParameter("age");
        String gender = req.getParameter("gender");
        System.out.println(username);
        System.out.println(age);
        System.out.println(gender);
        System.out.println("delete");
    }
}
Postman测试

这里介绍以下Postman,点绿光哪里会出现下拉框里面可以切换各种请求方法以达到我们的目的,

后面红色线条就是地址栏参数

http://lcoalhost:8080/web01/hello04?username=zhangsan&age=99&gender=男

效果图

第二种请求方式
java代码

注意:因为这个参数是由/并接上来的,所以我们在配置路径访问的时候要在后面加上*,意思是匹配所有请求,包含服务器的所有资源

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

 注意:这里获取的参数和第一种方法不一样请仔细看代码

@WebServlet(urlPatterns = "/hello04/*")
public class MyServlet04 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             
        String scheme = req.getScheme();//http获取协议
        String serverName = req.getServerName();//localhost获取服务名
        int serverPort = req.getServerPort();//8080获取服务端口
        String contextPath = req.getContextPath();//web01获取项目上下文路径
        String servletPath = req.getServletPath();//hello04获取路径
        String pathInfo = req.getPathInfo();//zhangsan/99/男
        String[] split = pathInfo.split("/");
        System.out.println("scheme"+scheme);
        System.out.println("serverName"+serverName);
        System.out.println("serverPort"+serverPort);
        System.out.println("contextPath"+contextPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("Arrays.toString(split)"+Arrays.toString(split));


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String scheme = req.getScheme();//http获取协议
        String serverName = req.getServerName();//localhost获取服务名
        int serverPort = req.getServerPort();//8080获取服务端口
        String contextPath = req.getContextPath();//web01获取项目上下文路径
        String servletPath = req.getServletPath();//hello04获取路径
        String pathInfo = req.getPathInfo();//zhangsan/99/男
        String[] split = pathInfo.split("/");
        System.out.println("scheme"+scheme);
        System.out.println("serverName"+serverName);
        System.out.println("serverPort"+serverPort);
        System.out.println("contextPath"+contextPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("Arrays.toString(split)"+Arrays.toString(split));
    }

    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String scheme = req.getScheme();//http获取协议
        String serverName = req.getServerName();//localhost获取服务名
        int serverPort = req.getServerPort();//8080获取服务端口
        String contextPath = req.getContextPath();//web01获取项目上下文路径
        String servletPath = req.getServletPath();//hello04获取路径
        String pathInfo = req.getPathInfo();//zhangsan/99/男
        String[] split = pathInfo.split("/");
        System.out.println("scheme"+scheme);
        System.out.println("serverName"+serverName);
        System.out.println("serverPort"+serverPort);
        System.out.println("contextPath"+contextPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("Arrays.toString(split)"+Arrays.toString(split));
    }

    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String scheme = req.getScheme();//http获取协议
        String serverName = req.getServerName();//localhost获取服务名
        int serverPort = req.getServerPort();//8080获取服务端口
        String contextPath = req.getContextPath();//web01获取项目上下文路径
        String servletPath = req.getServletPath();//hello04获取路径
        String pathInfo = req.getPathInfo();//zhangsan/99/男
        String[] split = pathInfo.split("/");
        System.out.println("scheme"+scheme);
        System.out.println("serverName"+serverName);
        System.out.println("serverPort"+serverPort);
        System.out.println("contextPath"+contextPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("servletPath"+servletPath);
        System.out.println("Arrays.toString(split)"+Arrays.toString(split));
    }
}

效果图

获取到的参数是数组

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值