JavaWeb之Request

Request

    HTTP请求协议:


        请求首行            请求方式  请求路径    协议/版本号

            String getMethod()  获得请求方式
            request.getContextPath(): /day08-request 获得项目路径
            String getServletPath()
            request.getQueryString(): name=tom?age=19  获得请求路径中的参数
            request.getRequestURI(): /day08-request/AServlet  获得当前访问的相对路径,相对主机路径
            request.getRequestURL(): http://localhost:8080/day08-request/AServlet 获得当前访问的绝对路径
            request.getServletPath(): /AServlet 获得servlet路径
            String getScheme()  获得协议协议

        请求头                键:值

             request.getContentLength(): -1 返回正文内容长度
             request.getContentType(): null 返回正文内容类型
             request.getLocale(): zh_HANS_CN  获得accept-language:zh_CN
             request.getServerName(): localhost 获得主机名称
             request.getServerPort(): 8080 获得访问端口号
            
            
             String getHeader(String name) 根据键获得值(值只有一个)
             long getDateHeader(String name)
             int getIntHeader(String name)
             Enumeration getHeaderNames()  获得所有请求头的名字
             Enumeration getHeaders(String name)  根据键获得值(值有多个)
                      
            

        请求空行      

    

        请求正文            post请求才有=> 请求参数 => name=tom&age=18

                 String getParameter(String name) 根据参数键获得参数值
                 Map<String,String[]> getParameterMap() 返回封装参数的Map
                 Enumeration getParameterNames() 获得所有参数的键
                 String[] getParameterValues(String name)  根据参数键获得参数值(值有多个)

        网络编程
        request.getRemoteAddr(): 192.168.13.102
        request.getRemoteHost(): 192.168.13.102

        request.getRemotePort(): 53479



例子1  request对象分析

public class AServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//返回正文内容长度
		System.out.println("request.getContentLength(): " + request.getContentLength());
		//返回正文内容类型
		System.out.println("request.getContentType(): " + request.getContentType());
		///day08-request 获得项目路径
		System.out.println("request.getContextPath(): " + request.getContextPath());
		//获得请求方式
		System.out.println("request.getMethod(): " + request.getMethod());
		//zh_HANS_CN  获得accept-language:zh_CN
		System.out.println("request.getLocale(): " + request.getLocale());
		//name=tom?age=19  获得请求路径中的参数	
		System.out.println("request.getQueryString(): " + request.getQueryString());
		//   获得当前访问的相对路径,相对主机路径   /day08-request/AServlet  
		System.out.println("request.getRequestURI(): " + request.getRequestURI());
		//获得当前访问的绝对路径  http://localhost:8080/day08-request/AServlet 
		System.out.println("request.getRequestURL(): " + request.getRequestURL());
		//  获得servlet路径  /AServlet
		System.out.println("request.getServletPath(): " + request.getServletPath());
		//获得远程Ip地址  例如192.168.13.102
		System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
		//例如192.168.13.102
		System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
		//端口号 
		System.out.println("request.getRemotePort(): " + request.getRemotePort());
		//获得协议
		System.out.println("request.getScheme(): " + request.getScheme());
		//localhost 获得主机名称
		System.out.println("request.getServerName(): " + request.getServerName());
		//8080 获得访问端口号
		System.out.println("request.getServerPort(): " + request.getServerPort());

	}

}


浏览器输入:http://192.168.0.126:8080/day08-request/AServlet

结果:

request.getContentLength(): -1
request.getContentType(): null
request.getContextPath(): /day08-request
request.getMethod(): GET
request.getLocale(): zh_CN
request.getQueryString(): null
request.getRequestURI(): /day08-request/AServlet
request.getRequestURL(): http://192.168.0.126:8080/day08-request/AServlet
request.getServletPath(): /AServlet
request.getRemoteAddr(): 192.168.0.126
request.getRemoteHost(): 192.168.0.126
request.getRemotePort(): 56988
request.getScheme(): http
request.getServerName(): 192.168.0.126
request.getServerPort(): 8080

例子2:request对象获得请求参数

首先在index.jsp里面声明2个表单:

 <body>
    <form action="/day08-request/BServlet" method="get" >
    	用户名:<input type="text" name="name" /><br/>
    	密码:<input type="password" name="password" /><br/>
    	<input type="submit" value="提交" />
    </form>
    <hr>
     <form action="/day08-request/BServlet" method="post" >
    	用户名:<input type="text" name="name" /><br/>
    	密码:<input type="password" name="password" /><br/>
    	<input type="submit" value="提交" />
    </form>
  </body>
public class BServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			// 1 获得 所有参数的键
			Enumeration<String> en = request.getParameterNames();
			// 2 遍历所有键
			while(en.hasMoreElements()){
				String key = en.nextElement();
				//根据键 获得值
				String value = request.getParameter(key);
				
				System.out.println(key+"==>"+value);
			}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// 1 获得 所有参数的键
		Enumeration<String> en = req.getParameterNames();
		// 2 遍历所有键
		while(en.hasMoreElements()){
			String key = en.nextElement();
			//根据键 获得值
			String value = req.getParameter(key);
			
			System.out.println(key+"==>"+value);
		}	
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值