问题一:

下面这两段代码差别不大,为何test1结果不同:

代码1:

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
test(response);
test1(response);
} //这样写会乱码,返回两个? 原因是外国人默认用ISO8859码表,当数据存到response中时,ISO8859中没有汉字对应的码表,所以返回?所以解决乱码的关键在于码表的更换,
public void test(HttpServletResponse response) throws IOException{
String data = "中国";
PrintWriter out = response.getWriter();
out.write(data); }
//解决test里面的乱码问题
public void test1(HttpServletResponse response) throws IOException{
//设置response用的码表是UTF-8,以控制response以什么码表像浏览器写出数据
response.setCharacterEncoding("UTF-8");
//因为浏览器默认GB2312,所以现在必须控制浏览器打开数据的码表为UTF-8
response.setHeader("content-type","text/html;charset=UTF-8");
String data = "中国";
PrintWriter out = response.getWriter();
out.write(data);
}

代码2:

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//test(response);
test1(response);
} //这样写会乱码,返回两个? 原因是外国人默认用ISO8859码表,当数据存到response中时,ISO8859中没有汉字对应的码表,所以返回?所以解决乱码的关键在于码表的更换,
public void test(HttpServletResponse response) throws IOException{
String data = "中国";
PrintWriter out = response.getWriter();
out.write(data); }
//解决test里面的乱码问题
public void test1(HttpServletResponse response) throws IOException{
//设置response用的码表是UTF-8,以控制response以什么码表像浏览器写出数据
response.setCharacterEncoding("UTF-8");
//因为浏览器默认GB2312,所以现在必须控制浏览器打开数据的码表为UTF-8
response.setHeader("content-type","text/html;charset=UTF-8");
String data = "中国";
PrintWriter out = response.getWriter();
out.write(data);
}

两段代码区别在于:第一段test和test1方法同时调用,输出结果是????

         第二段只调用了test1方法,结果输出 “中国”

为什么?????

问题二:

下列代码,想从浏览器访问对应位置的图片,为什么总显示NullPointException

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  {
//1、先设置浏览器要以什么方式打开
response.setHeader("Content-type","image/jpeg");
//2、再把目标文件加载成一个输入流 输入流才有读的方法 F://10.jpg这样写是错误的
InputStream in = this.getServletContext().getResourceAsStream("F://10.jpg");
//3、定义字符数组长度的中间变量
int len = 0;
//4、定义一个字符数组
byte by[] = new byte[1024];
//5、先定义好一个输出到浏览器的流
//6、把输入流里的东西读入到字符数组中
OutputStream out = response.getOutputStream();
while((len = (in.read(by)))!=-1){ out.write(by,0,len);
out.flush();
}
out.close();
in.close();
}

当把"F://10.jpg"改成“10.jpg”就对了???是不能指定图片所在路径吗?(F盘下有10.jpg,web应用下也有10.jpg)

自己在WEB学习过程中遇到的问题的更多相关文章

  1. JAVA and JAVA WEB with TOMCAT and ECLIPSE 学习过程中遇到的字符乱码问题及解决方法汇总(随时补充)

    JAVA语言具有跨平台,unicode字符集编码的特点. 但是在开发过程中处理数据时涉及到的字符编码问题零零散散,尤其是处理中文字符时一不留神就可能出现一堆奇奇怪怪的符号,俗称乱码. 对于乱码,究其原 ...

  2. spring web mvc中遇到的错误以及学习小记(持续记录)

    错误:cvc-complex-type.2.4.a: 发现了以元素 'init-param' 开头的无效内容.应以 '{"http://java.sun.com/xml/ns/javaee& ...

  3. 在Web API中使用Swagger-UI开源组件(一个深坑的解决)

    介绍: Swagger-Ui是一个非常棒的Web API说明帮助页,具体详情可自行Google和百度. 官网:http://swagger.io/    GitHub地址:https://github ...

  4. Java web开发中页面跳转小技巧——跳转后新页面在新窗口打开

    最近学习Java web,在学习过程中想实现一个需求,就是在jsp页面跳转的时候,希望跳转后的新页面在新窗口中打开, 而不是覆盖原来的页面,这个需求使我困惑了好长时间,后来通过大海捞针似的在网上寻找方 ...

  5. java: web应用中不经意的内存泄露

    前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...

  6. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  7. web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...

  8. web.xml中load-on-startup的作用

    如下一段配置,熟悉DWR的再熟悉不过了:<servlet>   <servlet-name>dwr-invoker</servlet-name>   <ser ...

  9. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

随机推荐

  1. 基于opencv,开发摄像头播放程序

    前言 Windows下实现摄像视频捕捉有多种实现方式:各种方式的优劣,本文不做对比.但是,opencv是一款老牌开发库,在图像处理领域声名显赫.采用opencv来处理摄像视频,在性能和稳定性上,是有保 ...

  2. Zookeeper的命令行操作(三)

    Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...

  3. MySQL学习随笔记录

    安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...

  4. memcached中hash表相关操作

      以下转自http://blog.csdn.net/luotuo44/article/details/42773231 memcached源码中assoc.c文件里面的代码是构造一个哈希表.memc ...

  5. Java源码之ConcurrentHashMap

    ⑴背景 ConcurrentHashMap是线程安全高效的HashMap.而HashMap在多线程情况下强行使用HashMap的put方法可能会导致程序死循环,使CPU使用率达到100%.(http: ...

  6. 帝国CMS(EmpireCMS) v7.5配置文件写入漏洞分析

    帝国CMS(EmpireCMS) v7.5配置文件写入漏洞分析 一.漏洞描述 该漏洞是由于安装程序时没有对用户的输入做严格过滤,导致用户输入的可控参数被写入配置文件,造成任意代码执行漏洞. 二.漏洞复 ...

  7. hbase rowkey 设计

    HBase中的rowkey是按字典顺序排序的,通过rowkey查询可以对千万级的数据实现毫秒级响应.然而,如果rowkey设计不合理的话经常会出现一个很普遍的问题----热点.当大量client的请求 ...

  8. Unity移动游戏加载性能和内存管理-学习笔记

    前言 正在学习Doctor 张.鑫大佬的移动游戏加载性能和内存管理,内容非常非常的干,所以我烧了很多开水,边喝边看,一边拿小本几做好笔记 本文只是关于前2章的内容笔记,关于各种资源的加载耗时 纹理资源 ...

  9. 02 http和https协议

    1. HTTP协议 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, 是用于从万维网(WWW:World Wide Web )服务器传输超文本到本 ...

  10. 我是如何学习写一个操作系统(二):操作系统的启动之Bootloader

    前言 今天本来的任务看书和把之前写的FragileOS整理一下,但是到现在还在摸鱼,书也只看一点.后来整理了一下写这个系列的思路,原本的目的是对操作系统原理性的学习和对之前写的一个玩具型操作系统的回顾 ...