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