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

JavaWeb-HttpServletResponse对象一

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象。resquest和response对象既然代表请求和响应,那么要获取客户机提交过来的数据,只需要找request对象就行了。要想客户机输出数据,只需要找response对象就行了。

HttpServletResponse对象介绍

HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据,发送响应头,发送响应状态码的方法。

1.向客户端(浏览器发送数据的相关方法),继承自ServletResponse

 

2.负责向客户端(浏览器)发送响应头的相关方法

3.负责向客户端(浏览器)发送响应状态码的相关方法

4.响应状态码常量

 HttpServletResponse对象常见应用

使用OutputSteam流向客户端浏览器输出中文数据

使用OutputStream输出中文要注意:在服务器端,数据是以哪个码表输出的,那么就要在客户端浏览器以相应的码表打开,比如:OutputStream.write(“北邮”.getBytes("UTF-8"));;使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,如:response.setHeader("content-type", "text/html;charset=UTF-8");通过设置响应头控制浏览器以UTF-8的编码显示数据。

package com.fpc;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletContextDemo1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
//        String data = "<h1><font color='blue'>fpc_20171206</font></h1>";
//        resp.getOutputStream().write(data.getBytes());
//        ServletContext context = this.getServletContext();//获取ServletContext对象
//        RequestDispatcher rd = context.getRequestDispatcher("/servletContext/servletContextDemo2");//获取请求转发对象
//        rd.forward(req, resp);
//        String data = "fpc_2017/12/06 14:07";
        /*
         * 设置合理的缓存时间值,以避免浏览器向服务器发送请求,提升服务器的性能
         * 这里是将数据的缓存时间设置为1天
         * */
//        resp.setDateHeader("expires", System.currentTimeMillis() + 24 *3600*1000);
//        resp.getOutputStream().write(data.getBytes());
        String data = "北邮";
        //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示地是乱码
        
        resp.setHeader("content-type", "text/html;charset=UTF-8");
        OutputStream outputStream = resp.getOutputStream();
        /*data.getBytes()是一个将字符转换成字节数组的过程,这个过程一定会去查码表,
         * 如果是中文的操作系统环境,默认就是查找GB2312码表
         * */
        
        byte[] b = data.getBytes("UTF-8");
        
        outputStream.write(b);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        super.doPost(req, resp);
    }
    
}

运行结果:

 

转载于:https://www.cnblogs.com/fangpengchengbupter/p/7992671.html

相关文章:

  • JS~模拟表单在新窗口打开,避免广告拦截
  • mysql分表经验总结
  • Lind.DDD.Messaging框架通讯组件介绍
  • 未完成.队列
  • vuex的使用
  • 21、PHP和python/JAVA比,哪个更好学?
  • word 2007每次打开总出现setup error
  • C# WinForm开发系列 - GDI+【转】
  • 【自用】 Kotlin 创建自己的对话框
  • 从antlr扯淡到一点点编译原理
  • 用Canvas画一棵二叉树
  • webpack+react环境搭建与hello world
  • iOS 实现UINavigation全屏滑动返回(一)
  • c++那些事儿4 0 多态
  • 1.Node.js
  • [译] React v16.8: 含有Hooks的版本
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Apache Pulsar 2.1 重磅发布
  • django开发-定时任务的使用
  • Java 网络编程(2):UDP 的使用
  • javascript数组去重/查找/插入/删除
  • leetcode98. Validate Binary Search Tree
  • Python爬虫--- 1.3 BS4库的解析器
  • Vim Clutch | 面向脚踏板编程……
  • Vue实战(四)登录/注册页的实现
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 后端_MYSQL
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 区块链技术特点之去中心化特性
  • 日剧·日综资源集合(建议收藏)
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • zabbix3.2监控linux磁盘IO
  • #define与typedef区别
  • #include
  • $.ajax()参数及用法
  • (5)STL算法之复制
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (二)JAVA使用POI操作excel
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (转)http-server应用
  • (转)setTimeout 和 setInterval 的区别
  • (转)socket Aio demo
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net 高效开发之不可错过的实用工具
  • @在php中起什么作用?
  • [Android]常见的数据传递方式
  • [AR]Vumark(下一代条形码)
  • [COI2007] Sabor
  • [fsevents@^2.1.2] optional install error: Package require os(darwin) not compatible with your platfo
  • [Java][方法引用]构造方法的引用事例分析
  • [LeetCode]Pow(x,n)
  • [nlp] 损失缩放(Loss Scaling)loss sacle