访问Servlet时如何让提交的表单参数不被包含在访问URL中
实现Servlet表单参数不显示在URL中的方案
要避免表单参数出现在访问Servlet的URL中,核心是替换默认的GET表单提交方式,改用POST方式传递参数,具体实现步骤如下:
1. 调整前端表单提交配置
HTML表单默认使用GET方法提交数据,会将所有表单参数编码后拼接在URL的查询串中,只要将表单的method属性显式设置为post,参数就会被封装到HTTP请求体中,不会出现在URL里。
示例代码:
<form action="/你的Servlet映射路径" method="post"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">提交</button> </form>
如果是AJAX请求访问Servlet,同理将请求类型设置为POST,参数放在请求体中传递即可。
2. Servlet端适配POST请求
Servlet需要重写doPost方法来接收POST方式提交的参数,参数获取逻辑和GET方式完全一致,调用request.getParameter("参数名")即可读取对应值。
示例代码:
public class MyServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 读取表单参数 String username = request.getParameter("username"); String password = request.getParameter("password"); // 后续业务逻辑处理 } }
注意事项
- POST方式只是将参数从URL转移到了请求体中,本身不会对参数做加密处理,如果传输密码、身份证号等敏感数据,必须配合HTTPS协议使用
- 不要使用Servlet的
doGet方法处理POST请求,也不要为了省事在doGet里直接调用doPost,避免参数泄漏风险
内容的提问来源于stack exchange,提问作者user13932723
相关产品推荐
相关产品推荐

