JavaWeb15.4【response:ServletContext对象的获取方式和功能】

 

 

复制代码
 1 package com.haifei.servletcontext;
 2 
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 
11 /**
12  * ServletContext对象的获取方式
13  *  1. 通过request对象获取
14  *         request.getServletContext();
15  *     2. 通过HttpServlet获取
16  *         this.getServletContext();
17  */
18 @WebServlet("/servletContextDemo1")
19 public class ServletContextDemo1 extends HttpServlet {
20     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
21         ServletContext context1 = request.getServletContext();
22         ServletContext context2 = this.getServletContext();
23         System.out.println(context1); //org.apache.catalina.core.ApplicationContextFacade@501082b2
24         System.out.println(context2); //org.apache.catalina.core.ApplicationContextFacade@501082b2
25         System.out.println(context1 == context2); //true
26     }
27 
28     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29         this.doPost(request, response);
30     }
31 }
复制代码
复制代码
 1 package com.haifei.servletcontext;
 2 
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 
11 /**
12  * ServletContext对象的功能1:获取MIME类型
13  *         * MIME类型:在互联网通信过程中定义的一种文件数据类型
14  *             * 格式: 大类型/小类型   text/html    image/jpeg
15  *         * 查看:D:\Program Files\apache-tomcat-8.5.31\conf\web.xml
16  *         * 获取:String getMimeType(String file)
17  */
18 @WebServlet("/servletContextDemo2")
19 public class ServletContextDemo2 extends HttpServlet {
20     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
21         ServletContext context = this.getServletContext();
22 
23         //定义文件名称
24         String fileName = "a.jpg";
25         //获取文件的MIME类型
26         String mimeType = context.getMimeType(fileName);
27         System.out.println(mimeType); //image/jpeg
28 
29     }
30 
31     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
32         this.doPost(request, response);
33     }
34 }
复制代码
复制代码
 1 package com.haifei.servletcontext;
 2 
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 
11 /**
12  * ServletContext对象的功能2:域对象-共享数据
13  *
14  *         1. setAttribute(String name,Object value)
15  *         2. getAttribute(String name)
16  *         3. removeAttribute(String name)
17  *
18  *         * ServletContext对象范围:所有用户所有请求的数据,即最大范围
19  */
20 @WebServlet("/servletContextDemo3")
21 public class ServletContextDemo3 extends HttpServlet {
22     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23         ServletContext context = this.getServletContext();
24 
25         context.setAttribute("msg", "哈哈");
26     }
27 
28     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29         this.doPost(request, response);
30     }
31 }
复制代码
复制代码
 1 package com.haifei.servletcontext;
 2 
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 
11 /**
12  * ServletContext对象的功能2:域对象-共享数据
13  *
14  *         1. setAttribute(String name,Object value)
15  *         2. getAttribute(String name)
16  *         3. removeAttribute(String name)
17  *
18  *         * ServletContext对象范围:所有用户所有请求的数据
19  */
20 @WebServlet("/servletContextDemo4")
21 public class ServletContextDemo4 extends HttpServlet {
22     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23         ServletContext context = this.getServletContext();
24 
25         Object msg = context.getAttribute("msg");
26         System.out.println(msg);
27         /*
28         http://localhost:8080/day15/servletContextDemo3
29         http://localhost:8080/day15/servletContextDemo4
30 
31         哈哈
32          */
33     }
34 
35     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
36         this.doPost(request, response);
37     }
38 }
复制代码
复制代码
 1 package com.haifei.servletcontext;
 2 
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.File;
10 import java.io.IOException;
11 
12 /**
13  * ServletContext对象的功能3:获取文件的真实(服务器[tomcat])路径
14  *
15  *         方法:String getRealPath(String path)
16  *
17  */
18 @WebServlet("/servletContextDemo5")
19 public class ServletContextDemo5 extends HttpServlet {
20     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
21         ServletContext context = this.getServletContext();
22 
23         String realPath = context.getRealPath("/b.txt"); //web目录下资源的访问
24         System.out.println(realPath);
25         // D:\Workspace-java\idea\Workspaces\itheima-javaweb\out\artifacts\day15_war_exploded\b.txt
26         // "/b.txt"中的/代表D:\Workspace-java\idea\Workspaces\itheima-javaweb\out\artifacts\day15_war_exploded\,即web目录
27         File file = new File(realPath);
28 
29         String realPath1 = context.getRealPath("/WEB-INF/c.txt"); //WEB-INF目录下资源的访问
30         System.out.println(realPath1);
31         //D:\Workspace-java\idea\Workspaces\itheima-javaweb\out\artifacts\day15_war_exploded\WEB-INF\c.txt
32 
33         String realPath2 = context.getRealPath("/WEB-INF/classes/a.txt"); //src目录下资源的访问
34         System.out.println(realPath2);
35         //D:\Workspace-java\idea\Workspaces\itheima-javaweb\out\artifacts\day15_war_exploded\WEB-INF\classes\a.txt
36     }
37 
38     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
39         this.doPost(request, response);
40     }
41 }
复制代码

 

 

 

 

 

 

 

posted @   yub4by  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示