整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          《Servlet》第25節:HttpServletR

          《Servlet》第25節:HttpServletRequest請求轉發的功能介紹

          ervlet程序中,提供了請求轉發和請求重定向兩個功能,其中請求轉發是指:將一個HTTP請求轉發給另一個HTTP請求進行處理,這個過程中,還是只有一次HTTP請求,只是在這一次HTTP請求中間,進行了轉發的動作;請求重定向是指:瀏覽器向服務器發起一次HTTP請求,然后服務器返回給客戶端一個重定向狀態碼以及重定向的地址,瀏覽器會再次向服務器發起一次HTTP請求,訪問重定向之后的地址。下面具體介紹一下請求轉發的功能。

          1.1、請求轉發的流程

          請求的轉發,是指:在同一次HTTP請求中,服務器將當前這個Servlet程序轉發給了另外一個Servlet程序進行處理,最終響應結果是由轉發之后的那個Servlet程序返回給客戶端的。

          轉發的特點:

          1. 轉發過程中,只涉及一次HTTP請求。
          2. 轉發是發生在服務器內部的,也就是在Servlet容器中進行轉發的。
          3. 轉發過程中,可以共享Request請求對象中的數據信息。
          4. 轉發時候,瀏覽器地址欄不會發生變化,還是顯示的轉發之前的地址。

          轉發的過程如下圖所示:

          1.2、轉發案例代碼

          要實現請求的轉發,那就需要從HttpServletRequest請求對象中,調用getRequestDispatcher()方法,獲取到請求轉發器對象RequestDispatcher,并且指定轉發后的地址,最后調用forward()方法,完成請求的轉發。

          創建FirstServlet程序:

          package com.gitcode.servlet;
          
          import javax.servlet.RequestDispatcher;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import java.io.IOException;
          
          /**
           * @version 1.0.0
           * @Date: 2024/2/12 19:41
           * @Author ZhuYouBin
           * @Description:
           */
          public class FirstServlet extends HttpServlet {
              @Override
              protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                  // 設置請求數據
                  request.setAttribute("username", "這是FirstServlet中保存的數據!");
                  // 獲取請求轉發器,指定轉發的地址
                  RequestDispatcher requestDispatcher=request.getRequestDispatcher("/secondServlet");
                  // 調用 forward() 方法進行轉發
                  requestDispatcher.forward(request, response);
              }
          }

          創建SecondServlet程序:

          package com.gitcode.servlet;
          
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import java.io.IOException;
          import java.io.PrintWriter;
          
          /**
           * @version 1.0.0
           * @Date: 2024/2/12 19:41
           * @Author ZhuYouBin
           * @Description:
           */
          public class SecondServlet extends HttpServlet {
              @Override
              protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                  response.setContentType("text/html;charset=utf-8");
                  // 由 FirstServlet 轉發過來
                  PrintWriter writer=response.getWriter();
                  // 響應數據
                  Object username=request.getAttribute("username");
                  writer.println("<h3>請求轉發,獲取前一個請求數據:username=" + username + "</h3>");
                  // 關閉流
                  writer.close();
              }
          }

          啟動程序,瀏覽器訪問【/servlet/firstServlet】地址,此時可以看到界面返回的是SecondServlet程序中返回的內容。

          1.3、轉發路徑的寫法

          在進行請求轉發的時候,需要調用getRequestDispatcher()方法,獲取請求轉發器對象,這個方法需要接收轉發后的路徑地址,那么這個路徑地址要如何設置呢???

          1. 情況一:路徑是絕對路徑,即:路徑是采用【/】斜杠開頭,那么請求轉發器,會直接使用這個路徑進行轉發。
          2. 情況二:路徑是相對路徑,即:路徑不是采用【/】斜杠開頭,那么請求轉發器,會獲取到當前Servlet程序的路徑地址,并且拼接上轉發后的路徑地址。

          getRequestDispatcher()方法源代碼如下所示:

          public RequestDispatcher getRequestDispatcher(String path) {
              Context context=this.getContext();
              if (context==null) {
                  return null;
              } else if (path==null) {
                  return null;
              } else {
                  int fragmentPos=path.indexOf(35);
                  if (fragmentPos > -1) {
                      log.warn(sm.getString("request.fragmentInDispatchPath", new Object[]{path}));
                      path=path.substring(0, fragmentPos);
                  }
          
                  if (path.startsWith("/")) {
                      return context.getServletContext().getRequestDispatcher(path);
                  } else {
                      String servletPath=(String)this.getAttribute("javax.servlet.include.servlet_path");
                      if (servletPath==null) {
                          servletPath=this.getServletPath();
                      }
          
                      String pathInfo=this.getPathInfo();
                      String requestPath=null;
                      if (pathInfo==null) {
                          requestPath=servletPath;
                      } else {
                          requestPath=servletPath + pathInfo;
                      }
          
                      int pos=requestPath.lastIndexOf(47);
                      String relative=null;
                      if (context.getDispatchersUseEncodedPaths()) {
                          if (pos >=0) {
                              relative=URLEncoder.DEFAULT.encode(requestPath.substring(0, pos + 1), StandardCharsets.UTF_8) + path;
                          } else {
                              relative=URLEncoder.DEFAULT.encode(requestPath, StandardCharsets.UTF_8) + path;
                          }
                      } else if (pos >=0) {
                          relative=requestPath.substring(0, pos + 1) + path;
                      } else {
                          relative=requestPath + path;
                      }
          
                      return context.getServletContext().getRequestDispatcher(relative);
                  }
              }
          }

          以上,就是HttpServletRequest請求的轉發。

          今天就到這里,未完待續~~

          理了23個跟傳統歷史文化有關的網站,千萬不要錯過~

          1.故宮博物院藏品總目:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fzm-digicol.dpm.org.cn%252F&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//zm-digicol.dpm.org.cn/}

          2.漢典古籍:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FGt1aM&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/Gt1aM}

          3.中國古籍網:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fc.pc.qq.com%252Fmiddlem.html%253Fpfurl%253Dhttp%25253A%25252F%25252Ft.cn%25252FzOqoclW%2526gjsublevel%253D2804%2526pfuin%253D83781672%2526pfto%253Dmqq.qzone%2526type%253D0%2526gjlevel%253D15&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//c.pc.qq.com/middlem.html?pfurl=http%253A%252F%252Ft.cn%252FzOqoclW&gjsublevel=2804&pfuin=83781672&pfto=mqq.qzone&type=0&gjlevel=15}

          4.中國歷史地圖集:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FzOZ8DRT&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/zOZ8DRT}

          5.中國傳統顏色網站:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Fzhongguose.com%252F&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//zhongguose.com/}

          6.歷代詩人地域分布:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FESIy0mp&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/ESIy0mp}

          7.中國歷代人物圖像數據庫:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FzOZns18&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/zOZns18}

          8.中國地方志數據庫:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Flcd.ccnu.edu.cn%252F%2523%252Findex&src_uin=2941347079&src_scene=7035&cli_scene=getDetail#/index,text:http%3A//lcd.ccnu.edu.cn/#/index}

          9.國學導航:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fc.pc.qq.com%252Fmiddlem.html%253Fpfurl%253Dhttp%25253A%25252F%25252Ft.cn%25252FRyhWagD%2526gjsublevel%253D2804%2526pfuin%253D83781672%2526pfto%253Dmqq.qzone%2526type%253D0%2526gjlevel%253D15&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//c.pc.qq.com/middlem.html?pfurl=http%253A%252F%252Ft.cn%252FRyhWagD&gjsublevel=2804&pfuin=83781672&pfto=mqq.qzone&type=0&gjlevel=15}

          10.古籍館:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fwww.gujiguan.com%252F&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//www.gujiguan.com/}

          11.中醫古籍全文數據庫:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FRLXw2ko&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/RLXw2ko}

          12.全歷史:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fwww.allhistory.com%252F&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//www.allhistory.com/}

          13.國學大師:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Fwww.guoxh&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//www.guoxh}ttp://t.cn/A6q84dGA

          14.中國京劇戲考:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FA6q84dGA&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/A6q84dGA}

          15.書法空間:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FRxQPAqc&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/RxQPAqc}

          16.發現中國:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FRYI2Iaj&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/RYI2Iaj}

          17.中國歷史學習網:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FA6ICUI2U&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/A6ICUI2U}

          18.讀典籍:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FA655he6S&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/A655he6S}

          19.古今文字集成:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fc.pc.qq.com%252Fmiddlem.html%253Fpfurl%253Dhttp%25253A%25252F%25252Ft.cn%25252FRLdkvFV%2526gjsublevel%253D2804%2526pfuin%253D83781672%2526pfto%253Dmqq.qzone%2526type%253D0%2526gjlevel%253D15&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//c.pc.qq.com/middlem.html?pfurl=http%253A%252F%252Ft.cn%252FRLdkvFV&gjsublevel=2804&pfuin=83781672&pfto=mqq.qzone&type=0&gjlevel=15}

          20.歷史劇里看歷史:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252F8kIgi9a&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/8kIgi9a}

          21.成語查詢:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=http%253A%252F%252Ft.cn%252FhRDRm&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:http%3A//t.cn/hRDRm}

          22.搜韻:{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fwww.sou-yun.cn%252F&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//www.sou-yun.cn/}

          23.唐宋文學編年地圖 :{url:https%3A//www.urlshare.cn/umirror_url_check?_wv=1&srctype=touch&apptype=android&loginuin=3021168867&plateform=mobileqq&url=https%253A%252F%252Fsou-yun.cn%252FMPoetLifeMap.aspx&src_uin=2941347079&src_scene=7035&cli_scene=getDetail,text:https%3A//sou-yun.cn/MPoetLifeMap.aspx}

          「整理不易 路過的伙伴們點個贊 喜歡的關注收藏轉發」

          一次線上nginx轉發https

          先簡單的介紹下http和https,HTTP(HyperText Transfer Protocol:超文本傳輸協議)是一種用于分布式、協作式和超媒體信息系統的應用層協議。 簡單來說就是一種發布和接收 HTML 頁面的方法,被用于在 Web 瀏覽器和網站服務器之間傳遞信息,HTTPS是安全的HTTP。HTTPS 主要由兩部分組成:HTTP + SSL / TLS,也就是在 HTTP 上面又加了一層處理加密信息的模塊。服務端和客戶端的信息傳輸都會通過 TLS 進行加密,所以傳輸的數據都是加密后的數據。具體的HTTPS原理解析請參考我的另一篇文章一文讀懂HTTPS的實現原理

              • PS:ssl.zip是我事先使用Openssl生成好的。
              • PPS:業務相關不具備普適性。

          Web訪問地址由http修改為https

          • 解壓此ssl.zip壓縮包,放在nginx目錄下,如圖:


          • 修改nginx.conf配置文件

          • 重啟nginx生效。

          主站蜘蛛池模板: 国产福利电影一区二区三区,免费久久久久久久精 | 黑巨人与欧美精品一区| 内射少妇一区27P| 国产一区二区视频免费| 亚洲爽爽一区二区三区| 国产精品久久久久久麻豆一区 | 日本不卡在线一区二区三区视频| 日韩一区二区三区免费播放| 国产伦精品一区二区三区精品| 日本精品一区二区三区视频| 99久久精品午夜一区二区| 亚洲欧美国产国产一区二区三区| 国产香蕉一区二区精品视频 | 亚洲日韩国产欧美一区二区三区 | 亚洲国产精品无码第一区二区三区| 国产成人精品无人区一区 | 无码精品蜜桃一区二区三区WW| 亚洲熟妇AV一区二区三区宅男| 精品日产一区二区三区手机 | 无码人妻一区二区三区免费| 无码人妻久久一区二区三区蜜桃 | 中文字幕一区二区三区四区| 午夜AV内射一区二区三区红桃视| 亚洲视频一区在线观看| 综合激情区视频一区视频二区| 日韩精品无码一区二区中文字幕 | 久久精品国产亚洲一区二区| 东京热无码av一区二区| 国产AV国片精品一区二区| 伊人久久大香线蕉av一区| 久久精品一区二区三区中文字幕 | 欧美亚洲精品一区二区| 精品国产一区二区三区不卡| 亚洲一区爱区精品无码| 国产自产在线视频一区| 久久se精品一区二区| 国产无线乱码一区二三区| 奇米精品一区二区三区在线观看| 濑亚美莉在线视频一区| 日本国产一区二区三区在线观看 | 久久蜜桃精品一区二区三区|