request和respone
Tomcat在接收到浏览器的请求时,会自动的创建request(获取)和respone(响应)两个对象。
service请求处理代码的流程:
- 设置响应编码格式
- 获取请求数据
- 处理请求数据
- (数据库操作(MVC思想))
- 相应处理结果
与之相对应的简单操作:
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应编码格式
resp.setHeader("content-type", "text/html; charset = utf-8");
resp.setContentType("text/html; charset = utf-8");
//获取请求数据request
//获取请求头数据
//获取请求方式如:get,post
String method = req.getMethod();
//获取请求的URL
StringBuffer url = req.getRequestURL();
//获取请求的URI
String uri =req.getRequestURI();
//获取协议
String h = req.getScheme();
//获取请求行数据
//获取请求行对应键名的数据
String value = req.getHeader("Date");
//获取所有的请求行的键名和对应的数据
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("name");
//多个同名键获取:单复选框
String[] favs = req.getParameterValues("fav");
if(favs != null){
for(String fav : favs){
System.out.println(name + ":" + fav);
}
}
//获取所有键的键名枚举集合
Enumeration name3 = req.getParameterNames();
//响应respone
//添加响应信息
resp.setHeader(name, value);//同键名会被覆盖
resp.addHeader(name, value);//同键名不会被覆盖
//设置响应状态码
resp.sendError(404, "this Method is not supported");
//设置响应实体
resp.getWriter().write("Hello World!");
}
}
实现自动刷新
每3秒自动刷新网页一次
resp.setHeader("Refresh", "3");
实现三秒之后跳转其他网页
resp.setHeader("Refresh", "3;url='/index.jsp'");