#Servlet
*SverletConfig(了解)
* String getServletName(); ---获得Servlet在web.xml中配置的name的值.
* String getInitParameter(String name); ---获得Servlet的初始化参数的.
* Enumeration getInitParameterNames(); ---获得所有Servlet的初始化参数的名称.
*SverletContext(重要)
*作用:
1.用来获得全局初始化参数;
sc.getinitparameter(name)
2.用来获得文件的MIME的类型
sc.getMimeType(file)
3.作为域对象存储数据
ServletContext是一个域对象.
* 作用范围:整个web工程.
* 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独 ServletContext对象.
* 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.
sc.setAttribute(name,object)
sc.getAttribute(name)
4.用来读取web项目下的文件
*读取WEB工程下的文件
*传统Java的相对路径的方式不可行
*使用ServletContext对象读取WEB项目下的文件的3种方式
* InputStream getResourceAsStream(String path); --- 根据提供路径读取文件返回一个文件的输入流.
* String getRealPath(String path); --- 返回一个路径的磁盘绝对路径.
*类的加载器(默认找到classes文件夹,只能加载src目录下的文件)(当前类名.)
ReadFileUtils.class.getClassLoader().getResourceAsStream("db.properties");
*response
*登陆成功以后,页面跳转到文件下载的列表的页面,点击列表中的某些连接,下载文件
response:代表响应的对象,从服务器向浏览器输出内容
*response的API
响应行:
设置状态码
D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/qqBB0481296A56989BF7E01398425AC5B3/53707c53e4864f8ba56a050fc559f5ce/fe134947952d4b4f89020dc76b124502.jpg
响应头:
针对一个key对应多个value的头信息
D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/qqBB0481296A56989BF7E01398425AC5B3/ec98176310064fc09faf7a8fc28b991d/d16f690872f84d80a6d6780d4f377747.jpg
针对一个key对应一个value的头信息
D:/%E6%9C%89%E9%81%93%E4%BA%91%E7%AC%94%E8%AE%B0/qqBB0481296A56989BF7E01398425AC5B3/6b36042876de48389d3d57f2e058b3fc/45f459bcf0844584b6d0d8210a4e69b6.jpg
*文件下载的方式
*一种:超链接下载:直接将文件的路径写到超链接的href中.---前提:文件类型,浏览器不支持.
*二种:手动编写代码的方式完成文件的下载
设置两个头和一个流
* Content-Type :文件的MIME的类型.
* Content-Disposition :以下载的形式打开文件.
* InputStream :文件的输入流.
*页面响应的方法
*重定向
response.sendRedirect();
*IE浏览器下载中文文件的时候采用的URL的编码.
* Firefox浏览器下载中文文件的时候采用的是Base64的编码.
* getOutputStream();
* getWriter();
* 这两个方法是互斥的.
* 做出响应的时候只能使用其中的一种流响应.
* 输出中文乱码的处理:
* 字节流:
* 设置浏览器默认打开的编码:
* resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
* 设置中文字节取出的时候编码.
* “中文”.getBytes(“UTF-8”);
* 字符流:
* 设置浏览器打开的时候的编码
* resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
* 设置response的缓冲区的编码
* response.setCharacterEncoding(“UTF-8”);
***** 简化的写法:response.setContentType(“text/html;charset=UTF-8”);
*request
*概述:代表用户的请求
*request的API
*功能一:获得客户机的信息
*功能二:获得从页面中提交的参数
*功能三:作为域对象存储数据
*request的中文乱码问题
*POST
POST的参数在请求体中,
request.setCharacterEncoding("UTF-8")
*GET
*Request 作为域对象存储数据
使用request对象存取数据
request的作用范围:
作用范围就是一次请求的范围
创建和销毁:
创建:客户端向服务器发送一次请求后,服务器就会创建一个request的对象
销毁:当服务器对这次请求做出了响应之后.
*重定向和转发的区别(redirect reforward)
1.重定向的地址栏会发生变化,转发不变
2.重定向两次请求和响应,转发一次
3.重定向路径需要加工程名,转发不需要
4.重定向可以跳转到任意网站,转发只能在服务器内部进行转发
转发更节省流量
|
|