美文网首页
关于servlet解析HTTP请求的一点笔记

关于servlet解析HTTP请求的一点笔记

作者: 焜_8899 | 来源:发表于2021-11-10 22:51 被阅读0次

0. 说明

笔记内容关于以下方法:

  • String getContextPath()
  • String getQueryString()
  • String getRequestURI()

菜鸟教程的描述如下:

下面的方法可用在 Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用。

序号 方法 & 描述
13 String getContentType()
返回请求主体的 MIME 类型,如果不知道类型则返回 null。
19 String getQueryString()
返回包含在路径后的请求 URL 中的查询字符串。
23 String getRequestURI()
从协议名称直到 HTTP 请求的第一行的查询字符串中,返回该请求的 URL 的一部分。

1. 示例代码

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/NewServlet/*")
public class NewServlet extends HttpServlet {

    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String contextPath = request.getContextPath();
        String queryString = request.getQueryString();
        String requestURI = request.getRequestURI();
        
        response.getWriter().println(
                "ContextPath: " + contextPath + "\n" +
                "QueryString: " + queryString + "\n" +
                "RequestURI: " + requestURI
        );
    }

}

2. 请求结果

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet
ContextPath: /WebApplication1
QueryString: null
RequestURI: /WebApplication1/NewServlet

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet/
ContextPath: /WebApplication1
QueryString: null
RequestURI: /WebApplication1/NewServlet/

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet/123
ContextPath: /WebApplication1
QueryString: null
RequestURI: /WebApplication1/NewServlet/123

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet?id=123
ContextPath: /WebApplication1
QueryString: id=123
RequestURI: /WebApplication1/NewServlet

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet?id=123?num=123
ContextPath: /WebApplication1
QueryString: id=123?num=123
RequestURI: /WebApplication1/NewServlet

C:\Users\asus>curl http://localhost:8080/WebApplication1/NewServlet?id=123/123
ContextPath: /WebApplication1
QueryString: id=123/123
RequestURI: /WebApplication1/NewServlet

C:\Users\asus>curl -G -d 'id=123' -d 'tag=tag' http://localhost:8080/WebApplication1/NewServlet
ContextPath: /WebApplication1
QueryString: 'id=123'&'tag=tag'
RequestURI: /WebApplication1/NewServlet

C:\Users\asus>curl -G -d 'id=123' -d 'tag=tag' http://localhost:8080/WebApplication1/NewServlet/
ContextPath: /WebApplication1
QueryString: 'id=123'&'tag=tag'
RequestURI: /WebApplication1/NewServlet/

相关文章

  • 面试题集

    servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析...

  • 面试题集

    servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析...

  • SpringMVC流程

    用户的请求以http形式进入到servlet容器中,servlet容器把请求解析成一个对象,这个对象中包含了解析得...

  • 关于servlet解析HTTP请求的一点笔记

    0. 说明 笔记内容关于以下方法: String getContextPath() String getQuery...

  • SpringMVC整体执行流程

    1.客户端发起请求 2.以HTTP形式进入到Servlet容器中,Servlet容器解析HTTP数据成Endpoi...

  • springMVC源码分析.md

    1 http请求过来了,经过springmvc发生了哪些事情? http请求,数据进servlet servlet...

  • Servlet 实例

    Servlet 实例 Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接...

  • go-http-url-request

    介绍golang关于http请求和url之间的用法:\ http-server http参数解析

  • iOS Networking的MVC框架

    iOS Networking - Udacity的笔记 课程笔记目录:1.http请求和JSON解析2.Netw...

  • java基础面试题(一)

    1、servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器...

网友评论

      本文标题:关于servlet解析HTTP请求的一点笔记

      本文链接:https://www.haomeiwen.com/subject/ifesaltx.html