response

Servlet中Request与Response应用

泪湿孤枕 提交于 2020-03-09 17:51:56
一、Response 1.Resonse的继承结构: ServletResponse--HttpServletResponse 2.Response代表响应,于是响应消息中的状态码、响应头、实体内容都可以由它进行操作,由此引伸出如下实验: 3.利用Response输出数据到客户端 response.getOutputStream().write("中文".getBytes())输出数据,这是一个字节流,是什么字节输出什么字节,而浏览器默认用平台字节码打开服务器发送的数据,如果服务器端使用了非平台码去输出字符的字节数据就需要明确的指定浏览器编码时所用的码表,以防止乱码问题。response.addHeader("Content-type","text/html;charset=gb2312") response.getWriter().write(“中文”);输出数据,这是一个字符流,response会将此字符进行转码操作后输出到浏览器,这个过程默认使用ISO8859-1码表,而ISO8859-1中没有中文,于是转码过程中用?代替了中文,导致乱码问题。可以指定response在转码过程中使用的目标码表,防止乱码。response.setCharcterEncoding("gb2312"); 其实response还提供了setContentType("text/html;charset

tomcat的request和response小案例

拥有回忆 提交于 2020-03-09 17:51:22
1.传统方式读取文件 @Test public void test() throws IOException { //创建输入流,关联文件 InputStream is = new FileInputStream("src/demo.properties"); Properties pro = new Properties(); //加载到对象 pro.load(is); //根据key拿到value String usernmae = pro.getProperty("username"); String password = pro.getProperty("passwrod"); } 2.使用getRequestAsStream public class ServletContext1 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //ServletContext对象 ServletContext context = this

Servlet Response常用方法

房东的猫 提交于 2020-03-09 17:44:14
接下来记录一下Servlet Response相关的信息,在service方法中使用的是HttpServletResponse,它继承自ServletResponse,扩展了Http协议相关的内容,下面简单记录一下它的基本用法。 response组成内容 以下是一个常见response响应的内容,它包括状态行、响应头、一个空行和实体内容,其中"HTTP/1.1 200 OK"就是 状态行 ,包括协议、状态代号和状态描述信息,下面有若干响应头,空行和实体内容这里没展示。 HTTP请求中的 常用响应头 如下: 1 Location: http://www.it315.org/index.jsp 配合302实现请求重定向 2 Server:apache tomcat 服务器类型 3 Content-Encoding: gzip 服务器发送数据的压缩格式 4 Content-Length: 80 发送数据的长度 5 Content-Language: zh-cn 发送数据的语言环境 6 Content-Type: text/html; charset=GB2312 可接受数据格式和语言 7 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 与请求头的if modified头呼应,主要跟缓存有关 8 Refresh: 1;url=http://www

request和response总结

末鹿安然 提交于 2020-03-09 17:43:55
一、request和response * 当服务器接收到请求后,服务器会创建request和response对象,把请求数据封装到request对象中; * 然后调用Servlet的service()方法时把这两个对象传递给service()方法; * 在service()方法中可以通过request对象获取请求数据,可以使用response对象向客户端完成响应; * 每次请求服务器都会创建新的request和response对象,即每个请求有自己独自的request和response对象。 二、request 1. request功能介绍 * 获取请求头 * 获取请求参数 * Servlet三大域对象之一 * 请求包含和请求转发 2. request域方法 * void setAttribute(String name, Object value):添加或替换request域属性 * Object getAttribute(String name):获取request域指定名称的域属性 * void removeAttribute(String name):移除request域指定名称的域属性 * Enumeration getAttributeNames():获取所有request域的属性名称 3. request获取请求头 * String getHeader(String

Servlet第三天Request

时光总嘲笑我的痴心妄想 提交于 2020-03-09 17:43:02
/*--> */ /*--> */ 1.HttpServletRequest 1.获取客户机信息: •getRequestURL方法返回客户端发出请求时的完整URL。 •getRequestURI方法返回请求行中的资源名部分。 •getQueryString 方法返回请求行中的参数部分。 •getRemoteAddr方法返回发出请求的客户机的IP地址 •getRemoteHost方法返回发出请求的客户机的完整主机名 •getRemotePort方法返回客户机所使用的网络端口号 •getLocalAddr方法返回WEB服务器的IP地址。 •getLocalName方法返回WEB服务器的主机名 //获取请求信息 public class RequestTest extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取请求方式 System.out.println(request.getMethod()); // 获取请求URI System.out.println(request.getRequestURI());// /day06/RequestTest //

request_response

微笑、不失礼 提交于 2020-03-09 17:42:19
每次请求service() 方法,都会由容器创建一个新的对象 Request 和response 在每一次访问时都被创建。由容器创建的 Serlvet 只会被创建一次,由用户来开发,由容器来创建,单一的实例。 ServletConfig 会为每一个Servlet 创建一个Config 对象,且由Servlet 维护。就是声明成了成员变量。 ServletContext 对象,是这一个项目就只有一个此对象。 Servlet API 中定义的 ServletRequest 接口类用于封装请求消息。 HttpServletRequest 是专用于HTTP 协议的ServletRequest 子接口,它用于封装 HTTP 请求消息。 在 service() 方法内部调用 HttpServletRequest 对象的各种方法来获取请求消息。 Request 功能: 接收用户的参数、 接收用户的所有请求头信息、 转发、包含、 做为域对象也可以存放数据 1.HttpServletRequest 是ServletRequest 的子接口,它获取http 请求 (1) 获取请求参数: getParameter("name"): 根据请求参数名获取参数值, getParameterValues (String) 方法: 根据请求参数名获取一组值 getParameterNames () 方法 :

记一次使用Socket模拟HTTP请求

◇◆丶佛笑我妖孽 提交于 2020-03-09 13:09:52
直接进入主题。 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,HTTP是基于TCP/IP通信协议来传递数据。 Java中的正好有一个类可以实现TCP的传输与接收,那就是Socket。 首先要先起一个SpringBoot项目用于接收HTTP请求,Controller很简单,接收请求,并返回请求的内容 @RequestMapping("response") @Controller public class MainController { private static Logger LOG = LoggerFactory.getLogger(MainController .class); @RequestMapping("index.html") @ResponseBody public String index(HttpServletRequest request){ LOG.info("请求内容:"+requestContent(request)); return "请求内容:"+requestContent(request); } public String requestContent(HttpServletRequest

0038 微信公众平台开发 (07 带参二维码)

别说谁变了你拦得住时间么 提交于 2020-03-09 09:54:05
  带参二维码是微信公众号用来管理用户的重要手段。   如果根据客户ID生成带参二维码,那么,当另一个客户扫描这个二维码时,公众号就能够接收到这个参数,并把这个参数设置为客户的上线。以此类推,可以把客户来源全部理清楚,有很大的商业价值。   如果根据组织ID生成带参二维码,就可以自动知道客户来源于什么组织。   总之,参带二维码的关键在于场景值,我们可以设置业务需要的任何场景值,通过用户扫码,来获取这个场景值。 1 生成带参二维码   在Applications/WeChat/views下创建文件,名为:WechatQrcode.py文件 from rest_framework.views import APIView from rest_framework.response import Response from .Utils import get_WeChatClient from rest_framework import status class GetQrcode(APIView): @classmethod def get(cls, request): # 此处可以查询用户ID或用户所在的组织ID,并根据这个ID来生成scene_id wechat_client = get_WeChatClient() # 生成ticket res = wechat_client

http缓存提高效率

£可爱£侵袭症+ 提交于 2020-03-09 06:20:08
给静态资源(HTML文件,图片文件等)的Repsone加上 Expires/Cache-Control Header是很有效的一招。如果HTTP Response中有Expires这样的Header的话,浏览器会Cache这个资源,理想状况下(注意,只是理想状况),在Expire Date之前,不会再发HTTP请求给Server要这个资源,不过Expires的值只能是一个固定日期,比如“Thu 27 Nov 2008 07:00:00 GMT”,不能是一个类似“从现在开始之后10年”这样一个随机浮动的值,如果要这样的效果,可以用Cache-Control这样的Header,如果HTTP Resposne中有这样的Header:“Cache-Control: max-age = 100”,表示这个资源在cache中的最大寿命是100秒。一般说来这种静态文件永远不应该过期,如果真的要给这个Cache加上一个期限,那我希望是——一万年,“Cache-Control: max-age = 315360000000”; 其实就应该给Expires设一个永远不会过期的时间,比如你现在有一个文件叫logo.gif,需要用一个新的logo的时候,你不要去覆盖原来的文件,而把新的logo存成logo_v2.gif,让相关网页引用新的logo_v2.gif,这样可以让新老网页同时工作

python之多线程图片抓取

落花浮王杯 提交于 2020-03-09 01:44:14
站点目标: https://www.2717.com/ 编写脚本: import os import threading import time import requests from bs4 import BeautifulSoup headers = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', } def do_request(url, tries=3): # 添加重试机制 i = 0 while i < tries: try: res = requests.get(url, timeout=5) return res except requests.exceptions.RequestException as e: i += 1 print('request error.', e) return False def download_local(url, img_file): ''' 下载图片到本地 :param url: 远程图片地址 :param img_file: 本地存储地址 ''' res = do_request(url) if