国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java學習筆記—HttpServletResponse(24)

2019-11-14 23:39:16
字體:
來源:轉載
供稿:網友
java學習筆記—HttpServletResponse(24)獲取客戶端信息

1 編寫ClientServlet.java

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("utf-8");request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");PRintWriter out = response.getWriter();// 獲取客戶端信息out.println("getMethod(): "+request.getMethod()+"<br/>");out.println("getRequestURL(): "+request.getRequestURL()+"<br/>");out.println("getRequestURI(): "+request.getRequestURI()+"<br/>");out.println("getProtocol(): "+request.getProtocol()+"<br/>");out.println("getQueryString(): "+request.getQueryString()+"<br/>");out.println("getRemoteAddr(): "+request.getRemoteAddr()+"<br/>");out.println("getRemoteHost(): "+request.getRemoteHost()+"<br/>");out.println("getRemotePort(): "+request.getRemotePort()+"<br/>");out.println("getServletPath(): "+request.getServletPath()+"<br/>");out.println("getContextPath(): "+request.getContextPath()+"<br/>");}

以上的方法可以發現通過使用request可以獲取servlet和servletContext的路徑。那么在實際的開發中我們的網站的名字一般都需要進行改變。因此以后在web項目中如果使用到網站名那么一定要使用request.getContextPath()獲取出來而不是寫死。這樣可以提高后期的維護性。

2 獲取服務器信息

編寫一個GetServerInfo.java

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("utf-8");request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();// 獲取客戶端信息out.println("getLocalAddr(): " + request.getLocalAddr() + "<br/>");out.println("getLocalName(): " + request.getLocalName() + "<br/>");out.println("getLocalPort(): " + request.getLocalPort() + "<br/>");}

3 請求轉發

  1. 訪問路徑

http://localhost:8080/demo1?name=jack&passWord=root

實現一個處理用戶請求的Demo1Servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        // 獲取用戶的請求的參數        String name = request.getParameter("name");        String psw = request.getParameter("password");        // 判斷用戶輸入的信息        if(name != null && psw != null && "jack".equals(name) && "root".equals(psw)){            // 登陸成功需要將用戶信息傳遞給歡迎頁面            request.setAttribute("name", name);            // 登陸成功將頁面轉發到歡迎頁面            request.getRequestDispatcher("/demo2").forward(request, response);        }else{         request.getRequestDispatcher("/regist.html").forward(request, response);        }}

  2. 編寫一個轉發后的Demo2Servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        response.setCharacterEncoding("utf-8");        request.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        PrintWriter out = response.getWriter();        // 獲取轉發過來的數據        String name = (String) request.getAttribute("name");        out.println("歡迎光臨:"+name);    }
轉發和重定向的區別
1.    實現方式不同轉發  request.getRequestDispatcher("/regist.html").forward(request, response);重定向 response.sendRedirect(“/day07/regist.html”)2.    請求次數不同轉發只發送一次請求重定向發送2次請求3.    地址欄變化不同轉發地址欄不變重定向地址欄變化4. 轉發的時候可以通過request對象攜帶數據。
Web中路徑問題

如果在web項目中需要使用路徑,如:轉發、重定向還有超鏈接等。

原則:”一切web路徑以/開始”

那么/的路徑一定是相對路徑,那么/到底代表哪一個相對路徑是需要智慧的。

如果該路徑是給服務器使用的,那么/代表當前網站的根目錄。如果該路徑是給瀏覽器使用的,那么/代表當前Tomcat的webapps目錄。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆川县| 翁牛特旗| 开封市| 拜泉县| 大港区| 隆化县| 台江县| 鄂尔多斯市| 乐山市| 吉木乃县| 全南县| 钟山县| 乐安县| 舞阳县| 崇左市| 拉萨市| 西乌珠穆沁旗| 吉林省| 黄龙县| 柳江县| 华坪县| 龙陵县| 清涧县| 周宁县| 中超| 四川省| 巴林右旗| 黔江区| 荃湾区| 襄汾县| 廉江市| 棋牌| 绍兴县| 邵武市| 郴州市| 晴隆县| 余干县| 察哈| 绵竹市| 庐江县| 海淀区|