JSP复习(part 3 )
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 )的更多相关文章
- JSP复习整理(五)JavaBean使用表单处理数据
一.先建立用户输入的数据 usingGetparameter.html <!DOCTYPE html> <html> <head> <meta charset ...
- JSP复习整理(五)JavaBean生命周期
一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...
- JSP复习整理(四)Cookie
一.useCookie.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- JSP复习整理(三)基本语法续
查看注册后的信息: TestBean.java package com.hai.xaio.cn; public class TestBean { public String userName; pub ...
- JSP复习整理(二)基本语法
最基础的整理.. 一.语句声明 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...
- JSP复习整理(一)表单
好久没更了,一周完成了SRDP,一周完成了课程设计,这一周就要好好回顾回顾Java Web的学习轨迹了. 用的eclipse Mars 一.表单 start.jsp <%@ page langu ...
- JSP复习
3.2.2 JSP指令元素: JSP指令 (1) page指令:定义整个页面的全局属性 (2)include指令:用于包含一个文件或代码的文件 (3)taglib指令:用来引用自定义的标签或第三方标签 ...
- JSP复习(part 4)
3.5.2 重定向网页 使用response对象中的sendRedirect()方法实现一个重定向到另一个页面. 例如: response.sendRedirect(“”login_ok.jsp“”) ...
- JSP复习(part 2 )
3.4.2 访问(获取)请求参数 1.方法 String 字符串变量 =request.getParameter("客户端提供参数的name属性名"): 2.传参数的三种形式 (1 ...
随机推荐
- codevs2189数字三角形(%100)
题目:http://codevs.cn/problem/2189/ %100的话就加一维状态.把最优性改为可行性(存在性). #include<iostream> #include< ...
- hello world之Makefile
hello world之Makefile
- elastic-job 分布式定时任务框架 在 SpringBoot 中如何使用(二)动态添加任务需求
之前一篇用过了如何在使用创建最简单的任务:比如每天定时清空系统的缓存 这篇文章主要讲解:如何运用elastic-job-lite做灵活的细粒度任务,比如: 如何定时取消某个订单在下订单后30分钟未支付 ...
- C#调用Python脚本的简单示例
C#调用Python脚本的简单示例 分类:Python (2311) (0) 举报 收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...
- css 填坑常用代码分享[居家实用型]
原文地址 http://www.cnblogs.com/jikey/p/4233003.html 以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 一. css 2.x ...
- 创建mysql 用户并限定其操作主机 和 数据库
参考链接 http://www.cnblogs.com/top5/archive/2010/09/14/1825571.html ******** GRANT ALL ON push.* TO pus ...
- [C#]泛型约束在窗体定义上的使用
查相关资料查的一团乱,自己瞎写了几次以后误打误撞成功了: namespace Test1 { public partial class Form1<T> : Form { // ... F ...
- [转]Outlook HTML渲染
转自:http://www.cnblogs.com/dolphinX/p/4081828.html 是不是很讨厌为Email代码兼容Outlook? 太遗憾了!虽然光都有尽头,但Outlook始终存在 ...
- mysql 字符集排查
mysql 字符集排查 库级别 SELECT * FROM information_schema.schemata WHERE schema_name NOT IN ( 'information_sc ...
- 在控制终端输入AT命令
控制台终端输入AT命令到smd8,步骤如下: 1. 先执行命令 cat /dev/smd8 & 2. 再执行 echo -e "ati\r\n" > /dev ...