当前位置: 首页 > news >正文

如何投诉网站制作公司东大桥做网站的公司

如何投诉网站制作公司,东大桥做网站的公司,黄页推广网页,wordpress二次元模板文章目录Response设置响应消息数据1.设置响应行2.设置响应头3.设置响应体案例1.重定向2.输出字符数据到 Response 对象乱码的问题解决办法一解决办法二3.输出字节数据到 Response 对象4.验证码案例继承与实现体系Response 该对象的功能就是用来设置响应消息#xff08;响应报… 文章目录Response设置响应消息数据1.设置响应行2.设置响应头3.设置响应体案例1.重定向2.输出字符数据到 Response 对象乱码的问题解决办法一解决办法二3.输出字节数据到 Response 对象4.验证码案例继承与实现体系Response 该对象的功能就是用来设置响应消息响应报文。 程序员将响应数据封装到 Response 对象中Tomcat 会从 Response 对象中取出程序员设置的响应数据并将这些响应数据、响应头数据、响应行数据封装成响应报文即响应数据包返回给浏览器端。 设置响应消息数据 1.设置响应行 响应行格式HTTP/1.1 200 OK 设置状态码void setStatus(int sc) 2.设置响应头 void setHeader(String name, String value) 3.设置响应体 1.获取输出流 获取输出流PrintWriter getWriter() 获取字节流ServletOutputStream getOutputStream() 2.使用输出流将响应数据输出到 ServletResponse 对象中 案例 1.重定向 // 设置重定向的状态码 resp.setStatus(302); // 设置响应头 resp.setHeader(Location,/servlet_demo/response_demo02);或者 // 重定向到ResponseDemo02 resp.sendRedirect(/servlet_demo/response_demo02);2.输出字符数据到 Response 对象 // 获取字符输出流 PrintWriter pw response.getWriter(); // 输出数据写入数据。先写入到流对象的缓冲区再写入到 Response 对象中服务器再从 Response 对象中读取数据封装成响应报文返回给客户端 pw.write(h1hello/h1);乱码的问题 乱码的原因分析 服务端输出数据需要编码而浏览器加载解析数据需要解码乱码的原因就是编码和解码使用的编码格式不同所导致的。 浏览器用于解码的默认字符编码与操作系统有关中文系统默认的字符编码是 GBK 或者 GB2312而服务器端获取的输出流对象是由 Tomcat 创建的所以使用的字符编码是 ISO-8859-1所以使用 GBK 或者 GB2312 去解码 ISO-8859-1 编码肯定出现乱码了。 解决办法一 不要使用 ISO-8859-1 进行编码改为使用 GBK 进行编码。 示例代码如下 // 在获取输出流之前将Response对象的字符编码设置为GBK默认的是ISO-8859-1 resp.setCharacterEncoding(GBK); // 获取字符输出流 PrintWriter pw resp.getWriter(); // 输出数据 pw.write(h1刘德华/h1);解决办法二 在解决办法一种直接将 Response 对象的字符编码设为 GBK是因为你知道浏览器默认使用的是 GBK如果你不知道呢或者用户使用的浏览器默认的编码不是 GBK 呢所以上述的写法还不够你还需要告诉客户端响应数据所使用的字符编码建议浏览器使用该编码进行解码。这样就不要管浏览器默认的字符编码是啥浏览器在解析数据的时候会使用服务端建议的编码进行解码。 所以完整的示例代码如下 // 在获取输出流之前将Response对象的字符编码设置为GBK默认的是 ISO-8859-1 resp.setCharacterEncoding(utf-8);// 告诉浏览器服务器返回的响应体数据的字符编码建议浏览器使用该编码进行解码 resp.setHeader(content-type,text/html;charsetutf-8);// 获取字符输出流 PrintWriter pw resp.getWriter(); // 输出数据 pw.write(h1刘德华/h1);上述代码中的 resp.setCharacterEncoding(utf-8); 可以去掉因为 resp.setHeader(content-type,text/html;charsetutf-8); 已经指明输出数据时需要使用什么字符编码并且还告诉浏览器需要使用什么字符编码进行解码。 另外 resp.setHeader(content-type,text/html;charsetutf-8); 可以替换成另外一个 API 进行简写如下 // 简单的写法设置响应头Content-Type的值 resp.setContentType(text/html;charsetutf-8);最终的示例代码如下 // 设置响应头Content-Type的值 resp.setContentType(text/html;charsetutf-8); // 获取字符输出流 PrintWriter pw resp.getWriter(); // 输出数据 pw.write(h1刘德华/h1);3.输出字节数据到 Response 对象 示例代码 // 设置Response对象的字符编码为utf-8 resp.setContentType(text/html;charsetutf-8); // 获取字节输出流 ServletOutputStream sos resp.getOutputStream(); // 获取字符的字节数组作为参数传递写入到字节输出流中最后会从字节输出流写入到Response对象中 sos.write(h1中国人/h1.getBytes());那么将消息头 Content-Type 的值设为 text/html;charsetgbk 行不行呢 答不行。设为 gb2312 也不行。因为通过响应消息头 Content-Type 设 置字符编码为 GBK那么字符输出流会按 GBK 进行编码而字节输出流是写入字节数据需要获取字符的字节数组通过 getBytes 方法获取字节数组如果没有指定字符编码默认使用的是 UTF-8所以写入的是 UTF-8 的字节数组因此浏览器端收到的响应数据的编码格式是 UTF-8而你又通过消息头Content-Type 告诉浏览器使用 GBK 解码所以中文字符肯定出现乱码了。 我们知道浏览器在中文操作系统中默认的字符编码是 GBK如果希望服务端在使用字节输出流输出数据时使用 GBK 编码必须这样写 // 获取字节输出流 ServletOutputStream sos resp.getOutputStream(); // 获取字符的字节数组作为参数传递写入到字节输出流中最后会从字节输出流写入到Response对象中 // getBytes方法指定字符编码参数为“GBK”才能得到”GBK“格式的字节数组 sos.write(h1中国人/h1.getBytes(gbk));4.验证码案例 package priv.lwx.javaex.servlet_demo.web.servlet.response;import javax.imageio.ImageIO; 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 java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random;/*** 验证码示例代码** author liaowenxiong* date 2022/1/10 11:01*/ WebServlet(/check_code) public class CheckCodeServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int width 100; // 表示图片的宽度单位像素int height 50; // 表示图片的高度单位像素// 1.创建一个图片对象代表内存中的验证码图片。图片对象创建好之后就表示在内存中创建了一个图片内存中存储的是二进制数据图片背景色默认黑色BufferedImage image new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);// 2.美化图片// 2.1.填充背景色// 先获取画笔Graphics graphics image.getGraphics();// 设置画笔的颜色为粉红色graphics.setColor(Color.PINK);// 填充矩形graphics.fillRect(0, 0, width, height);// 2.2.画边框// 设置画笔的颜色为蓝色graphics.setColor(Color.BLUE);// 画边框graphics.drawRect(0, 0, -1, height - 1);// 画随机字符// 随机字符的来源String str abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;// 创建随机数对象Random ran new Random();// 2.3.画随机字符。循环四次画4个随机的字符for (int i 1; i 4; i) {// 生成随机的字符串下标int index ran.nextInt(str.length());// 获取随机字符char c str.charAt(index);// 画随机字符graphics.drawString(c , width / 5 * i, height / 2);}// 2.4.画干扰线// 设置画笔的颜色为绿色的graphics.setColor(Color.GREEN);// 获取随机的for (int i 0; i 10; i) {// 获取两个随机点的坐标值int x1 ran.nextInt(width);int x2 ran.nextInt(width);int y1 ran.nextInt(height);int y2 ran.nextInt(height);// 画线graphics.drawLine(x1, y1, x2, y2);}// 3.将图片输出到Response对象的字节流中ImageIO.write(image, jpg, resp.getOutputStream());} }继承与实现体系 略
http://www.yutouwan.com/news/201515/

相关文章:

  • 代工平台电商网站seo优化
  • 淘宝网站首页怎么做定制版网站建设详细报价
  • 芜湖做公司网站四川住房和城乡建设网站
  • 网站建设中公司wordpress图片文件目录
  • 飘仙建站论坛如何做网站seo排名优化
  • 贵州黔东南双控体系建设网站产品包装设计模板
  • 响应式网站建设新闻做h5页面有哪些好网站
  • 网站怎么做的有创意如何做计算机网站
  • 深圳 网站公司个人的网站怎么备案表
  • 响应式网站方案用page打开wordpress
  • 新乡做网站哪家好用dw制作网站模板下载
  • 濮阳房产网站建设wordpress 获取地址
  • 便宜的vps租用网站域名解析 别人网站
  • 武昌做网站公司推荐投资网站怎么做
  • 整站优化昌吉可以吗?个人网站介绍怎么写
  • 域名网站可以做多个品牌产品吗网站制作需要平台
  • 广州外贸网站设计网页传奇游戏百度
  • 网站如何从后台进入制作简单的网页代码
  • 网站建设图总结外贸网站建设模版
  • 个人网站怎么做打赏衡水做网站建设公司
  • 做互助盘网站找哪家好织梦采集侠官方网站
  • 免费招聘网站建设搜索引擎推广入口
  • 郑州网站seo多少钱人工智能培训机构哪个好
  • 怎样提升网站权重网站开发怎么谈
  • 牡丹江信息网完整版免费网站seo软件
  • 在线检测网站安全建设部网站查询注册岩土工程师
  • 北苑做网站的公司制作网页类型一般分为什么
  • 产品网站 模板老薛主机wordpress模板
  • 网页设计服装网站建设百度域名地址查询
  • 龙岗外贸网站制作淘宝美工与网站开发