zoukankan      html  css  js  c++  java
  • 9. HttpServletRequest接口

    HttpServletRequest简介

    Web服务器收到客户端的http请求,会针对每一次请求,创建一个用于代表请求的HttpServletRequest类型的request对象并将"HTTP请求协议"的完整内容封装到该对象中开发者获拿到request对象后就可以获取客户端发送给服务器的请求数据了

    HttpServletRequest的生命周期

    当客户端浏览器向服务器发送请求后,服务器会根据HTTP请求协议的格式对请求进行解析。同时,服务器会创建 HttpServletRequest类型的对象,即请求对象,然后将解析出的数据封装到该请求对象中。此时HttpServletRequest实例就创建并初始化完毕了,也就是说,请求对象是由服务器创建。当服务器向客户端发送响应结束后,HttpServletRequest 实例对象被服务器销毁 (即执行完函数后就销毁),HttpServletRequest对象的生命周期很短暂。
    一次请求对应一个请求对象, 另外一次请求对应另外一个请求对象,即每次请求都会创建一个HttpServletRequest类型的对象,这些对象之间没有关系

    HttpServletRequest中常用的方法

    • Map<string,string[]> getParameterMap()
      获取包含所有请求参数及值的 Map 对象。需要注意,该 Map 的 value 为 String[],即一个参数所对应的值为一个数组。说明一个参数可以对应多个值。
    • Enumeration getParameterNames()
      获取请求参数 Map 的所有 key,即获取所有请求参数名。
    • String[] getParameterValues(String name)
      根据指定的请求参数名称,获取其对应的所有值。这个方法一般用于获取复选框(checkbox)数据。  (基于input 的 name 属性 来获取的)
    • String getParameter(String name)
      根据指定的请求参数名称,获取其对应的值若该参数名称对应的是多个值,则该方法获取到的是第一个值。这个方法是最常用的方法。(基于input 的 name 属性 来获取的)

    获取客户端信息的方法:(以下方法自己尝试啊 都很快捷很方便的)

    • getRequestURL方法返回客户端发出请求时的完整URL
    • getRequestURI方法返回请求行中的资源名部分
    • getQueryString 方法返回请求行中的参数部分
    • getRemoteAddr方法返回发出请求的客户机的IP地址
    • getRemoteHost方法返回发出请求的客户机的完整主机名
    • getRemotePort方法返回客户机所使用的网络端口号
    • getLocalAddr方法返回WEB服务器的IP地址
    • getLocalName方法返回WEB服务器的主机名
    • getMethod得到客户机请求方式

       

    下面演示以下 用 html 做一个注册页面 然后来获取到注册的信息:

    html:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style type="text/css" media="screen">
        *{
            margin: 10px;
        }
    </style>
    </head>
    <body>
        <div>
            <p>  -- Bi-Hu 博客 在线注册页面 -- </p>
    <br><hr width="250px">
            <form action="bihu_user" method="post" accept-charset="utf-8">
    
                    账号:<input type="text" name="user" placeholder="账号">
                    <br>
                    密码:<input type="password" name="pass" placeholder="密码">
                    <br>
                    
                    跆拳道 : <input type="checkbox" name="hobby" value="跆拳道">
                    &nbsp&nbsp&nbsp;
                    跑步 : <input type="checkbox" name="hobby" value="跑步">
                    &nbsp&nbsp&nbsp
                    <br>
                    篮球 : <input type="checkbox" name="hobby" value="篮球">
                    &nbsp&nbsp&nbsp
                    羽毛球 : <input type="checkbox" name="hobby" value="羽毛球">
    
                    <br>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
                    <input type="submit" name="submit" value="提交注册">
    
            </form>
        </div>
        
    </body>
    </html>

    记得配置xml 这里不说了  这里配置了 bihu_user 网址

    java:

    package user;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class register extends HttpServlet {
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            System.out.println("用户名:" + request.getParameter("user"));
            System.out.println("密码:" + request.getParameter("pass"));
            String[] hobby = request.getParameterValues("hobby");
            System.out.println("您的爱好:");
            for(String temp : hobby) {
                System.out.println(temp);
            }
                    
        }
    
    }

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14809101.html

  • 相关阅读:
    SurvivalShooter学习笔记(二.玩家移动旋转)
    SurvivalShooter学习笔记(一.相机跟随)
    Unity平台的预处理
    设计模式之简单工厂模式
    求每一位数和
    10进制转化为m进制
    m进制转化为10进制
    【硬件模块】华为NBIOT 使用记录
    【编程语言】Matlab 学习记录
    【设计模式】观察者模式
  • 原文地址:https://www.cnblogs.com/bi-hu/p/14809101.html
Copyright © 2011-2022 走看看