3.4.4

request对象提供了一些用来获取客户信息的方法,利用这些方法,可以获取客户端的IP地址 协议等有关信息

3.5

request对象和response对象相对应,用于响应客户请求,由服务器端向客户端输出信息。当服务器向客户端传送数据时,JSP容器会自动创建RESPONSE对象并

将信息封装到response对象中,当JSP容器处理完请求后,request对象会被销毁,response和request综合起来完成动态网页的交互功能

3.5.1

原理
        1web容器(tomcat等)会传入与web容器相关的HttpServletRequest和HttpServletResponse的实现。
        2每一次浏览器的请求web服务器都会创建一个新的HttpServletReques和ServletResponse对象,并且
                这两个对象的声明周期仅限于web容器内。
response对象常用方法
        1 setStatues
        2 setHeader
        3 getWriter
        4 getOutputStream
    response常见应用
    
        1)向浏览器输出数字
        原理:
            无论是ServletOutputStream对象还是ServletWrite对象的write(int c);方法
            都会自动将c去查询iso8859-1编码表,并取出相应的字符传送到客户端,
            所以输入的是数字,客户端得到的却是对应的字符。
        解决办法:
            将数字转换成字符串,再通过字符串的形式进行输出。
            又因为OutputStream对象write()方法参数中不支持对字符串的输出,所以需要通过getBytes方法进行转换
            而ServletWriter的write()方法参数支持字符串的输出,所以可以直接输出,不必转换

2)向浏览器输出中文字符
            原因:
                1byte[] getBytes();方法在进行编码的时候会按照当前的编码方式进行编码
                2byte[] getBytes(String charset);方法在进行编码的时候会按照指定的编码方式进行编码
                3而iso8859-1不支持中文字符的编码,所以,在进行编码的时候需要指定能够编码中文字符的编码方式。
            注意:在以字符流方式输出中文到客户端,需要提前告诉客户端用utf-8去接受。

3)设置响应头发送给客户端
            当遇到中文字符的时候,需要使用URLEncoder类的静态方法使用指定的编码机制将字符串转换为客户端浏览器能正确解析的编码方式。
            方法原型:
                String encode(String s, String enc);
            code:
                response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(file.getName(), "utf-8"));

JSP复习(part 3 )的更多相关文章

  1. JSP复习整理(五)JavaBean使用表单处理数据

    一.先建立用户输入的数据 usingGetparameter.html <!DOCTYPE html> <html> <head> <meta charset ...

  2. JSP复习整理(五)JavaBean生命周期

    一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...

  3. JSP复习整理(四)Cookie

    一.useCookie.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  4. JSP复习整理(三)基本语法续

    查看注册后的信息: TestBean.java package com.hai.xaio.cn; public class TestBean { public String userName; pub ...

  5. JSP复习整理(二)基本语法

    最基础的整理.. 一.语句声明 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  6. JSP复习整理(一)表单

    好久没更了,一周完成了SRDP,一周完成了课程设计,这一周就要好好回顾回顾Java Web的学习轨迹了. 用的eclipse Mars 一.表单 start.jsp <%@ page langu ...

  7. JSP复习

    3.2.2 JSP指令元素: JSP指令 (1) page指令:定义整个页面的全局属性 (2)include指令:用于包含一个文件或代码的文件 (3)taglib指令:用来引用自定义的标签或第三方标签 ...

  8. JSP复习(part 4)

    3.5.2 重定向网页 使用response对象中的sendRedirect()方法实现一个重定向到另一个页面. 例如: response.sendRedirect(“”login_ok.jsp“”) ...

  9. JSP复习(part 2 )

    3.4.2 访问(获取)请求参数 1.方法 String 字符串变量 =request.getParameter("客户端提供参数的name属性名"): 2.传参数的三种形式 (1 ...

随机推荐

  1. bzoj 2784 [JLOI2012]时间流逝——树上高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2784 一个状态可以加很多个能量圈,但减少能量圈的情况只有一种.所以可以用树来刻画. 然后就变 ...

  2. 详细说明 配置 Sublime Text 开发node.js(windows)包括sub2和sub3的区别

    1.先安装Sublime Text  2或者3皆可 2.下载 sublime Text 的nodejs插件 得到那个zip包(后面会介绍用Package Control安装) 3.下载后解压 直接改名 ...

  3. C#下编程完成IIS网络App的权限设置

    转自:http://linwx1978.blog.163.com/blog/static/1504106920101104834271/ 以前的日志中转了不少文章,最近听说转文不是好习惯,决定普世一把 ...

  4. 几个有用的Linux命令

    原文:http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 本文为原文摘要. 1. man ascii 打印ascii代码表 2. cal ...

  5. java实验三——求平均数,数组排序(有关java保留小数位数,由于编译器版本未到1.5导致的报错format函数第二个参数不对,要求是Object[])

    package hello; import java.util.Arrays; public class 实验三更正版 { public static void main(String[] args) ...

  6. 学习笔记之Docker

    Docker 官网 http://www.docker.com Docker is the company driving the container movement and the only co ...

  7. Hadoop2.0构成之YARN

    YARN产生背景 Hadoop1.x中的MapReduce构成图如下: 在Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个Ta ...

  8. Python中的LEGB规则

    目标 命名空间和作用域——Python从哪里查找变量名? 我们能否同时定义或使用多个对象的变量名? Python查找变量名时是按照什么顺序搜索不同的命名空间? 命名空间与作用域的介绍 命名空间 大约来 ...

  9. nodejs——发送邮件(带附件)

    用到的包是 nodemailer,简单,有效. 1.auth 中的 pass,是指“邮箱第三方登录授权码”,如何获取授权码,以QQ邮箱为例,请点击:http://jingyan.baidu.com/a ...

  10. node实现缓存

    内容: 1.缓存基本原理 2.node实现缓存 1.缓存基本原理 第一重要.缓存策略: cache-control:用于控制缓存,常见的取值有private.no-cache.max-age.must ...