JavaWeb——response与request

一、引言


了解了servlet基本原理,其中内置对象response与request了解是必须的,终点学习下==

主要包括get和post方法中的使用

先直观的看一下response和request:get请求没有请求体,post请求有请求体,这里举例为post请求




二、response


不说了,直接上代码,应该比较好了解

package xcy.com;

import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;

/**
 * Servlet implementation class MyResponse
 */
@WebServlet("/MyResponse")
public class MyResponse extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyResponse() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
/*		//设置响应码
		response.sendError(404,"找不到");*/

/*
		//重定向两种方法
		response.setHeader("location", "/second/Resource");
		response.setStatus(302);
		response.sendRedirect("/second/Resource");*/
		
/*		
 		//定时刷新
  		response.setHeader("refresh", "5;URL=/second/index.jsp");
*/	
		
/*		
		//设置取消缓存
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("pragma", "no-cache");
		response.setHeader("expires", "-1");*/

	
/*		//字节流传输
		String s="hahaha";
		byte[] bs=s.getBytes();
		response.getOutputStream().write(bs);*/
		
		
		
 		//获取图片流
 		String path="C:/Users/xcy/Desktop/a.jpg";
		FileInputStream fi=new FileInputStream(path);
		byte[]bt=IOUtils.toByteArray(fi);
		response.getOutputStream().write(bt);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}



三、request


同上面一样,先上代码,把基本的方法了解==

package xcy.com;

import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class MyRequest
 */
@WebServlet("/MyRequest")
public class MyRequest extends HttpServlet {
       

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		/*//获取ip
		String ip=request.getRemoteAddr();
		response.getWriter().print(ip+"<hr/>");*/
		
		
/*		//获取请求方法
		String method=request.getMethod();
		response.getWriter().print(method);*/
		
/*		//获取客户端信息
		String useragent=request.getHeader("user-agent");
		response.getWriter().print(useragent);*/
		
/*		//获取请求url
		String url=request.getRequestURL().toString();
		response.getWriter().print(url);*/
		
/*		//获取referer
		String refer=request.getHeader("referer");
		response.getWriter().print(refer);*/
		
		String name=request.getParameter("name");
/*		byte[]bytes=name.getBytes("iso-8859-1");
		name=new String(bytes,"utf-8");
		response.setHeader("content-type", "text/html;charset=utf-8");*/
		
		response.setHeader("content-type", "text/html;charset=utf-8");
		response.getWriter().print(name);
		
		Map<String, String[]> map= request.getParameterMap();
		response.getWriter().print(name);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("utf-8");
		String name=request.getParameter("name");
		response.setHeader("content-type", "text/html;charset=utf-8");
		//response.setHeader("content-type", "text/html;charset=utf-8");
		response.getWriter().print(name);
	}

}

然后重点讲解一下请求转发与请求包含;

1、请求转发与包含是一个request请求,而重定向是两个请求,request公用;

2、请求转发和请求包含是两个servlet;

3、请求转发留请求头不留请求体,而请求包含留请求头留请求体;

servlet1

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setHeader("name", "xcy");
		response.getWriter().println("1");
/*		//请求转发
		request.getRequestDispatcher("/zhuanfa2").forward(request, response);*/
		//请求包含
		request.getRequestDispatcher("/zhuanfa2").include(request, response);
	}

servlet2


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().println("2");
	}


请求转发输出的是:2;

请求包含输出的是:12;



四、总结


  • request与response直观感受;
  • response常用方法;
  • request常用方法;
  • 重点介绍request请求转发与请求包含;



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值