Request对象的特点特点
Request对象是由浏览器创建的 每次请求都会创建一个request对象 生命周期是一次请求
Request对象
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* request对象
* 作用: request 对象封存了当前请求所以的请求信息
* 使用:
* 获取请求头数据
* 获取请求行数据
* 获取用户数据
* 注意 : resquest 对象是由tomcat服务器创建的,并作为实参传递给处理请求的servlet的service方法
*
*
* @author zxl
*
*/
public class RequesServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//获取请求方式,默认是get方式
String method = req.getMethod();
System.out.println(method);
//获取url
StringBuffer requestURL = req.getRequestURL();
System.out.println(requestURL);
//获取uri
String uri = req.getRequestURI();
System.out.println(uri);
//获取协议
String scheme = req.getScheme();
System.out.println(scheme);
//获取请求行的数据
req.getHeader("");
//获取所有的请求行的键的枚举
Enumeration<String> hn = req.getHeaderNames();
while (hn.hasMoreElements()) {
String key = (String) hn.nextElement();
String value = req.getHeader(key);
System.out.println(key +" : "+ value);
}
//获取用户数据
String name = req.getParameter("uname");
String pwd = req.getParameter("pwd");
System.out.println(name);
System.out.println(pwd);
//getParameter不能获取同键不同值的 数据的,会漏值
String fav = req.getParameter("fav");
System.out.println(fav);
//可以使用getParameterValues获取同键不同值的数据
//得到的是一个数组
String[] favs = req.getParameterValues("fav");
//如果 fav 不存在,会返回一个null, 因此对favs进行循环时要先进行判断
if(favs!=null){
for(String v : favs){
System.out.println(v);
}
}
//获取所有用户的请求数据 的键, 然后可以
Enumeration<String> names = req.getParameterNames();
}
}
Response对象
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Response 对象:
* 作用: 用来响应数据到浏览器的一个对象
* 使用:设置响应头
* 设置响应实体
*
* service请求处理代码流程
* 设置编码格式
* 获取请求数据
* 处理请求数据
* 数据库操作(MVC思想)
* 设置处理结果
* @author asus
*
*/
public class ResponseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//获取请求信息
//处理请求
//设置响应头 ,一般key都是固定的标签
resp.setHeader("mouse", "two fly brods");
//在响应头中添加信息 setHeader 同键 会覆盖
//addHeadr 同键不会覆盖 是追加
resp.addHeader("key", "thinkpad");
resp.addHeader("key", "wollo");
//设置响应码, 在设置响应编码后,后面不应该再写程序,没有意义
//resp.sendError(404,"sorry");
//设置html编码格式
resp.setHeader("content-type", "text/html;charset=utf-8");
//设置普通文本的字符编码格式
resp.setContentType("text/plain;charset=utf-8");
//设置xml的格式
//resp.setContentType("text/xml;charset=utf-8");
resp.setContentType("text/html;charset=utf-8");
//设置多个编码格式时, 谁在最后谁起作用
//设置响应实体
resp.getWriter().write("<b>this is resp study<b/>");
resp.getWriter().write("<b>今天天气很好,适合学习</b>");
resp.getWriter().write("<b>今天天气很好,适合学习</b>");
//<b> </b> 加粗
resp.getWriter().write("<b>今天天气很好,适合学习</b>");
}
}