日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Request —— 获取请求行数据 获取请求头数据 获取请求体数据

發布時間:2025/4/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Request —— 获取请求行数据 获取请求头数据 获取请求体数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. request對象和response對象的原理
?? ?1. request和response對象是由服務器創建的。我們來使用它們
?? ?2. request對象是來獲取請求消息response對象是來設置響應消息


2. request對象繼承體系結構:?? ?
?? ?ServletRequest?? ??? ?--?? ?接口
?? ??? ?|?? ?繼承
?? ?HttpServletRequest?? ?-- 接口
?? ??? ?|?? ?實現
?? ?org.apache.catalina.connector.RequestFacade 類(tomcat)



3. request功能:

? ? ? 1. 獲取請求消息數據

? ? ? ? ? ? ? ?1. 獲取請求行數據
?? ??? ??? ?* GET /day14/demo1?name=zhangsan HTTP/1.1
?? ??? ??? ?* 方法:
?? ??? ??? ??? ?1. 獲取請求方式 :GET
?? ??? ??? ??? ??? ?* String getMethod() ?
?? ??? ??? ??? ?2. (*)獲取虛擬目錄:/day14
?? ??? ??? ??? ??? ?* String getContextPath()
?? ??? ??? ??? ?3. 獲取Servlet路徑: /demo1
?? ??? ??? ??? ??? ?* String getServletPath()
?? ??? ??? ??? ?4. 獲取get方式請求參數:name=zhangsan
?? ??? ??? ??? ??? ?* String getQueryString()
?? ??? ??? ??? ?5. (*)獲取請求URI:/day14/demo1
?? ??? ??? ??? ??? ?* String getRequestURI():?? ??? ?/day14/demo1
?? ??? ??? ??? ??? ?* StringBuffer getRequestURL() ?:http://localhost/day14/demo1

?? ??? ??? ??? ??? ?* URL:統一資源定位符 : http://localhost/day14/demo1?? ?中華人民共和國
?? ??? ??? ??? ??? ?* URI:統一資源標識符 : /day14/demo1?? ??? ??? ??? ??? ?共和國
?? ??? ??? ??? ?
?? ??? ??? ??? ?6. 獲取協議及版本:HTTP/1.1
?? ??? ??? ??? ??? ?* String getProtocol()

?? ??? ??? ??? ?7. 獲取客戶機的IP地址:
?? ??? ??? ??? ??? ?* String getRemoteAddr()
?? ??? ??? ??? ?
? ? ?

package cn.itcast.web.request;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;/*** 演示Request對象獲取請求行數據*/@WebServlet("/requestDemo1") public class RequestDemo1 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 獲取請求方式 :GETString method = request.getMethod();System.out.println(method);//2.(*)獲取虛擬目錄:/day14String contextPath = request.getContextPath();System.out.println(contextPath);//3. 獲取Servlet路徑: /demo1String servletPath = request.getServletPath();System.out.println(servletPath);//4. 獲取get方式請求參數:name=zhangsanString queryString = request.getQueryString();System.out.println(queryString);//5.(*)獲取請求URI:/day14/demo1String requestURI = request.getRequestURI();StringBuffer requestURL = request.getRequestURL();System.out.println(requestURI);System.out.println(requestURL);//6. 獲取協議及版本:HTTP/1.1String protocol = request.getProtocol();System.out.println(protocol);//7. 獲取客戶機的IP地址:String remoteAddr = request.getRemoteAddr();System.out.println(remoteAddr);} }

? ? ? ?



2. 獲取請求頭數據
?? ??? ??? ?* 方法:
?? ??? ??? ??? ?* (*)String getHeader(String name):通過請求頭的名稱獲取請求頭的值
?? ??? ??? ??? ?* Enumeration<String> getHeaderNames():獲取所有的請求頭名稱

package cn.itcast.web.request;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; import java.util.Enumeration;@WebServlet("/requestDemo2") public class RequestDemo2 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//演示獲取請求頭數據//1.獲取所有請求頭名稱Enumeration<String> headerNames = request.getHeaderNames();//2.遍歷while(headerNames.hasMoreElements()){String name = headerNames.nextElement();//根據名稱獲取請求頭的值String value = request.getHeader(name);System.out.println(name+"---"+value);}} }


?? ??? ??? ?



package cn.itcast.web.request;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; import java.util.Enumeration;@WebServlet("/requestDemo3") public class RequestDemo3 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//演示獲取請求頭數據:user-agentString agent = request.getHeader("user-agent");//判斷agent的瀏覽器版本if(agent.contains("Chrome")){//谷歌System.out.println("谷歌來了...");}else if(agent.contains("Firefox")){//火狐System.out.println("火狐來了...");}} }

package cn.itcast.web.request;import javax.servlet.ServletContext; 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("/requestDemo4") public class RequestDemo4 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//演示獲取請求頭數據:refererString referer = request.getHeader("referer");System.out.println(referer);//http://localhost/day14/login.html//防盜鏈if(referer != null ){if(referer.contains("dym_day14")){//正常訪問// System.out.println("播放電影....");response.setContentType("text/html;charset=utf-8");response.getWriter().write("播放電影....");}else{//盜鏈//System.out.println("想看電影嗎?來優酷吧...");response.setContentType("text/html;charset=utf-8");response.getWriter().write("想看電影嗎?來優酷吧...");}}} }

?3. 獲取請求體數據:
?? ??? ??? ?* 請求體:只有POST請求方式,才有請求體,在請求體中封裝了POST請求的請求參數
?? ??? ??? ?* 步驟:
?? ??? ??? ??? ?1. 獲取流對象
?? ??? ??? ??? ??? ?* ?BufferedReader getReader():獲取字符輸入流,只能操作字符數據
?? ??? ??? ??? ??? ?* ?ServletInputStream getInputStream():獲取字節輸入流,可以操作所有類型數

?? ??? ??? ??? ?2. 再從流對象中拿數據

regist.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>注冊頁面</title> </head> <body><form action="/dym_day14/requestDemo5" method="post"><input type="text" placeholder="請輸入用戶名" name="username"><br><input type="text" placeholder="請輸入密碼" name="password"><br><input type="submit" value="注冊"></form></body> </html>

RequestDemo5.java

package cn.itcast.web.request;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.BufferedReader; import java.io.IOException;@WebServlet("/requestDemo5") public class RequestDemo5 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//獲取請求消息體--請求參數//1.獲取字符流BufferedReader br = request.getReader();//2.讀取數據String line = null;while((line = br.readLine()) != null){System.out.println(line);}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {} }

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Request —— 获取请求行数据 获取请求头数据 获取请求体数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。