最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用HttpServletResponse對象獲取請求行信息

 更新時間:2022年02月07日 10:23:44   作者:小猴子豆芽菜  
這篇文章主要介紹了使用HttpServletResponse對象獲取請求行信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

HttpServletResponse對象獲取請求行信息

方法列表

String reqMethod = request.getMethod()
String reqURI=request.getRequestURI();
String reqURI=request.getRequestURI();
StringBuffer reqURL=request.getRequestURL();
String reqPath=request.getContextPath();
String queryString=request.getQueryString();
String reqClient=request.getRemoteAddr();

實例

HTML

<!DOCTYPE html>
<html>
<head>
	<title>request獲取請求行內(nèi)容</title>
	<meta charset="utf-8">
</head>
 
<body>
	<form action="/WEB/lineServlet" method="post" >
		姓名:<input type="text" name="name"><br>
		年齡:<input type="text" name="age"><br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

java

package servlet; 
import java.io.IOException;
import java.io.PrintWriter; 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class LineServlet extends HttpServlet { 
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
		// 設(shè)置編碼方式
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
 
		// 獲得PrintWriter輸出對象
		PrintWriter writer = response.getWriter();		
 
		// 1、獲取請求方式
		String reqMethod = request.getMethod();
		writer.write("請求方式method: " + reqMethod);
		writer.print("<br>");
		
		//2、獲得請求的資源相關(guān)的內(nèi)容
		String reqURI=request.getRequestURI();
		StringBuffer reqURL=request.getRequestURL();
		writer.write("請求內(nèi)容URI: " + reqURI);
		writer.print("<br>");
		writer.write("請求內(nèi)容URL: " + reqURL);
		writer.print("<br>");
		
		//獲得web應(yīng)用的名稱
		String reqPath=request.getContextPath();
		writer.write("web應(yīng)用contextPath: " + reqPath);
		writer.print("<br>");
		
		//地址后的參數(shù)的字符串
		String queryString=request.getQueryString();
		writer.write("參數(shù)的字符串queryString: " + queryString);
		writer.print("<br>");
		
		//3、獲得客戶機的信息---獲得訪問者IP地址
		String reqClient=request.getRemoteAddr();
		writer.write("客戶機的信息RemoteAddr: " + reqClient); 
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	} 
}

HttpServletResponse和HttpServletRequest解析

最近有這么一個訴求,我在A服務(wù)器中的java調(diào)用執(zhí)行一個python文件,并將其返回值返回給B服務(wù)器的客戶端。當(dāng)時在想A服務(wù)器暴露一個接口,然后使用runtime API調(diào)用即可,但是返回值這塊我卻有點苦惱。我的本意是直接返回IO流,因為生成的數(shù)據(jù)可大可小,無規(guī)律,但是我發(fā)現(xiàn)這樣是不可以的。

[org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class org.springframework.boot.loader.jar.JarURLConnection$2]

后來兜兜轉(zhuǎn)轉(zhuǎn)發(fā)現(xiàn)了HttpServletResponse 可以來解決這個問題。

HttpServletResponse和HttpServletRequest

Web服務(wù)器收到客戶端的http請求,會針對每一次請求,分別創(chuàng)建一個用于代表請求的request對象、和代表響應(yīng)的response對象。request和response對象即然代表請求和響應(yīng),那我們要獲取客戶機提交過來的數(shù)據(jù),只需要找request對象就行了。要向客戶機輸出數(shù)據(jù),只需要找response對象就行了。

本文主講HttpServletResponse,HttpServletRequest碰到合適的場景我會將他補全。

HttpServletResponse

HttpServletResponse對象代表服務(wù)器的響應(yīng)。這個對象中封裝了向客戶端發(fā)送數(shù)據(jù)、發(fā)送響應(yīng)頭,發(fā)送響應(yīng)狀態(tài)碼的方法。

他的作用如下

1、保存流對象

使用HttpServletResponse 我們可以將IO流讀出來在寫入HttpServletResponse中的OutputStream中。然后別的客戶端訪問的時候方便獲取

相關(guān)代碼

   @RequestMapping(value = "/testHdf")
    @ResponseBody
    public void testHdfs(String csv, String sql, HttpServletResponse response) {
        BufferedInputStream bis = null;
        try {
            Process process = Runtime.getRuntime().exec("python  /blazingsql/testData/zgh/aaa.py");
            process.waitFor();
            bis = new BufferedInputStream(process.getInputStream());
            OutputStream os = null;
            byte[] buff = new byte[1024];
            os = response.getOutputStream();
            int i = bis.read(buff);
            while (i != -1) {
                os.write(buff, 0, buff.length);
                os.flush();
                i = bis.read(buff);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
        } finally {
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

2、下載文件

使用HttpServletResponse可以下載文件,很方便

下載文件是,設(shè)置這些參數(shù)很重要

response.setHeader(“Content-Disposition”, “attachment;filename=”+ URLEncoder.encode(“demo.csv”, “UTF-8”));
response.setHeader(“Connection”, “close”);
response.setHeader(“Content-Type”, “application/octet-stream”);

相關(guān)代碼

  @RequestMapping(value = "/download")
    @ResponseBody
    public void download(String path,HttpServletResponse response) throws UnsupportedEncodingException {
        response.reset();
        response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("demo.csv", "UTF-8"));
        response.setHeader("Connection", "close");
        response.setHeader("Content-Type", "application/octet-stream");
        OutputStream ops = null;
        FileInputStream fis =null;
        byte[] buffer = new byte[8192];
        int bytesRead = 0;
        try {
            ops = response.getOutputStream();
            fis = new FileInputStream(path);
            while((bytesRead = fis.read(buffer, 0, 8192)) != -1){
                ops.write(buffer, 0, bytesRead);
            }
            ops.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(fis != null){
                    fis.close();
                }
                if(ops != null){
                    ops.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring?Boot實現(xiàn)文件上傳的兩種方式總結(jié)

    Spring?Boot實現(xiàn)文件上傳的兩種方式總結(jié)

    應(yīng)用開發(fā)過程中,文件上傳是一個基礎(chǔ)的擴展功能,它的目的就是讓大家共享我們上傳的文件資源,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Spring?Boot實現(xiàn)文件上傳的兩種方式,需要的朋友可以參考下
    2023-05-05
  • Spring Data JPA例子代碼[基于Spring Boot、Mysql]

    Spring Data JPA例子代碼[基于Spring Boot、Mysql]

    這篇文章主要介紹了Spring Data JPA例子代碼[基于Spring Boot、Mysql],小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 基于Spring Data的AuditorAware審計功能的示例代碼

    基于Spring Data的AuditorAware審計功能的示例代碼

    這篇文章主要介紹了基于Spring Data的AuditorAware審計功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Springboot應(yīng)用中線程池配置詳細教程(最新2021版)

    Springboot應(yīng)用中線程池配置詳細教程(最新2021版)

    這篇文章主要介紹了Springboot應(yīng)用中線程池配置教程(2021版),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫

    SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫

    本文主要介紹了SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 將字符串?dāng)?shù)字格式化為樣式1,000,000,000的方法

    將字符串?dāng)?shù)字格式化為樣式1,000,000,000的方法

    這篇文章主要介紹了將字符串?dāng)?shù)字格式化為樣式1,000,000,000的方法,有需要的朋友可以參考一下
    2014-01-01
  • maven解決包沖突方法詳解

    maven解決包沖突方法詳解

    這篇文章主要介紹了maven解決包沖突方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java中的system.getProperty()的作用及使用方法

    Java中的system.getProperty()的作用及使用方法

    System.getProperty()?方法用于獲取系統(tǒng)屬性的值,該方法接受一個字符串參數(shù),表示要獲取的系統(tǒng)屬性的名稱,返回值為字符串類型,表示該屬性的值,接下來通過本文給大家介紹Java中的system.getProperty()的作用及使用方法,感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • java中Swing五種常見的布局方式

    java中Swing五種常見的布局方式

    本文通過代碼示例給大家詳細講解了java中Swing五種常見的布局方式,以及相關(guān)注意知識點,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03
  • 使用@Value值注入及配置文件組件掃描

    使用@Value值注入及配置文件組件掃描

    這篇文章主要介紹了使用@Value值注入及配置文件組件掃描方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論

许昌县| 庐江县| 新密市| 温泉县| 淅川县| 胶南市| 新乡市| 萨嘎县| 安龙县| 德昌县| 八宿县| 沙河市| 台北县| 富宁县| 罗定市| 安阳县| 廊坊市| 金塔县| 平顺县| 兴义市| 赣州市| 贵溪市| 浑源县| 汝城县| 重庆市| 萍乡市| 绥德县| 龙江县| 凯里市| 皋兰县| 灵山县| 页游| 蓬安县| 六盘水市| 汪清县| 犍为县| 铜鼓县| 和林格尔县| 库伦旗| 宁都县| 陆河县|