一、以字节为单位向客户端发送中文数据
1、服务器以本地默认编码发送中文数据
2、若服务器以UTF-8编码向客户端发送中文数据,此时必须告知客户端编码方式,不然客户端会使用本地默认编码进行解码,出现乱码问题。
出现乱码解决办法:
服务端以什么编码发送数据,就必须告知客户端以什么编码解码。
2.1浏览器“查看”/”编码”,更改默认编码(不可取)
2.2设置响应头:Content-Type text/html;charset=UTF-8
2.3向客户端发送<meta http-equiv=’Content-Type’ content=’text/html;charset=UTF-8′>
2.4调用response.setContentType(“text/html;charset=UTF-8”);
二、以字符为单位向客户端发送中文数据
1、服务器以ISO-8859-1为默认编码发送中文数据
2、中文客户端接收到ISO-8859-1编码的数据肯定不能正常解码(ISO-8859-1码表中没有中文,???)
解决办法:
a、更改服务器发送数据的默认编码
response.setCharacterEncoding(“UTF-8”);
还要通知客户端解码方式
response.setHeader(“Content-Type”,”text/html;charset=UTF-8″);

b、因为经常要变动编码方式,因此SerlvetResponse提供了一个更好用的方法
response.setContentType(“text/html;charset=UTF-8”);
此方法的功效等同于a中的两行代码
三、请求重定向
1、特点:
a、客户端发出2次请求
b、地址栏会改变
c、不共享request和response对象
2、实现:response.sendRedirect(url);
四、response.getOutputStream和getWriter两个方法排斥。在一个Servlet的方法中,要么使用字节流输出,要么使用字符流输出
五、调用response的流进行输出的正文内容首先被写到response对象中,容器从response对象中取出响应行、响应头和正文,组织后发给客户端
五、请求参数的中文乱码问题
1、GET请求方式(请求参数名和值通过URL传递给服务器的,用的编码是ISO-8859-1)
ISO-8859-1码表中没有中文编码。要想显示正常,需要纯手工编码。
原理:按照ISO-8859-1得到字节码。byte b[] = data.getBytes(“ISO-8859-1″);
按照指定的编码重新编码。new String(b,”UTF-8”);

2、POST请求方式
网页是什么编码,发送的请求数据就是什么编码
不论网页什么编码,我们都可以通过request.setCharacterEncoding(“GBK”);来重新指定编码

六、路径的写法:
a、绝对路径写法:ServeltContext都必须用绝对路径。“/”
b、相对路径:其他情况都可以使用相对路径,也可以使用绝对路径

c、在使用绝对路径时,要不要加”/”或者是项目名:如果是服务器调用的,不用加项目名,用“/”就可以代表了
如果是客户端调用的,必须加上项目名

1、转发:request.getRequestDispather(String url)
绝对路径:url /servlet/ServletDemo
2、重定向:response.sendRedirect(String url)
绝对路径:url /day05/servlet/ServletDemo

3、超链接:<a href=”url”/>
绝对路径:url /day05/servlet/ServletDemo
4、类加载文件的路径
web应用中只能用相对路径,相对于classes目录的
5、<fomr action=”url”/>
绝对路径:/day05/servlet/ServletDemo
6、页面分帧(frame)
绝对路径:/day05/servlet/ServletDemo
7、ServletContext.getRealPath(url)
绝对路径:url /servlet/ServletDemo

HttpServletResponse HttpServletRequest RequestDispatcher的更多相关文章

  1. HttpServletResponse,HttpServletRequest详解

    1.相关的接口   HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletReq ...

  2. HttpServletResponse & HttpServletRequest

    web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse: 如果要获取客户端请求过来的 ...

  3. GenericServlet,HttpServletRequest和HttpServletResponse

    最基本的是通过实现Servlet接口来编写Servlet类,这需要实现Servlet接口中定义的5个方法. 为了简化Servlet的编写,在javax.servlet包中提供了一个抽象类Generic ...

  4. HttpServletResponse和HttpServletRequest详解.RP

    HttpServletResponse,HttpServletRequest详解 1.相关的接口   HttpServletRequest HttpServletRequest接口最常用的方法就是获得 ...

  5. [Java面试三]JavaWeb基础知识总结.

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  6. Servlet中的请求转发和重定向

    跳转和重定向 有的时候客户端请求到达服务端后需要对请求重新转发到其它Servlet甚至别的服务器,这就需要跳转和重定向. 区别 一般来说,跳转是服务器内部跳转,例如将请求从一个Servlet转发给另外 ...

  7. 通过判断cookie过期方式向Memcached中添加,取出数据(Java)

    应用场景:在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够 ...

  8. JavaWeb基础知识总结

    JavaWeb基础知识总结.   1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...

  9. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

随机推荐

  1. MVC中ActionFilterAttribute用法并实现统一授权

    MVC中ActionFilterAttribute经常用来处理权限或者统一操作时的问题. 先写一个简单的例子,如下: 比如现在有一个用户管理中心,而这个用户管理中心需要登录授权后才能进去操作或浏览信息 ...

  2. JavaWeb学习笔记--Servlet代码集

    目录: 登录系统提交表单数据打开PDFCookieURL传递参数URL重写跟踪会话使用HttpSession对象跟踪会话Servlet间协作过滤器Filter 登录系统 <!DOCTYPE HT ...

  3. LeetCode_Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  4. PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell

    上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows   vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...

  5. PooledDataSource--mybatis-3-mybatis-3.2.3

    org.apache.ibatis.executor.SimpleExecutor public <E> List<E> doQuery(MappedStatement ms, ...

  6. 通过Excel来集中管理资源文件

     在支持双语或多语种项目中,常常需要编辑多个文件来添加资源项,感觉比较繁琐,所以想做一个可以集中管理资源文件的工具.借助Excel,使用Excel来记录,并且通过Excel可以进行分页分模块来规划 ...

  7. 【BBST 之伸展树 (Splay Tree)】

    最近“hiho一下”出了平衡树专题,这周的Splay一直出现RE,应该删除操作指针没处理好,还没找出原因. 不过其他操作运行正常,尝试用它写了一道之前用set做的平衡树的题http://codefor ...

  8. Python3.5 queue模块详解

    queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在python2.x中,模块名为Queue 在python中,多个线程之间的数据是共享的,多个线程进行数据交换 ...

  9. android学习--TabHost选项卡组件

    TabHost是一种非常有用的组件,TabHost能够非常方便地在窗体上放置多个标签页,每一个标签页获得了一个与外部容器同样大小的组件摆放区域.在手机系统的应用类似"未接电话".& ...

  10. 从 mysql 客户端导出数据库 mysqldump

    window+r 打开cmd 输入 mysqldump -u mysql用户名 -p 数据库名 >  要导出的位置  (注意,最后没有分号) 然后输入密码即可 ^_^