java必知必會-j2ee規范(上)

文章目錄

  • 一、WEB三大規范
  • 二、j2ee相關接口(上)
    • 1.javax.servlet.Servlet
    • 2.javax.servlet.http.HttpServlet
    • 3.javax.servlet.ServletRequest
    • 4.javax.servlet.http.HttpServletRequest
    • 5.javax.servlet.ServletResponse
    • 6.javax.servlet.http.HttpServletResponse
    • 7. javax.servlet.ServletContext
    • 8. javax.servlet.ServletConfig
  • 總結


一、WEB三大規范

  • servlet
  • filter
  • listener

二、j2ee相關接口(上)

1.javax.servlet.Servlet

  • servlet用于獲取請求數據、處理請求、完成響應
  • 使用servlet可以實現servlet接口并配置web.xml,但是不推薦
  • init(ServletConfig config);//servlet對象創建的時候執行ServletConfig:代表的是該servlet對象的配置信息
  • service(ServletRequest request,ServletResponse response);//每次請求都會執行
  • destroy();//servlet銷毀的時候執行

2.javax.servlet.http.HttpServlet

  • 使用servlet可以繼承HttpServlet并復寫HttpServlet類的doGet、doPost方法并配置web.xml
  • init();//servlet對象創建的時候執行
  • doGet(HttpServletRequest request,HttpServletResponse response);//每次get請求都會執行
  • doPost(HttpServletRequest request,HttpServletResponse response);//每次post請求都會執行
  • destroy();//servlet銷毀的時候執行

3.javax.servlet.ServletRequest

4.javax.servlet.http.HttpServletRequest

  • 獲得請求行
    • String getContextPath()獲得”/“+web應用名稱,例如/WEB15_request
    • String getMethod()
    • String getRequestURI()獲得相對web應用地址/WEB15_request/line
    • String getRequestURL()獲得絕對路徑http://localhost:8080/WEB15_request/line
    • String getRemoteAddr()獲得訪問的客戶端IP地址
    • String getQueryString()get提交url地址后的參數字符串username=lisi&password=123
    • String getProtocol();獲取請求行中的協議名和版本
    • String getServletPath();
    • String getRemotePort();
    • String getRemoteHost();
    • String getLocalAddr();
    • String getLocalName();
    • String getLocalHost();
    • int getLocalPort();
    • String getServerName();
    • int getServerPort();
    • String getScheme();//獲取請求協議名
    • StringBuffer getRequestURL();
  • 獲得請求頭
    • String getHeader(String name)
    • Enumeration getHeaders(String name)
    • Enumeration getHeaderNames()
    • Long getDateHeader(String name)
    • int getIntHeader(String name)
    • String getContentType()
    • int getContentLength()
    • String getCharacterEncoding()
  • 獲得請求體
    • String getParameter(String name) 多個只獲得一個,沒有則返回null
    • Map<String,String[]> getParameterMap()獲得指定參數名對應的所有鍵值
    • String[] getParameterValues(String name)獲得指定參數名對應的所有值(少用)
    • Enumeration getParameterNames()
  • 亂碼:瀏覽器的中文用UTF-8編碼,而HTTP協議使用iSO8859-1編碼。不同的瀏覽器接收和發送數據取決于瀏覽器類型,通過Http請求體中的User-Agent屬性可以辨別
    • post亂碼 request.setCharacterEncoding(“UTF-8”);
    • get亂碼 String parameter=new String(parameter.getbytes(“iso8859-1”),“utf-8”);
  • 轉發 request.getRequestDispatcher(”/?”).forward(req,resp);
  • 域對象
    • Object setAttribute (String name, Object o)set注意名字相同時則覆蓋
    • String getAttribute(String name)
    • void removeAttribute(String name)

5.javax.servlet.ServletResponse

6.javax.servlet.http.HttpServletResponse

  • 設置響應行
    • void setStatus(int sc)
    • void sendError(int sc,[String messge])
  • 設置響應頭(值不重復)
    • void addHeader(String name, String value)
    • void setHeader(String name, String value);
  • 設置定時刷新的頭:setHeader(“refresh”, “5;url=http://www.baidu.com”);
    • void addIntHeader(String name, int value)
    • void setIntHeader(String name, int value)
    • void addDateHeader(String name, long date)
    • void setDateHeader(String name, long date)
    • void setContentLength(int len)
    • void setContentType(String type)
    • void setLocale(Locale loc)
    • void setCharacterEncoding(String charset)
  • 設置響應體
    • getWriter().write(“”)字符串,可以插入標簽
    • getOutputStream().write(byte[] bytes) 因為getWriter()之前已調用getOutputStream(),故兩者不能同時使用
    • setHeader(“content-Type”,“text/html;charset=utf-8”);中文亂碼
    • sendRedirect(“/WEB14/servlet2”);重定向
    • setStatus(302);setHeader(“Location”, “/WEB14/servlet2”);

7. javax.servlet.ServletContext

  • 獲得ServletContext
    • ServletConfig.getServletContext();
    • this.getServletContext();(推薦)
  • 獲得web.xml全局的初始化參數 getInitParameter(String name);
  • 域對象(整個web應用)
    • void setAtrribute(String name,Object obj);
    • Object getAttribute(String name);
    • void removeAttribute(String name);
  • WebContext目錄內任何資源絕對路徑
    • String getRealPath(String path);//:/WEB-INF/
    • InputStream getResourceAsStream(String path); 以/開頭path相對WebContext目錄InputStream

8. javax.servlet.ServletConfig

  • 獲得該servlet在web.xml上的name String getServletName();
  • 獲得該servlet的初始化的參數
    • String getInitParameter(String name);
    • Enumeration getInitParameterNames();
  • 獲得Servletcontext對象 ServletContext getServletContext();

總結

本文介紹了的j2ee規范(上),如有問題歡迎私信和評論

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40178.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

k8s record 20240705

k8s 安全管理 request 是1g&#xff0c;你得不到要求&#xff0c;我就不創建了&#xff0c;這就是準入控制二次校驗 SA就是serviceAccount。 內部是SA和 token, 外部用戶進來就是 .kube/config文件 namespace下的是role&#xff0c;整個集群是 ClusterRole. 動作就是Binding li…

pytest-rerunfailures:優化測試穩定性的失敗重試工具

筆者在執行自動化測試用例時&#xff0c;會發現有時候用例失敗并非代碼問題&#xff0c;而是由于服務正在發版&#xff0c;導致請求失敗&#xff0c;從而降低了自動化用例的穩定性&#xff0c;最后還要花時間定位到底是自身case的原因還是業務邏輯問題&#xff0c;還是其他原因…

大數據面試題之Presto[Trino](3)

目錄 Presto如何處理數據的聚合操作&#xff1f; Presto支持哪些類型的JOIN操作&#xff1f; 如何在Presto中使用子查詢&#xff1f; 解釋Presto中的窗口函數。 Presto中的Page和Block是什么&#xff1f; 描述Presto如何處理列式存儲數據。 ORC和Parquet格式在Presto中的…

適合家居建材企業的CRM系統盤點(2024版)

當前&#xff0c;CRM市場上&#xff0c;國際巨頭的市場優勢正在逐漸減弱&#xff0c;國內CRM企業奮起追趕&#xff0c;呈現出強勁的崛起勢頭。因此&#xff0c;對于家居建材企業來講&#xff0c;在進行CRM選型時&#xff0c;如何選擇一款合適的系統是關乎企業高效發展的重要課題…

探索C嘎嘎的奇妙世界:第十九關---STL(list的模擬實現)

1. 基本框架 首先&#xff0c;我們先從節點的準備工作入手&#xff0c;請看示例&#xff1a; #pragma once #include<iostream> #include<assert.h> using namespace std; //節點 template<class T> struct ListNode {ListNode<T>* _next;Li…

矩陣鍵盤與密碼鎖

目錄 1.矩陣鍵盤介紹?編輯 2.掃描的概念 3.代碼演示&#xff08;讀取矩陣鍵盤鍵碼&#xff09; 4.矩陣鍵盤密碼鎖 1.矩陣鍵盤介紹 為了減少I/O口的占用&#xff0c;通常將按鍵排列成矩陣形式&#xff0c;采用逐行或逐列的 “掃描”&#xff0c;就可以讀出任何位置按鍵的狀態…

免殺筆記 ----> ShellCode Loader !!!

學了那么久的前置知識&#xff0c;終于到了能上線的地方了&#xff01;&#xff01;&#xff01; 不過這里還沒到免殺的部分&#xff0c;距離bypass一眾的殺毒軟件還有很長的路要走&#xff01;&#xff01; 目錄 1.ShellCode 2.ShellCode Loader的概念 3.可讀可寫可…

字符串函數5-9題(30 天 Pandas 挑戰)

字符串函數 1. 相關知識點1.5 字符串的長度條件判斷1.6 apply映射操作1.7 python大小寫轉換1.8 正則表達式匹配2.9 包含字符串查詢 2. 題目2.5 無效的推文2.6 計算特殊獎金2.7 修復表中的名字2.8 查找擁有有效郵箱的用戶2.9 患某種疾病的患者 1. 相關知識點 1.5 字符串的長度條…

代碼隨想錄算法訓練營第四十四天|188.買賣股票的最佳時機IV、309.最佳買賣股票時機含冷凍期、714.買賣股票的最佳時機含手續費

188.買賣股票的最佳時機IV 題目鏈接&#xff1a;188.買賣股票的最佳時機IV 文檔講解&#xff1a;代碼隨想錄 狀態&#xff1a;不會 思路&#xff1a; 在股票買賣1使用一維dp的基礎上&#xff0c;升級成二維的即可。 定義dp[k1][2]&#xff0c;其中 dp[j][0] 表示第j次交易后持…

虛擬ECU:純電動汽車發展下的新選擇

人類文明的進步是一個不斷自我否定、自我超越的過程。21世紀以來&#xff0c;隨著科技進步和經濟社會發展&#xff0c;能源和交通系統已從獨立于自然環境的孤立系統&#xff0c;轉變為與自然、技術、社會深度耦合的復雜系統。為實現可持續發展和應對氣候變化&#xff0c;世界各…

【居家養老實訓室】:無障礙設施建設與評估

本文圍繞居家養老實訓室中的無障礙設施建設與評估展開討論。首先闡述了無障礙設施對于居家養老的重要性&#xff0c;接著詳細介紹了常見的居家養老無障礙設施類型&#xff0c;包括出入口、通道、臥室、衛生間等區域的設施。然后重點探討了無障礙設施的評估方法和標準&#xff0…

【C++航海王:追尋羅杰的編程之路】關聯式容器的底層結構——AVL樹

目錄 1 -> 底層結構 2 -> AVL樹 2.1 -> AVL樹的概念 2.2 -> AVL樹節點的定義 2.3 -> AVL樹的插入 2.4 -> AVL樹的旋轉 2.5 -> AVL樹的驗證 2.6 -> AVL樹的性能 1 -> 底層結構 在上文中對對map/multimap/set/multiset進行了簡單的介紹&…

《簡歷寶典》02 - 如果你是HR,你會優先打開哪份簡歷?

現在的求職環境不必多說&#xff0c;其實我們大家都還是很清楚的。所以&#xff0c;在這個環境下&#xff0c;寫一份優秀的簡歷&#xff0c;目的與作用也不必多說。那么&#xff0c;這一小節呢&#xff0c;我們先從簡歷這份文檔的文檔名開始說起。 目錄 1 你覺得HR們刷簡歷的時…

【深度學習】圖形模型基礎(5):線性回歸模型第二部分:單變量線性回歸模型

1.引言 在統計學與機器學習的廣闊領域中&#xff0c;線性回歸作為一種基礎而強大的預測技術&#xff0c;其核心在于通過輸入變量&#xff08;或稱預測器、自變量&#xff09;來估計輸出變量&#xff08;響應變量、因變量&#xff09;的連續值。本章聚焦于線性回歸的一個基本但…

Spring-@Component和@Configuration的區別

前言 在Spring框架中&#xff0c;Configuration和Component注解都是用于組件掃描和管理Bean的生命周期&#xff0c;但它們有著不同的用途和應用場景 Component 注解 Component是一個通用的 stereotype 注解&#xff0c;表明一個Java類為Spring框架中的一個Bean組件。Spring會自…

【C++】相機標定源碼筆記- 立體視覺相機的校準和圖像矯正類

類主要用于雙目相機的標定和矯正。它包含了讀取和保存相機模型、計算標定參數以及矯正圖像的功能。通過這些功能&#xff0c;可以實現雙目相機的標定和矯正&#xff0c;從而提高雙目相機的精度和穩定性。 公有函數&#xff1a; 構造函數、帶參構造函數、析構函數、讀取雙目相機…

摩斯邀您參加“WAIC 2024世界人工智能大會”

2024世界人工智能大會暨人工智能全球治理高級別會議&#xff08;簡稱“WAIC 2024”&#xff09;將于7月在上海世博中心、世博展覽館舉行&#xff0c;論壇時間為7月4日-6日&#xff0c;展覽時間為7月5日-7日。大會展覽面積超5.2萬平方米&#xff0c;重點圍繞核心技術、智能終端、…

STM32要學到什么程度才算合格?

在開始前剛好我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“888”之后私信回復“888”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01; STM32 這玩意兒要學到啥…

今天聊聊AI

AI是在幫助開發者還是取代他們&#xff1f; 在軟件開發領域&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;正在改變開發者的工作方式。無論是代碼生成、錯誤檢測還是自動化測試&#xff0c;AI工具正在成為開發者的得力助手。然而&#xff0c;這也引發了對開發者職業…

vscode 前行復制到下一行

目錄 這個技巧也比較多 選擇 python解釋器 F1 Ctrl Shift P 跳轉上一次編輯 下一次編輯 Ctrl d 會把當前行復制到下一行 步驟1&#xff1a;打開鍵綁定設置 使用VS Code設置換行 這個技巧也比較多 VS Code技巧匯總_vs code反縮進-CSDN博客 選擇 python解釋器 F1 Ctrl Shi…