IT袋

当前位置:主页 > 经验教程 > 建站编程 >

JavaWeb

JavaWeb:Request和Response(2)

时间:2024-01-19 13:40:35 来源:IT袋 作者:马勇
导读:JavaWeb,所以根据请求头名称获取对应值的方法为: String getHeader(String name) // 根据请求头名称,获取值 ==代码演示:== @WebServlet(value = "/req02")public class request01 exten

JavaWeb

JavaWeb

所以根据请求头名称获取对应值的方法为:

String getHeader(String name) // 根据请求头名称,获取值

==代码演示:==

@WebServlet(value = "/req02")
public class request01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取浏览 器版本
        String header = request.getHeader("User-Agent");
        System.out.println(header);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
    }
}

因为各个版本的浏览器不太一样,所以一般都有去获取user-agent这个请求头

3.3、获取请求体

浏览器在发送GET请求的时候是没有请求体的,所以需要把请求方式变更为POST,请求体中的数据格式如下:

JavaWeb

对于请求体中的数据,Request对象提供了如下两种方式来获取其中的数据,分别是:

  • 获取字节输入流,如果前端发送的是字节数据,比如传递的是文件数据,则使用该方法
ServletInputStream getInputStream()
该方法可以获取字节
  • 获取字符输入流,如果前端发送的是纯文本数据,则使用该方法
BufferedReader getReader()

==代码演示:==

前端代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<h2>POST方式提交</h2>
<form action="req02" method="post">
    用户名:<input type="text" name="username"><br/>
    密码:<input type="password" name="password"><br/>
    <input type="checkbox" name="hobby" value="1"> 游泳
    <input type="checkbox" name="hobby" value="2"> 爬山 <br>
    <input type="submit" value="登录">
</form>
</body>
</html>

后端代码

@WebServlet(value = "/req02")
public class request01 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1、获取字符输入流
        BufferedReader reader = request.getReader();
        // 2、读取数据 
        String s = reader.readLine();
        System.out.println(s);
    }
}

4、Request通用方式请求参数

对于请求参数的获取,常用的有以下两种:

  • GET方式:
String getQueryString()
  • POST方式:
BufferedReader getReader();

有了上述的知识储备,我们来实现一个案例需求:

(1)发送一个GET请求并携带用户名,后台接收后打印到控制台

(2)发送一个POST请求并携带用户名,后台接收后打印到控制台

此处大家需要注意的是GET请求和POST请求接收参数的方式不一样,具体实现的代码如下:

@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String result = req.getQueryString();
        System.out.println(result);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        BufferedReader br = req.getReader();
        String result = br.readLine();
        System.out.println(result);
    }
}

JavaWeb

GET请求方式和POST请求方式区别主要在于获取请求参数的方式不一样,是否可以提供一种统一获取请求参数的方式,从而统一doGet和doPost方法内的代码?

解决方案

(1)根据不同的请求方式获取请求参数,获取的内容如下:

相关阅读

  • dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    今天为大家介绍dns服务器未响应怎么修复和分享dns未响应最简单的修复办法的教程内容,继续往下看吧! 很多人在浏览网页时,经常会遇到DNS服务器未响应的情况,那么什么是DNS服务器?DNS未

  • 个人网站备案流程 工信部个人网站备案过程讲解

    个人网站备案流程 工信部个人网站备案过程讲解

    您可能不了解个人网站备案流程和工信部个人网站备案过程讲解的IT小经验,继续往下看吧! 嗨,大家好,我是希留。 前面文章介绍了下使用https访问网站的相关配置,然后发现访问https时灵时

  • HTTP状态码深入解析:401 Unauthorized

    HTTP状态码深入解析:401 Unauthorized

    为大家介绍HTTP状态码深入解析的教程内容,接下来一起来看看吧。 在互联网通信中,HTTP状态码是用来表示服务器响应的一种方式。 当我们在浏览器中访问网页时,服务器会返回一个状态码,

  • 什么是跨站脚本 XSS攻击?

    什么是跨站脚本 XSS攻击?

    为网友解答什么是跨站脚本的相关话题,下面为详细的介绍。 跨站脚本(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,攻击者利用该漏洞在受害者的网页中插入恶意脚本,从而能够获取