servlet——06request和response对象

request和response对象

服务器和浏览器交互流程

浏览器发起请求到服务器,会遵循HTTP协议将请求数据发送给服务器。服务器接受到请求的数据浏览器发起请求到服务器,
使用对象进行存储,服务器每接受一个请求,就创建一个对象专门的存储此次请求的请求数据用来保证存储完成性

request对象

作用

用于实现存储请求的请求数据

解释

服务器接收到浏览器的请求后,会创建一个Request对象,对象中存储了此次请求相关的请求数据。
服务器在调用Servlet时会将创建的Request对象作为实参传递给Servlet的方法(service,doPost,doGet)

该对象的使用方式

获取请求头数据
获取请求行数据
获取用户数据

代码实现使用

  1. 获取请求头数据
    req.getMethod();——获取请求方式
    req.getRequestURL();——获取请求URL信息
    req.getRequestURI();——获取请求URI信息
    req.getScheme();——获取协议
  2. 获取请求行数据
    req.getHeader(“键名”);——返回指定的请求头信息
    req.getHeaderNames();——返回请求头的键名的枚举集合
  3. 获取用户数据
    req.getParameter(“键名”);——返回指定的用户数据
    req.getParameterValues(“键名”);——返回同键不同值的请求数据(多选),返回的数组
    req.getParameterNames()——返回所有用户请求数据的枚举集合
    (如果要获取的请求数据不存在,不会报错,返回null)
    注:
    request对象由tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法
package com.servlet.ax1;

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 RequestServlet extends HttpServlet {
	
	protected void service(HttpServletRequest req,
	 HttpServletResponse resp)
			throws ServletException, IOException {
//获取请求头数据
		//获取请求方式
			String method = req.getMethod();
			System.out.println(method);
		//获取请求URL
			StringBuffer url=req.getRequestURL();
			System.out.println(url);
			//获取URI
			String uri=req.getRequestURI();
			System.out.println(uri);
		//获取协议
			String h=req.getScheme();
			System.out.println(h);
//获取请求行数据
			//获取指定的请求行信息
			String value=req.getHeader("aaa");
			System.out.println(value);
			//获取所有的请求行的键的枚举
			Enumeration e = req.getHeaderNames();
			while(e.hasMoreElements()){
				String name=(String) e.nextElement();
				String value2=req.getHeader(name);
				System.out.println(name+":"+value2);
			}
//获取用户数据
			String name=req.getParameter("uname");
			String pwd=req.getParameter("pwd");
			System.out.println(name+":"+pwd);
			//String fav=req.getParameter("fav");
			String[] favs=req.getParameterValues("fav");
			if(favs!=null){
				for(String fav:favs){
					System.out.println(fav);
				}
			}
			//获取所有的用户请求数据的键的枚举集合
			//---req.getParameterNames()	
}
	}
}

在使用Request对象获取了请求数据并进行处理后,处理的结果使用Response对象显示到浏览器

request对象

作用

用来进行响应的一个对象(响应数据到浏览器的一个对象)

解释

服务器在调用指定的Servlet进行请求处理的时候,会给Servlet的方法传递两个实参request和response,其中response则是用来进行响应的一个对象

该对象的使用方式

设置响应头
设置响应编码格式
设置响应实体

代码实现使用

  1. 设置响应头
    setHeader(String name,String value);
    在响应头中添加响应信息,但是同键会覆盖
    addHeader(String name,String value);
    在响应头中添加响应信息,但是不会覆盖。
  2. 设置响应状态
    sendError(int num,String msg);
    自定义响应状态码。
  3. 设置响应实体
    resp.getWrite().write(String str);
    响应具体的数据给浏览器
    4.设置响应编码格式
    resp.setContentType(“text/html;charset=utf-8”);
package com.servlet.ax1;

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 ResponseServlet extends HttpServlet {
	protected void service(HttpServletRequest req, 
	HttpServletResponse resp)
			throws ServletException, IOException {
			//处理请求
			//响应处理结果
				//设置响应头
				resp.setHeader("mouse", "two fly birds");
				resp.setHeader("mouse", "youdian");
				resp.addHeader("key", "thinkpad");
				resp.addHeader("key", "wollo");
				//设置响应编码格式
					//resp.setHeader("content-type"
					,"text/html;charset=utf-8");
					//resp.setContentType("text/plain;charset=utf-8");
					//resp.setContentType("text/xml;charset=utf-8");
					resp.setContentType("text/html;charset=utf-8");
				//设置响应状态吗
					//resp.sendError(404, "this Method is not supported");
				//设置响应实体
					resp.getWriter().write("<b>欢迎大家讨论代码</b>");
				
				
	}
}

service请求处理代码流程

  1. 设置响应编码格式
  2. 获取请求数据——res
  3. 处理请求数据——java代码
  4. 数据库操作——MVC思想
  5. 响应处理结果-resp
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值