HttpServletRequest對象(一)- 獲取客戶機信息

1、HttpServletRequest介紹

HttpServletRequest對象表明客戶端的請求,當客戶端經過HTTP協議訪問服務器時,HTTP請求頭中的全部信息都封裝在這個對象中,經過這個對象提供的方法,能夠得到客戶端請求的全部信息。

2、Request經常使用方法

2.一、得到客戶機信息

getRequestURL方法返回客戶端發出請求時的完整URL。   
getRequestURI方法返回請求行中的資源名部分。   
getQueryString 方法返回請求行中的參數部分。   
getPathInfo方法返回請求URL中的額外路徑信息。額外路徑信息是請求URL中的位於Servlet的路徑以後和查詢參數以前的內容,它以「/」開頭。   
getRemoteAddr方法返回發出請求的客戶機的IP地址。   
getRemoteHost方法返回發出請求的客戶機的完整主機名。   
getRemotePort方法返回客戶機所使用的網絡端口號。   
getLocalAddr方法返回WEB服務器的IP地址。   
getLocalName方法返回WEB服務器的主機名。

 例:獲取客戶端請求信息html

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Class RequestDemo1 . 經過request對象獲取客戶端請求信息
 *
 * @author 
 * @group 
 * @date 2019/6/13
 */
@WebServlet(name = "RequestDemo1")
public class RequestDemo1 extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException {
    String requestURI = req.getRequestURI(); //獲得請求的資源
    StringBuffer requestURL = req.getRequestURL();//獲得請求的URL地址
    String queryString = req.getQueryString();//獲得請求url地址中附帶參數
    String remoteAddr = req.getRemoteAddr();//獲得來訪者ip地址
    String remoteHost = req.getRemoteHost();//獲得host
    String remoteUser = req.getRemoteUser();
    int remotePort = req.getRemotePort();   //port
    String method = req.getMethod();        //獲取請求方法
    String pathInfo = req.getPathInfo();    //
    String localAddr = req.getLocalAddr();  //獲取WEB服務器的IP地址
    String localName = req.getLocalName();  //獲取WEB服務器的主機名
    resp.setCharacterEncoding("UTF-8");//設置將字符以"UTF-8"編碼輸出到客戶端瀏覽器
    //經過設置響應頭控制瀏覽器以UTF-8的編碼顯示數據,若是不加這句話,那麼瀏覽器顯示的將是亂碼
    resp.setHeader("content-type", "text/html;charset=UTF-8");
    PrintWriter out = resp.getWriter();
    out.write("獲取到的客戶機信息以下:");
    out.write("<hr/>");
    out.write("請求的URL地址:" + requestURL);
    out.write("<br/>");
    out.write("請求的資源:" + requestURI);
    out.write("<br/>");
    out.write("請求的URL地址中附帶的參數:" + queryString);
    out.write("<br/>");
    out.write("來訪者的IP地址:" + remoteAddr);
    out.write("<br/>");
    out.write("來訪者的主機名:" + remoteHost);
    out.write("<br/>");
    out.write("使用的端口號:" + remotePort);
    out.write("<br/>");
    out.write("remoteUser:" + remoteUser);
    out.write("<br/>");
    out.write("請求使用的方法:" + method);
    out.write("<br/>");
    out.write("pathInfo:" + pathInfo);
    out.write("<br/>");
    out.write("localAddr:" + localAddr);
    out.write("<br/>");
    out.write("localName:" + localName);
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    super.doGet(req, resp);
  }
}

運行結果:java

相關文章
相關標籤/搜索