HttpServletRequest

3 篇文章 0 订阅
2 篇文章 0 订阅

一、HttpServletRequest介绍

  HttpServletRequest,Extends the ServletRequest interface to provide request information for HTTP servlets.翻译过来就是HttpServletRequest是继承于ServletRequest,专门用来向HTTP协议的Servlets提供请求信息。当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

二、HttpServletRequest常用方法

  • getServletContext()
  • getRealPath(java.lang.String path)
  • getContextPath()
  • getServletPath()
  • getPathInfo()
  • getRequestURI()
  • getRequestURL()
  • getMethod()
  • getQueryString()
  • getParameter(java.lang.String name)
  • getParameterMap()
  • getParameterNames()
  • getParameterValues(java.lang.String name)
  • getRemoteAddr()
  • getRemoteHost()
  • getRemotePort()
  • getRemoteUser()
  • getLocale()
  • getLocalAddr()
  • getLocalName()
  • getLocalPort()
  • getServerName()
  • getServerPort()
  • getProtocol()
  • getScheme()
  • getHeader(java.lang.String name)
  • getHeaderNames()
  • getHeaders(java.lang.String name)
  • getSession()
  • getSession(boolean create)

三、方法测试

servlet:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DispatcherServlet extends HttpServlet {

    private static final long serialVersionUID = -514345712229720561L;

    @Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        String realPath = request.getServletContext().getRealPath("/");
        String contextPath = request.getContextPath();
        String ServletPath = request.getServletPath();
        String pathInfo = request.getPathInfo();
        String requestUri = request.getRequestURI();
        String requestUrl = request.getRequestURL().toString();

        String method = request.getMethod();
        String queryString = request.getQueryString();

        String user = request.getParameter("user");
        String password = request.getParameter("password");

        String remoteAddr = request.getRemoteAddr();
        String remoteHost = request.getRemoteHost();
        int remotePort = request.getRemotePort();
        String remoteUser = request.getRemoteUser();

        Locale locale = request.getLocale();
        String localAddr = request.getLocalAddr();
        String localName = request.getLocalName();
        int localPort = request.getLocalPort();

        String serverName = request.getServerName();
        int serverPort = request.getServerPort();

        String accept = request.getHeader("Accept");
        String userAgent = request.getHeader("User-Agent");

        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-type", "text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();
        out.write("获取到的客户机信息如下:");
        out.write("<hr/>");
        out.write("请求的绝对路径:" + realPath);
        out.write("<br/>");
        out.write("请求的上下文:" + contextPath);
        out.write("<br/>");
        out.write("请求的ServletPath:" + ServletPath);
        out.write("<br/>");
        out.write("pathInfo:" + pathInfo);
        out.write("<br/>");
        out.write("请求的资源:" + requestUri);
        out.write("<br/>");
        out.write("请求的URL地址:" + requestUrl);
        out.write("<br/>");
        out.write("<br/>");

        out.write("请求使用的方法:" + method);
        out.write("<br/>");
        out.write("请求的URL地址中附带的参数:" + queryString);
        out.write("<br/>");
        out.write("请求参数user:" + user);
        out.write("<br/>");
        out.write("请求参数password:" + password);
        out.write("<br/>");
        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);
        out.write("<br/>");
        out.write("<br/>");

        out.write("请求最终到达的服务器本地语言环境:" + locale);
        out.write("<br/>");
        out.write("请求最终到达的服务器IP地址(请求被转发以后最终处理的地方):" + localAddr);
        out.write("<br/>");
        out.write("请求最终到达的服务器主机名(请求被转发以后最终处理的地方):" + localName);
        out.write("<br/>");
        out.write("请求最终到达的服务器端口(请求被转发以后最终处理的地方):" + localPort);
        out.write("<br/>");
        out.write("<br/>");

        out.write("请求被发送的主机名(url链接中的主机名):" + serverName);
        out.write("<br/>");
        out.write("请求被发送的端口(url链接中的端口号):" + serverPort);
        out.write("<br/>");
        out.write("<br/>");

        out.write("Accept:" + accept);
        out.write("<br/>");
        out.write("User-Agent:" + userAgent);
    }

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

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>com.zavier.test.DispatcherServlet</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/jsp/*</url-pattern>
    </servlet-mapping>
</web-app>

运行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值