ServletContext概述
ServletContext概述
概念:代表整个web应用 可以和程序的容器(服务器)来通信
获取:
- 通过request对象获取
- request.getServletContext();
- 通过HttpServlet获取
- this.getServletContext();
java代码
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo01") public class ServletContextDemo01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.通过request对象获取 ServletContext context1 = req.getServletContext(); //2.通过HttpServlet获取 ServletContext context2 = this.getServletContext(); System.out.println(context1); System.out.println(context2); System.out.println(context1 == context2); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
运行结果
功能:
- 获取MiME类型
- MIME类型:在互联网通信过程中定义的一种文件数据类型
- 格式:大类型/小类型 text/html image/jeag
- MIME类型:在互联网通信过程中定义的一种文件数据类型
-
- 获取:String getMimeType(String file)
java代码
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo02") public class ServletContextDemo02 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.通过HttpServlet获取 ServletContext context2 = this.getServletContext(); //2.定义文件名称 String filename="a.jpg"; //3.获取MINE类型 String mimeType = context2.getMimeType(filename); System.out.println(mimeType); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
运行结果
- 域对象:共享数据
- setAttribute(String name,Object value) 保存数据
- getAttribute(String name) 获取数据
- removerAttribute(String name)
- ServletContext对象范围:所有用户所有请求的数据
java代码
ServletContextDemo03
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo03") public class ServletContextDemo03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.通过HttpServlet获取 ServletContext context2 = this.getServletContext(); //保存数据 context2.setAttribute("msg","hello"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
ServletContextDemo04
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo04") public class ServletContextDemo04 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.通过HttpServlet获取 ServletContext context2 = this.getServletContext(); //获取数据 Object msg = context2.getAttribute("msg"); System.out.println(msg); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
运行结果
- 获取文件的真实(服务器)路径
- 方法:String getRealpath(String path)
在web文件夹下创建a.txt文件
获取web文件下的服务器路径 java代码
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo05") public class ServletContextDemo05 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //通过HttpServlet获取 ServletContext context = this.getServletContext(); //获取web文件下的服务器路径 String path = context.getRealPath("/a.txt"); System.out.println(path); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
运行结果
获取web下WEB-INF文件下的服务器路径 java代码
package com.bai.ServletContext; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ServletContextDemo05") public class ServletContextDemo05 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //通过HttpServlet获取 ServletContext context = this.getServletContext(); //获取web下WEB-INF文件下的服务器路径 String path = context.getRealPath("/WEB-INF/a.txt"); System.out.println(path); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本