黑马程序员技术交流社区

标题: 让你们看看在黑马老师一天教的东西(安卓班) [打印本页]

作者: 不可言    时间: 2014-7-22 22:08
标题: 让你们看看在黑马老师一天教的东西(安卓班)
这是今天的一个作业,老师让整理一天的笔记...。你们有何感想么。。。

  1. ---------------------Response响应头-----------------

  2. 向浏览器输出字符涉及的编码问题

  3.         //1.getOutputStream();代表的是用字节流实现输出,默认情况下,用本地编码(GBK)
  4.         ServletOutputStream os = response.getOutputStream();
  5.         os.write("中国,你好!".getBytes());//默认编码输出

  6.         //2,用UTF-8输出给浏览器,这时得指定浏览器用UTF-8
  7.         os.write("<meta http-equiv='Content-Type' content='text/html;charset=GBK'>".getBytes());
  8.         os.write("是热天".getBytes());

  9.         //3,设置头
  10.         response.setHeader("Content-Type", "text/html;charset=UTF-8");
  11.         os.write("ssdfe广东省".getBytes("UTF-8"));

  12. 下载
  13.         //设置头信息
  14.         //response.setHeader("Content-Disposition","attachment;filename=3.jpg");
  15.         //如果下载文件名有中文时的解决方案
  16.         response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode("没是","UTF-8"));
  17.         response.setHeader("Content-Type","application/octet-Stream");
  18.        
  19.         //获取绝对路径
  20.         String path = getServletContext().getRealPath("/WEB-INF/classes/没事.jpg");

  21.         //获取输入输出流
  22.         InputStream is = new FileInputStream(path);
  23.         OutputStream os = response.getOutputStream();
  24.         int len = -1;
  25.         byte[] b = new byte[1024];
  26.         while((len = is.read(b))!=-1)
  27.                 os.write(b,0,len);
  28.        
  29.         is.close();//关闭

  30. 设置不要缓存
  31.         response.setHeader("Expires", -1);
  32.         response.setHeader("Cache-Control", "no-cache");//1.0
  33.         response.setHeader("Prama", "no-cache");//1.1

  34. 设置过期时间
  35.         response.setDateHeader("Expires",System.currentTimeMillis()*3600*1000);//单位长整形,毫秒

  36. 重定向
  37.         特点:
  38.         1,相当于对服务器发送了两次数据
  39.         2,保存在response域中的数据不能共享
  40.         resoponse.sendRedirect("work/1.html");//只能是绝对路径,因为是给浏览器用的


  41. 刷新页面
  42.         //设置浏览器编码
  43.         response.setContentType("text/html;charset=GBK");
  44.         response.getWrite().write("两秒后将跳转至主页");
  45.         //设置刷新时间与跳转地址
  46.         response.setHeader("Refresh","2;URL=/work/1.html");

  47. 字符编码解码:URLEncoder(编码)  URLDecoder(解码)
  48.         String str = "职工";
  49.         String afterStr = URLEncoder.encode(str,"GBK");        //编码
  50.         String restr = URLDecoder.decode(afterStr,"GBK");//解码




  51. --------------------------Request-----------------------------------------------

  52. 方法摘要
  53.         String ip = request.getRemoteAddr();//得到客户端的IP
  54.         String myip = request.getLocalAddr();//服务器ip
  55.                
  56.         String url = request.getRequestURL().toString();//协议+主机+资源地址
  57.         String uri = request.getRequestURI();//资源地址
  58.         String method = request.getMethod();//客户端请求类型
  59.         String queryString = request.getQueryString();//只接受get请求,请求参数
  60.        
  61.         System.out.println("客户端的IP: "+ip);
  62.         System.out.println("服务器ip: "+myip);
  63.         System.out.println("协议+主机+资源地址: "+url);
  64.         System.out.println("资源地址: "+uri);
  65.         System.out.println("客户端请求类型: "+method);
  66.         System.out.println("至接受get请求,请求参数: "+queryString);
  67.        
  68. //-----------------获取请求头的信息--------------------

  69. String                request.getHeader("Accept-Encoding");//得到一个请求头的值
  70. Enumeration        request.getHeaders(str);//得到一个请求头,所对应的多个值的写法
  71. Enumeration        request.getHeaderNames(str);//得到客户端发过来的所有请求头信息



  72. 浏览器访问方式:http://localhost:8080/work/servlet/MethodServletTest1?name=sdf;name=er,pwd=df,dsg=324

  73. 输出结果
  74.         客户端的IP: 0:0:0:0:0:0:0:1
  75.         服务器ip: 0:0:0:0:0:0:0:1
  76.         协议+主机+资源地址: http://localhost:8080/work/servlet/MethodServletTest1
  77.         资源地址: /work/servlet/MethodServletTest1
  78.         客户端请求类型: GET
  79.         至接受get请求,请求参数: name=sdf;name=er,pwd=df,dsg=324

  80. 查看浏览器支持的压缩方式
  81.         String ae = request.getHeader("Accept-Encoding");
  82.                
  83.         if(ae.contains("deflate"))
  84.                 System.out.println("支持deflate压缩:"+ae);
  85.         else
  86.                 System.out.println("不支持deflate压缩:"+ae);
  87.         //输出结果:支持deflate压缩:gzip,deflate,sdch

  88. 得到一个请求头,所对应的多个值的写法
  89.         Enumeration<String> emunss = request.getHeaders("Accept-Encoding");
  90.         while (emunss.hasMoreElements()) {
  91.                 String string = (String) emunss.nextElement();
  92.                 System.out.println(string);//结果:gzip,deflate,sdch
  93.                
  94.                 //得到所有请求头以及它们的值,请加以下语句
  95.                 //System.out.println(request.getHeader(string));
  96.         }

  97. 去请求头参数的值
  98.         String username = request.getParameter("username");
  99. 取多个值
  100.         String []pwd = request.getParameterValues("password");

  101. 获取请求头提交的多个信息,封装至对象中
  102.         //需要导jar包
  103.         User user = new User();
  104.         System.out.println("封装前:"+user);
  105.         BeanUtils.populate(user, request.getParameterMap());
  106.         System.out.println("封装后:"+user);

  107. 上传文件时,用post提交
  108.         InputStream iStream = request.getInputStream();
  109.         int len = -1;
  110.         byte[] b = new byte[1024];
  111.         while ((len = iStream.read(b))!=-1)
  112.                 System.out.println(new String(b,0,len));
  113.        
  114.         iStream.close();

  115. 请求头设置编码格式
  116.         request.setCharacterEncoding("UTF-8");

  117. 域对象
  118.         request.setAttribute(key,value)
  119.         request.getAttribute(key)
  120.         request.removeAttribute(key);

  121. getServletContext()中的转发与reqeust 中的转发
  122.         //ServletContext中的转发只能写绝对路径,而request中的转发可以是绝对路径也可以相对路径

  123. 重定向(2次请求地址栏会变,request域中数据不能传递,可以重定向到别的应用)
  124.         (响应头)response.sendRedirect("绝对路径");

  125. 转发属于本次请求(服务器在转,地址栏不变,是一次请求,request域中数据能传递,只适应于本应用),包含也是一样
  126. 为什么不会输出源中的在网页打印的数据,因为在转发时会先将源对象中的数据清空
  127. 转发之后的代码会继续执行
  128.         request.setAttribute("p","pp");
  129.        
  130.         RequestDispatcher rd = request.getRequestDispatcher("绝对路径or相对路径");
  131.         rd.forward();
  132.         //rd.include();

  133. forward()        不会输出源中的在网页打印的数据,因为在转发时会先将域中数据清空
  134. include()        (包含)会输出源中网页打印的数据
复制代码

作者: 七丶哥    时间: 2014-7-22 22:11
看不懂 呢。
作者: s526349668    时间: 2014-7-22 22:34
讲jsp的九大内置对象了啊
作者: 790324255a    时间: 2014-7-22 22:58
本帖最后由 790324255a 于 2014-7-22 23:08 编辑

表示在学javaWEB DBUtil
作者: 7418695lp    时间: 2014-7-22 23:00
额果断的看不懂啊

作者: 烟海    时间: 2014-7-22 23:04
不太懂。。。。一心想去学安卓呢。。。。。。。
作者: 花花公子    时间: 2014-7-22 23:18
额,基础必须打好啊
作者: dreamseekerkun    时间: 2014-7-22 23:38
表示一点看不懂
作者: 刘小印    时间: 2014-7-22 23:49
很强大的样子,信息量不少
作者: 伊甸拾忆    时间: 2014-7-22 23:57
一天要吸收那么多东东,感觉很强大
作者: scenery_sky    时间: 2014-7-22 23:59
讲的挺多的,加油啊
作者: 长跑※终点    时间: 2014-7-23 00:13
哦哦,知识点还挺多的
作者: 杨冬冬    时间: 2014-7-23 00:13
代码一点也看不懂
作者: 357016138    时间: 2014-7-23 00:18
完全跟不上节奏啊
作者: wisely    时间: 2014-7-23 00:35
mark一下,以后再膜拜
作者: 醉、倾鯎    时间: 2014-7-23 00:37
量不少啊,难怪进去之后都是12之后才睡觉的,一天都得消化完
作者: hmid    时间: 2014-7-23 06:43
楼主是哪个班的啊?第几天的学习了这是?
作者: 刷了牙就睡    时间: 2014-7-23 06:59
这是高考个节奏啊~
作者: bfl625    时间: 2014-7-23 08:56
这是开学多长时间的课程?刚开始的吗?
作者: 唤月    时间: 2014-7-23 09:00
牛           
作者: 阿磊    时间: 2014-7-23 09:04
赶脚很难的样子,基础真的很重要啊
作者: 张周飞    时间: 2014-7-23 09:07
看着这些果断觉得自己是渣渣!!还是好好打好基础
作者: java—family    时间: 2014-7-23 09:10
我一定会来的

作者: a6511631    时间: 2014-7-23 09:15
一天就这么一个作业?
作者: 陈新海1    时间: 2014-7-23 09:46
好难哦,基础一般哦
作者: 签发    时间: 2014-7-23 09:49
还好吧!
作者: 戒风    时间: 2014-7-23 09:54
看不懂,,
作者: tc庄稼汉    时间: 2014-7-23 10:29
响应头:lol:lol:lol:lol:lol:lol
作者: 心ヤ0°一下    时间: 2014-7-23 10:51
好多知识点啊
作者: Franklin    时间: 2014-7-23 14:37
都是动脑子的事儿,不要害怕
作者: 编程学徙    时间: 2014-7-23 14:44
虽然我还看不懂,但是还是要膜拜一下。希望楼主继续坚持分享。。。。。。
作者: baiiiu    时间: 2014-7-23 15:09
牛,得学习了。
作者: meibinlove    时间: 2014-7-23 15:46
这是EW?
作者: 慕杰    时间: 2014-7-23 16:04
我去,很给力的样子!!!
作者: 闪电博尔特    时间: 2014-7-23 16:35
碉堡了牛
作者: 曾欢    时间: 2014-7-25 11:07
眼都花了。。。
作者: 乐此不疲    时间: 2014-7-25 12:50
看不懂  但感觉很充实
作者: 付士长    时间: 2014-7-25 15:50
very good 哈哈顶顶
作者: @for    时间: 2014-7-25 15:53
一天学的知识点真多
作者: dingpanbo    时间: 2014-7-25 15:57
no懂,正在学习中
作者: 高老强    时间: 2014-7-25 16:06
基础不硬,去到真的好难受啊
作者: sunny~    时间: 2014-7-25 16:07
这么多你能记住啊。
作者: xwh1230    时间: 2014-7-25 16:13
嗯,好像内容比基础班多些,不过还能接受
作者: yinxjfly    时间: 2014-7-25 17:28
看完后有种受虐的感觉,多少期啊?
作者: 多此一举    时间: 2014-7-25 18:49
容量挺大啊
作者: 技术牛人    时间: 2014-7-25 20:33
好多啊,不好搞啊
作者: 0小菜鸟0    时间: 2014-7-25 20:34
哎,要是我也能进去学就好了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2