• HttpServletRequest概述


    获取请求行相关信息的相关方法:

    1、getMethod()方法:获得客户端请求方式

    2、getRequestURI()方法:返回URI(URI是URL从主机和端口之后到表单数据之前的那一部分)。

    3、getRemoteAddr()方法:用于获取请求客户端的IP地址

    4、getRemotePort()方法:用于获取请求客户端的端口号

    5、getLocalAddr()方法:用于获取服务器当前接收请求的IP地址

    6、getContextPath()方法:该方法用于获取URL中属于web应用程序的路径

    7、getProtocol()方法:该方法用于获取请求中的协议名和版本

    8.   getQueryString():get提交url地址后的参数字符串

    package com.oracle.demo01;
    
    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 LineServlet extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//获取请求的方式
    		String method=request.getMethod();
    		System.out.println("请求方式为:"+method);
    		//获取请求的URL
    		String URI=request.getRequestURI();
    		System.out.println("URI为:"+URI);
    		//获取请求的URL
    		StringBuffer URL=request.getRequestURL();
    		System.out.println("URL为:"+URL);
    		//获取WEB应用名称
    		String name=request.getContextPath();
    		System.out.println("WEB应用名称为:"+name);
    		//获取请求get请求后的URL后的字符串
    		String query=request.getQueryString();
    		System.out.println("get请求参数为:"+query);
    		//获取客户端的IP地址
    		String ip=request.getRemoteAddr();
    		System.out.println("ip地址为:"+ip);
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request, response);
    	}
    }
    

     

    获取请求头的相关方法:

    1、getHeader(String name):该方法用于获取一个指定头字段的值,如果请求头中不包含该字段则返回null,如果包含多个该字段的值则获取第一个值。

    获取请求参数:获取单个参数

    1、getParameter(String name):用于获取某个指定名称的参数值,如果请求中没有包含指定名称的参数,则返回null,如果有指定参数但是没有给设置值,则返回空串,如果包含多个该参数的值则返回第一个出现的参数值

    2、getParameterNames():该方法用于返回一个包含请求消息中所有参数名的枚举集合

    3、getParameterMap():将请求中所有参数和值装入一个map对象然后返回

    4  .getParametervalues(String name):获取多个值的参数,以数组的String数组的方式

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
       <form action="/WEB06/BodyServlet" method="get">
           <input type="text" name="username"><br>
           <input type="radio" name="sex" value="man">男
           <input type="radio" name="sex" value="woman">女
           <br>
           <input type="checkbox" name="hobby" value="ppq">
                       乒乓球
           <input type="checkbox" name="hobby" value="pq">
                       排球
           <input type="checkbox" name="hobby" value="wq">
                       网球
           <br>
           <input type="submit" value="提交">
       </form>
    </body>
    </html>
    

      

    package com.oracle.demo01;
    
    import java.io.IOException;
    import java.util.Map;
    import java.util.Set;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class BodyServlet extends HttpServlet {
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//post请求解决中文乱码问题
    		//request.setCharacterEncoding("utf-8");
    		//获取请求参数
    		//1.获取单个值的参数
    		String name=request.getParameter("username");
    		name=new String(name.getBytes("ISO-8859-1"),"UTF-8");
    		String sex=request.getParameter("sex");
    		System.out.println(name+"...."+sex);
    		//获取多个值的参数,以数组的String数组的方式
    		String[] hobbys=request.getParameterValues("hobby");
    		//遍历
    		for(String s:hobbys){
    			System.out.println(s);
    		}
    		//获取所有值的请求参数Map
    		Map<String,String[]> map=request.getParameterMap();
    		//遍历
    		Set<String> set=map.keySet();
    		for(String str:set){
    			String[] value=map.get(str);
    			for(String v:value){
    				System.out.println(str+"....."+v);
    			}
    		}
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request, response);
    	}
    }
    

     注意:

          解决post提交方式的乱码:request.setCharacterEncoding("UTF-8");

          解决get提交的方式的乱码:

                parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");

    request:

         只请求一次

         url地址不会改变

  • 相关阅读:
    lcn 分布式事务协调者集群原理
    springboot 监控 Actuator
    springboot 配置文件说明
    docker 安装jenkins
    docker 搭建maven 私服
    docker 安装 gitlab
    docker 安装软件
    docker 部署 java 项目
    mybatis 中between and用法
    vue-router history 模式 iis 配置
  • 原文地址:https://www.cnblogs.com/awdsjk/p/11130788.html
Copyright © 2020-2023  润新知