A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

邵倩


ServletContext的功能:
一.读取全局初始化参数(了解)

二.(重点)获得文件的MIME的类型

每种文件都有自己的MIME类型
怎么获得:getServletContext().getMimeType("1.html")  //  text/html

三.(完全掌握)作为域对象存取数据:setAttribute(name,value)     getAttribute(name)
范围  整个web项目,而且全局对象
创建  服务器启动时 服务器为每个web项目创建一个单独的ServletContext对象
销毁 服务器关闭时销毁ServletContext

四.(完全掌握)读取web项目下的文件
a.ServletContext.getResourceAsStream(String path) --- 根据提供路径读取文件返回一个文件的输入流.
b.String getRealPath(String path)


案例 登录成功后 用手动编写代码方式完成文件的下载
DownloadServlet:
      接收浏览器请求的文件,
      设置两个头一个流:
          Content-Type   文件的MIME的类型   告诉浏览器响应回来的文件是什么类型
          Content-Disposition    以下载的形式打开文件     告诉浏览器 无论类型 都以下载的形式打开文件
          InputStream   文件的输入流   
      获得response的输出流
      关闭输入流
download.html:  <a href="/day15_pre/DownLoadServlet?filename=hello.txt">hello.txt</a><br/>



responese向页面响应的方法
getOutputStream().write();
getWriter().print();
这两个方法是互斥的,做出响应的时候只能使用其中的一种流响应.

解决乱码问题
先明确是请求乱码还是响应乱码
请求乱码解决 :  get:       String str = new String(request.getParameter("name").getBetys("ISO-8859-1"),"UTF-8");
                        post:     request.setCharacterEncoding("utf-8");
响应乱码: response.setContentType("text/html;charset=utf-8");
把处理乱码的代码写在  方法中的  靠前的位置


Request代表用户的请求
获得客户机信息:
获得请求方式:getMethod()
获得请求路径:getRequestURI()   getRequestURL()
获得客户机IP地址:getRemoteAddr()
*获得工程名:getContextPath()
*getparameter
*作为域对象存取值setAttribute  getAttribute


案例 注册
创建数据库和表 id username password email name sex telephone
创建包和类  实体类  service  dao servlet    网页

Request作为域对象存取数据
使用request对象存取数据
setAttribute()

重定向和转发的区别(redirect和forward)
重定向的地址栏会发生变化,转发的地址栏不变
重定向两次请求 两次响应,转发一次请求一次响应
重定向路径需要加工程名,转发的路径不需要加工程名
重定向可以跳转到任意页面,转发只能跳转工程内的页面
只有转发可以在request域中存数据


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马