ServletContext:联系上下文,一个项目通用一个context,作用域:整个项目

用法:Servlet里面直接应用,tomcat帮我们自动创建。

获取ServletContext:getServletContext()

ServletContext sc = getServletContext();

方法:

 1.设置数据,以键值对的形式设置

getServletContext().setAttribute("name","rose");

2.获取数据,以键名获取
getServletContext().getAttribute("name");

3.移除设置的数据,以健名移除
getServletContext().removeAttribute("name");

注意:ServletContext最强大的地方时全局通用性,简单来说我再 A Servlet中设置数据,可以在 B Servlet中获取这个数据,可以在 C Servlet中移除这个数据。

4.获取项目中任何文件
方法:
getRealPath("路径")

①.src根目录下的文件的获取:  
"/WEB-INF/classes/src下的file.txt"
②.web根目录下的文件的获取
"/web下的文件.txt"
③.web-inf根目录下的文件的获取
"/WEB-INF/web-inf下的文件.txt"

扩展目录在哪个目录下的问价要加文件的全路径,如下
getRealPath("/WEB-INF/classes/com/servletContext/src_com包下的文件目录.txt")

5.文件流读取:

        InputStream in =       getServletContext().getResourceAsStream("/a.jpg");

        ServletOutputStream os = response.getOutputStream();

        int len=0;
        byte[] b = new byte[1024];
        while((len=in.read(b))!= -1){
            os.write(b,0,len);
        }
        os.close();
        in.close();

注意:此方法读取的文件会占用一整个页面。

 

6.获取配置信息parama

    <context-param>
        <param-name>name</param-name>
        <param-value>rose</param-value>
    </context-param>
获取web.xml的配置信息
String name = servletContext.getInitParameter("name");

解决乱码问题:
也可以指定格式为GBK格式
response.setCharacterEncoding("GBK");

也可以设置为utf-8:
如果是文本就设置参数为 text/html  发给客户端的是 jpeg格式的图像数据,则参数是   image/jpeg
response.setContentType("text/html;charset=utf-8");

设置前一种格式不会破坏servlet格式,后一种会把多行输出变成一行
7.设置响应行 状态码:200表示成功,500表示出现异常,404原因很多,通常是tomcat自己设置,我们几乎不会调用。
           此状态码只是描述,无法真实反应状态。
response.setStatus(200);
8.添加和设置头信息

  添加头信息:添加头信息键值对,键可以重复,添加多个相同的显示多个相同的。
addHeader(key,value)
  
  设置头信息:键是唯一的,重复的键后面覆盖前面
setHeader(key,value)
9.自动跳转:参数  "Refresh"(固定的表示刷新)  ,  "5(跳转时间单位秒)  ;  URL (跳转的目标地址)"
response.setHeader("Refresh","5;URL=https://host/path");
10.重定向
 



posted on 2020-06-17 11:25  LVowe  阅读(182)  评论(0编辑  收藏  举报