300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JavaWeb——response与request

JavaWeb——response与request

时间:2022-08-13 04:20:19

相关推荐

JavaWeb——response与request

一、引言

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

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

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

二、response

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

package ;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 mons.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 stubdoGet(request, response);}}

三、request

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

package ;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/*//获取ipString 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);*//*//获取请求urlString url=request.getRequestURL().toString();response.getWriter().print(url);*//*//获取refererString 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 stubrequest.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 stubresponse.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 stubresponse.getWriter().println("2");}

请求转发输出的是:2;

请求包含输出的是:12;

四、总结

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。