邵倩
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域中存数据
|