首页 > 编程语言 >JavaWeb——HttpServletRequest获取请求头信息和请求中的参数信息用法

JavaWeb——HttpServletRequest获取请求头信息和请求中的参数信息用法

时间:2024-03-28 09:30:45浏览次数:24  
标签:HttpServletRequest 参数信息 请求 request Enumeration String println out

HttpServletRequest接口提供了访问HTTP请求信息的方法,包括请求行和请求头。下面是一些常用的HttpServletRequest方法,用于获取请求行和请求头信息。

  1. String getMethod() : 返回请求的HTTP方法,如GET、POST等。
  2. String getRequestURI() : 返回请求的URI,不包括查询字符串。
  3. String getQueryString() : 返回请求的查询字符串部分。
  4. String getHeader(String name) : 返回指定名称的请求头的值。
  5. Enumeration<String> getHeaderNames() : 返回所有请求头名称的Enumeration对象。

代码如下:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Enumeration;

public class MyServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");

        // 获取请求方法
        String method = request.getMethod();
        out.println("Request Method: " + method + "<br>");

        // 获取请求URI
        String requestURI = request.getRequestURI();
        out.println("Request URI: " + requestURI + "<br>");

        // 获取查询字符串
        String queryString = request.getQueryString();
        out.println("Query String: " + queryString + "<br>");

        // 获取所有请求头
        Enumeration<String> headerNames = request.getHeaderNames();
        out.println("<br>Request Headers:<br>");
        while (headerNames.hasMoreElements()) {
            String headerName = headerNames.nextElement();
            String headerValue = request.getHeader(headerName);
            out.println(headerName + ": " + headerValue + "<br>");
        }

        out.println("</body></html>");
    }
}

HttpServletRequest接口也提供了用于获取请求中键值对参数的方法:

  1. String getParameter(String name) : 返回指定名称的请求参数的值。
  2. Enumeration<String> getParameterNames() : 返回所有请求参数名称的Enumeration对象。
  3. String[] getParameterValues(String name) : 返回指定名称的请求参数的所有值。

代码如下:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Enumeration;

public class MyServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");

        // 获取单个参数值
        String param1 = request.getParameter("param1");
        out.println("Parameter 'param1' value: " + param1 + "<br>");

        // 获取所有参数名
        Enumeration<String> parameterNames = request.getParameterNames();
        out.println("<br>All Parameters:<br>");
        while (parameterNames.hasMoreElements()) {
            String paramName = parameterNames.nextElement();
            String[] paramValues = request.getParameterValues(paramName);
            out.print(paramName + ": ");
            for (String value : paramValues) {
                out.print(value + " ");
            }
            out.println("<br>");
        }

        out.println("</body></html>");
    }
}

标签:HttpServletRequest,参数信息,请求,request,Enumeration,String,println,out
From: https://blog.csdn.net/2401_82884096/article/details/136937881

相关文章

  • Fiddler(5)Statistics数据统计面板性能分析,Inspectors查看请求与响应
    Statistics数据统计面板,性能分析 重点:主要关注RTT,体现一个请求从发送到返回响应的时间反映一个请求的性能指标,其中主要需要关注RTT会展示全世界范围的请求平均数据showchart按钮,从饼状图中分别出哪些资源的请求耗时最多,从而对页面的访问进行访问速度优化Inspectors查......
  • jQuery在请求返回前增加遮罩问题
    好久没有使用jquery了;做了个小工具没有前端东西突然要用到了;就想到了jquery;为了增加用户体验体验,增加了一个页面,增加了用户点击按钮后的响应遮罩的显示和隐藏; 增加div<divid="loading-mask"><divid="loading-spinner"></div></div>增加css#loading-mask......
  • SpringBootWeb最新相关技术(上接maven):IDEA2023-Spring环境,http协议复习概览,web服务器To
    Spring官网HTTPs://spring.iospring生态(全家桶)基于SpringFramework基础框架。但如果我们基于该基础框架开发,会面临配置繁琐,入门难度大的问题,SpringBoot则可以快速开发(简化配置,快速开发)。1.SpringBootWeb入门使用SpringBoot开发一个Web应用,浏览器发起请求/hello之后,给浏......
  • 隐藏的图片在浏览器中的请求
    隐藏的图片在浏览器中的请求图片在页面中一般会以两种形式出现:img元素或者背景图片。那么在img或者使用背景图片的元素被隐藏之后,页面加载的时候浏览器会不会发送http请求加载图片呢?注:隐藏分为两种情况(display:none)和(visibility:hidden)接下来就对两种情况下不同浏览器的请求情......
  • 写请求异步化方案
    参考:https://news.sohu.com/a/566698836_121124376https://www.cnblogs.com/maohuidong/p/17147870.html方向:减少写动作的耗时,提升写动作的并发度1、优化sql,分库分表,提高数据库配置2、线程池 3、本地内存+定时任务 4、MQ 5、代理服务 ......
  • 【HTTP完全注解】条件请求
    条件请求还记得范围请求以及缓存中所介绍的基于时间/版本的验证请求吗?这些能够携带某些条件发起的请求,被称为条件请求。条件请求是HTTP的一种内容协商机制,该机制通过在请求中包含特定的标头来告知服务器仅在某些条件得到满足时才响应。这类请求可以用来验证缓存的有效性,省......
  • 【HTTP完全注解】范围请求
    范围请求范围请求是HTTP的一种内容协商机制,该机制允许客户端只请求资源的部分内容。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。范围请求的工作流程范围请求通过在HTTP请求标头Range中表明需要请求的部分资源的字节范围,服务器收到请求......
  • SpringBoot3项目使用Knife4j时访问doc.html出现Knife4j文档请求异常且开发者工具网络
    1.在各个pom.xml中替换Knife4j的依赖版本,升级为4.0以上,如果找不到依赖可以在Maven配置中多添加几个镜像,或者使用汉化插件重启IDEA;<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId......
  • Django框架之csrf跨站请求
    【一】跨站请求伪造介绍【1】引入CSRF(Cross-SiteRequestForgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而达到攻击的目的。【2】举......
  • 【JS】并发请求
    需求封装一个函数,做到可以进行并发请求,并将结果返回。该函数接收两个参数,分别为urls和maxNum。urls是数组,其中元素均为请求地址;maxNum表示最大并发数。如果有完成的请求,会从urls中,按序取出下一个请求,请求的结果会计入返回的数组中,返回的数组中元素的索引与参数urls中保......