【JavaEE】_前端使用GET请求的queryString向后端传参

目录

[1. GET请求的query string](#1. GET请求的query string)

[2. 关于query string的urlencode](#2. 关于query string的urlencode)


1. GET请求的query string

  1. 在HttpServletRequest请求中,getParameter方法用于在服务器这边获取到请求中的参数,主要在query string中

query string中的键值对都是程序员自定义的,实际开发中使用非常广泛,用于对本次访问进行补充说明;

  1. 可以理解为:请求进入tomcat后,其query string会被tomcat解析为一个map<String, String>这样的结构,getParameter就是在查询map中的内容;

.java内容如下:

java 复制代码
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/GetParameter")
public class GetParameterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 约定:请求中的query string形如username=zhangsan&password=123
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println("username: "+ username);
        System.out.println("password: "+ password);
        resp.getWriter().write("ok");
    }
}

通过浏览器访问:

  1. 当请求中没有手动添加query string部分时,进行访问:

浏览器也可以收到返回的ok响应:

在服务器端,两个key对应的value均为null:

  1. 当手动添加query string后再访问:

此时再查看服务器端,请求中的query string部分就被服务器获取到了:

2. 关于query string的urlencode

现假设客户端发送给服务器的请求中query string部分内容为:username=张三&password=456:

可见服务器响应返回成功。

查看服务器端:

虽然此处汉字也能正确显示,但是存在风险的。

url中如果出现了中文或其他特殊符号,最好进行urlencode操作,否则可能有些服务器无法正确处理:

比如对于上例中的"张三"二字,可以使用urlencode工具进行编码:

在浏览器端将"张三"替换为以上编码:

(浏览器会自动识别编码,解码为汉语)

如果浏览器没有解码,服务器会将其解码为汉语,查看服务器端:

相关推荐
耶啵奶膘1 小时前
uniapp-是否删除
linux·前端·uni-app
魔道不误砍柴功2 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2342 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
王哈哈^_^3 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie3 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
测开小菜鸟3 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
开心工作室_kaic4 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿4 小时前
webWorker基本用法
前端·javascript·vue.js
P.H. Infinity4 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq