请求对象Request
生活随笔
收集整理的這篇文章主要介紹了
请求对象Request
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.概念
<1>請求:請求:獲取資源。在BS架構中,就是客戶端瀏覽器向服務器端發出詢問。
<2>請求對象:就是在項目當中用于發送請求的對象。
<3>對象創建:需要實現ServletRequest和HttpservletRequest接口,不過在tomcat底層已經幫我們創建好了請求對象。
關系視圖如下:
2.Request獲取路徑的相關方法
注:瀏覽器返回【本機地址】ipv6和ipv4的地址是本地host文件控制
//Request獲取路徑的相關方法 @WebServlet("/ServletDemo1") public class ServletDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.獲取虛擬目錄名稱getContextPath()String contextPath = req.getContextPath();System.out.println(contextPath);//2.獲取Servlet映射路徑getServletPath()String servletPath = req.getServletPath();System.out.println(servletPath);//3.獲取訪問者ip getRemoteAddr()String remoteAddr = req.getRemoteAddr();//http://127.0.0.1:8080 //127.0.0.1//http://localhost:8080[和host文件的配置有關] //0:0:0:0:0:0:0:1System.out.println(remoteAddr);//4.獲取請求消息的數據getQueryString()//?username=zhangsan&password=123456String queryString = req.getQueryString();System.out.println(queryString);//5.獲取統一資源標識符 getRequestURI()String requestURI = req.getRequestURI();System.out.println(requestURI);//URL更精確,表示范圍比URI小//6.獲取統一資源定位符 getRequestURL()StringBuffer requestURL = req.getRequestURL();System.out.println(requestURL);//瀏覽器訪問http://127.0.0.1:8080/ServletRequest/ServletDemo1?username=zhangsan&password=123456}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }打印結果: ----------------------------------------------------------------------- /ServletRequest /ServletDemo1 127.0.0.1 null /ServletRequest/ServletDemo1 http://127.0.0.1:8080/ServletRequest/ServletDemo13.Request獲取請求頭內信息的相關方法
//Request獲取請求頭內信息的相關方法 @WebServlet("/ServletDemo2") public class ServletDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//請求頭名稱[可以有多個值]不區分大小寫//1.getHeader("請求頭名稱")根據請求頭名稱獲取值String connection = req.getHeader("Connection");System.out.println(connection);System.out.println("------------------------");//返回類型和前面不同,返回為集合//2.getHeader("請求頭名稱")根據請求頭名稱[有多個值]獲取多個值String AcceptEncoding = req.getHeader("Accept-Encoding");System.out.println(AcceptEncoding);System.out.println("------------------------");//3.getHeaderNames獲取所有的請求頭名稱Enumeration<String> headerNames = req.getHeaderNames();while (headerNames.hasMoreElements()) {String headerName = headerNames.nextElement();String value = req.getHeader("s");System.out.println(headerName + "..." + value);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }打印結果: ---------------------------------------------------------------------- keep-alive ------------------------ gzip, deflate ------------------------ host...null user-agent...null accept...null accept-language...null accept-encoding...null connection...null cookie...null upgrade-insecure-requests...null sec-fetch-dest...null sec-fetch-mode...null sec-fetch-site...null sec-fetch-user...null4.獲取請求參數相關信息的方法
表單屬性為【form action="/ServletRequest/ServletDemo3" method=“post” autocomplete=“off”】
5.通過流對象獲取數據
【請求方法必須是post方式】
表單屬性為【form action="/ServletRequest/ServletDemo7" method=“post” autocomplete=“off”】
6.請求轉發
表單屬性為【form action="/ServletRequest/ServletDemo9" method=“post” autocomplete=“off”】
總結
以上是生活随笔為你收集整理的请求对象Request的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web项目的创建和发布
- 下一篇: 运算符优先级的问题