一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 深入了解Java ServletContext

深入了解Java ServletContext

2020-08-03 14:30一只胡說八道的猴子 Java教程

這篇文章主要介紹了Java ServletContext的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下

什么是ServletContext

根據字面意思即Servlet上下文

深入了解Java ServletContext

服務器會為每一個工程創建一個對象,這個對象就是ServletContext對象,這個對象是
全局唯一的,工程內部的所有servlet都共享這個對象,所有應用程序共享對象

深入了解Java ServletContext

下面用一段簡單的代碼來證明一下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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("/ServletContext2")
public class ServletContext2 extends HttpServlet{
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    System.out.println("ServletContext2的地址:");
    System.out.println(servletContext);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doGet(req, resp);
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import javax.servlet.RequestDispatcher;
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("/ServletContext")
public class ServletContext extends HttpServlet{
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doPost(req, resp);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    javax.servlet.ServletContext servletContext = this.getServletContext();
    System.out.println("ServletContext2的地址:");
    System.out.println(servletContext);
    RequestDispatcher servletContext2 = req.getRequestDispatcher("ServletContext2");
    servletContext2.forward(req,resp);
  }
}

可以看到二者的地址一模一樣

深入了解Java ServletContext

ServletContext對象的生命周期

誕生:web部署到服務器上,啟動服務器,此時上下文環境對象創建,只要tomcat服務器不關閉,上下文環境對象就一直
存在

銷毀:關閉服務器或者是從web服務器上卸載該程序的時候,該對象銷毀

怎么創建ServletContext對象?

方法一:

javax.servlet.ServletContext servletContext = this.getServletContext();

方法二:

javax.servlet.ServletContext servletContext1 = req.getServletContext();

方法三:

javax.servlet.ServletContext servletContext3 = this.getServletConfig().getServletContext();

ServletContext對象的作用與相關方法

1.是一個域對象*

什么是域:域其實就是一個map結構,及存入一個鍵值對,來存儲獲取數據
作用范圍:本工程內部
域對象可以被本工程內所有的servlet對象共享,因為一個工程只有一個servletcontext對象

方法介紹:
存儲數據: void setAttribute(String var1, Object var2);

移除數據: void removeAttribute(String var1);

獲取數據: Object getAttribute(String var1);
1.由于取出的是一個Object類型,需要強轉
2.如果指定的屬性名不存在,則返回null

2.可以獲取文件的真實路徑

真實路徑:即部署在服務器是的路徑
String getRealPath() 獲取文件的真實路徑

不同目錄下訪問資源的方式不同

?
1
2
3
4
5
6
7
8
9
//src下的資源訪問
    String realPath = servletContext.getRealPath("/WEB-INF/classes/a.text");
    System.out.println(realPath);
//WEB-INF下的資源訪問
    String realPath1 = servletContext.getRealPath("/WEB-INF/b.text");
    System.out.println(realPath1);
 //web目錄下的資源訪問
    String realPath2 = servletContext.getRealPath("/c.text");
    System.out.println(realPath2);

代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import javax.servlet.RequestDispatcher;
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("/ServletContext")
public class ServletContext extends HttpServlet{
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doPost(req, resp);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    javax.servlet.ServletContext servletContext = this.getServletContext();
    //src下的資源訪問
    String realPath = servletContext.getRealPath("/WEB-INF/classes/a.text");
    System.out.println(realPath);
    //WEB-INF下的資源訪問
    String realPath1 = servletContext.getRealPath("/WEB-INF/b.text");
    System.out.println(realPath1);
    //web目錄下的資源訪問
    String realPath2 = servletContext.getRealPath("/c.text");
    System.out.println(realPath2);
  }
}

結果

深入了解Java ServletContext

3.獲得MIME類型

s什么是MIME類型,是在互聯網通信過程中定義等等一種文件數據類型
格式:大類型/小類型 image/jpeg
獲取: String getMimeType(String file)

代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import javax.servlet.RequestDispatcher;
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("/ServletContext")
public class ServletContext extends HttpServlet{
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doPost(req, resp);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    javax.servlet.ServletContext servletContext = this.getServletContext();
    String filename="a.jpg";
    String mimeType = servletContext.getMimeType(filename);
    System.out.println(mimeType);
  }
}

結果

深入了解Java ServletContext

以上就是ServletContext對象的一些基礎知識,如有錯誤還請各位批評指正,喜歡我的文章可以點贊呀,也可以關注我,我會經常跟新文章

以上就是深入了解Java ServletContext的詳細內容,更多關于Java ServletContext的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/pjhaymy/p/13424324.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲嫩模吧粉嫩粉嫩冒白浆 | 亚洲AV永久无码精品澳门 | 亚洲精品tv久久久久久久久久 | 丝袜足液精子免费视频 | 99久久精品免费看国产一区二区 | 2022日韩理论片在线观看 | 小鸟酱喷水 | 欧美a级v片在线观看一区 | 456亚洲人成高清在线 | 草草视频人人爽 | 国产一卡2卡3卡四卡高清 | ts人妖国产一区 | 国产精品怡红院在线观看 | 美女翘臀跪床被打屁股作文 | 全肉一女n男np高h乳 | 欧美cosplay极品video | 国产一级毛片国语版 | 99精品在免费线视频 | 色男人网 | 欧美一区二区三区免费看 | 亚洲2卡三卡4卡5卡精品 | 欧美香蕉 | 农村妇女野外牲交一级毛片 | 脱了白丝校花的内裤猛烈进入 | 99热久热这里只精品 | 香蕉97超级碰碰碰免费公 | 91在线视频播放 | 精品国产免费第一区二区三区日韩 | 天堂网站天堂小说 | 日本www色视频成人免费 | 日韩成人免费aa在线看 | 扒开老师两片湿漉的肉 | 99视频免费在线观看 | 青青青手机视频在线观看 | 欧美高清免费一级在线 | 亚洲一级视频在线观看 | 国产第一福利视频导航在线 | 男女男精品网站 | 成人网视频免费播放 | 久久观看视频 | 日韩精品欧美高清区 |