servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識

Servlet的學習路線

1、 創建Servlet

2、 Servlet的相關配置

3、 Servlet的生命周期

4、 HttpServletRequest接口

5、 HttpServletResponse接口

6、 HttpSession接口

7、 Filter、Listener接口

Servlet的相關配置

1、 創建Servlet extends HttpServlet

2、 配置Serlvet

第1種配置方式: web.xml,web.xml不僅能配置Servlet信息,還可以配置歡迎頁面,錯誤頁面,其他的配置。

ca5a3d461ec15dbadb9cdc1e27601a42.png
d57c683a9644b4b870490bc69d81d6ac.png
f018c3ea649ca79e1c60f20bf458724f.png

第2種配置方式: 注解(Annotation)

@WebServlet( name = "", urlPatterns = {} )

urlPattern的配置規則:

1. 精確路徑匹配

[例] /user/register.do

2. 模糊路徑匹配

[例] /user/*

3. 擴展名匹配

[例] *.do

4. 默認匹配

[例] /

問: 如果一個Request URL能匹配多個urlPattern, 執行哪個對應的Servlet?

以優先級為依據: 精確路徑 > 模糊路徑 > 擴展名路徑 > 默認路徑

Servlet類型層次結構

3597466c95714d238e7cb4d44c0cf1df.png
2d7ad1c60a0a1222c680795319c80fc8.png

Servlet對象的常見方法剖析

String getServletName(); 獲取Servlet對象的名稱

ServletContext getServletContext(); //獲取Servlet對象的容器(作用于整個項目)Servlet容器,它的生命周期最長,隨著tomcat的啟動而產生,關閉而銷毀、更新銷毀。

setAttribute(key,value); 向容器中存儲數據

getAttribute(key); 從容器獲取數據

String getInitParameter(String var1); //獲取(ServletContenxt容器,全局參數也可以獲取)的初始參數值

Enumeration getInitParameterNames(); //獲取初始參數的名稱

ServletConfig getServletConfig(); //獲取配置文件的信息還可以調用父容器

使用HttpServletRequest獲取請求信息

getParameter( String parameterName ) : String

getParameterValues( String parameterName ) : String[]

注意: 參數parameterName往往是表單元素的name屬性.

中文亂碼解決方案:

1. 通過QueryString傳遞中文數據時

修改tomcat/conf/server.xml ->

或在程序中直接對String進行轉碼操作

userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");

2. 通過請求體傳遞中文數據時

request.setCharacterEncoding("UTF-8");

Servlet生命周期:

自tomcat啟動以來, 首次請求某Servlet時:

1. 容器調用構造器實例化該Servlet

2. 調用init()初始化該Servlet

3. 調用該Servlet的service()處理請求

3.1 如果該請求的Method是GET: 調用doGet()

3.2 如果該請求的Method是POST: 調用doPost()

第N(N>=2)次請求該Servlet時,執行上面的第3步

tomcat stop或update時:

4. 調用該Servlet的destroy()銷毀實例

最后,Servlet 是由 JVM 的垃圾回收器進行垃圾回收。

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

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

相關文章

蓋茨比喬布斯_如何使用蓋茨比創建您的博客并通過手機進行處理

蓋茨比喬布斯by Hu Chen胡Hu 如何使用蓋茨比創建您的博客并通過手機進行處理 (How to use Gatsby to create your blog and work on it from your phone) Recently, I decided to migrate my blog to Gatsby. Gatsby is a blazing fast static site generator based on React.…

python之collections之有序字典(OrderedDict)

一、定義OrderedDict是對字典的補充,它記住了字典元素的添加順序。eg: 二、OrderedDict相關方法def clear(self): # real signature unknown; restored from __doc__ """     od.clear() -> None. Remove all items from od. …

進階4:hive 安裝

安裝包: apache-hive-2.1.1-bin.tar.gz 安裝步驟: 1.上傳 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解壓文件: tar zxvf apache-hive-2.1.1-bin.tar.gz 3.安裝mysql (僅支持mysql 5.7以下版本,不支持5.7或更高版本&#xff0c…

macbookpro接口叫什么_【科普】什么是雷電接口?蘋果電腦MACBOOK PRO有嗎?

剛接觸筆記本的朋友不知道USB-C口是什么,也不知道雷電接口(Thunderbolt)是什么,只知道MACBOOK PRO有雷電3接口。簡單來說 雷電接口是USB TYPE-C的替代模式,在此了解【什么是USB TYPE-C】 什么是雷電接口? 借用百度百科的表達 2011年2月24日,英特爾發布了長期以來廣為宣傳的…

GoldenGate 12.3微服務架構與傳統架構的區別

隨著Oracle GoldenGate 12c(12.3.0.1.0)的發布,引入了可用于復制業務數據的新架構。 多年來,這種架構有著不同的稱謂,Oracle終于在最后GA發布的版本中,以“Microservices”的名義確認新架構的名稱。Microse…

leetcode劍指 Offer 63. 股票的最大利潤(動態規劃)

假設把某股票的價格按照時間先后順序存儲在數組中,請問買賣該股票一次可能獲得的最大利潤是多少? 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 5 解釋: 在第 2 天(股票價格 1)的時候買入,在第 5 天(股票價格 6&…

usb serial port 驅動_tty初探 — uart驅動框架分析

寫在前面:我們沒有講UART驅動,不過我們認為,只要系統學習了第2期,應該具備分析UART驅動的能力,小編做答疑幾年以來,陸陸續續有不少人問到UART驅動怎么寫,所以今天就分享一篇深度長文(17000字&am…

databricks_如何開始使用Databricks

databricksby Shubhi Asthana通過Shubhi Asthana 如何開始使用Databricks (How to get started with Databricks) When I started learning Spark with Pyspark, I came across the Databricks platform and explored it. This platform made it easy to setup an environment…

簡述isodata算法的原理_算法常見面試題匯總(一):概率論與數理統計部分

初級或中級算法崗面試題主要有四類:數理統計基礎、機器學習模型原理、編程能力、項目經驗。項目經驗因人而異,所以僅總結前三個方面的基礎知識,分享給朋友。(高級或資深算法崗面試內容不在本文范圍內)1.大數定律弱大數…

shell中各種括號的作用()、(())、[]、[[]]、{}

轉自:http://blog.csdn.net/taiyang1987912/article/details/39551385 一、小括號,圓括號() 1、單小括號 () ①命令組。括號中的命令將會新開一個子shell順序執行,所以括號中的變量不能夠被腳本余下的部分使用。括號中…

SQLite 數據類型

SQLite 數據類型 參考: SQLite 數據類型 | 菜鳥教程http://www.runoob.com/sqlite/sqlite-data-types.html SQLite 數據類型是一個用來指定任何對象的數據類型的屬性。SQLite 中的每一列,每個變量和表達式都有相關的數據類型。 您可以在創建表的同時使用…

leetcode1143. 最長公共子序列(動態規劃)

給定兩個字符串 text1 和 text2,返回這兩個字符串的最長公共子序列的長度。 一個字符串的 子序列 是指這樣一個新的字符串:它是由原字符串在不改變字符的相對順序的情況下刪除某些字符(也可以不刪除任何字符)后組成的新字符串。 …

php開發支付寶支付密碼忘記了怎么辦_密碼箱忘記密碼怎么辦?密碼箱解鎖方法大全...

密碼箱忘記密碼經常發生,有時候急著趕車趕飛機必須用的證件在密碼行李箱,怎么辦?破壞?當你忘記密碼的時候千萬不要著急,不要試著用暴力破壞密碼鎖。操作方法一此類型的密碼箱的開鎖方法。把箱子放在光線好的地方放平&a…

Python網絡編程之TCP服務器客戶端(二)

傳輸控制協議(官方術語為TCP/IP協議)是互聯網的重要組成部分。TCP的第一個版本是在1974年定義的,它建立在網際層協議(IP)提供的數據包傳輸技術之上。TCP使得應用程序可以使用連續的數據流進行相互通信,除非出現網絡原因導致連接中斷等意外情況&#xff0…

請寫出至少5個html塊元素標簽_34道常見的HTML+CSS面試題(附答案)

公眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java(100G) Python(80G) 大數據 區塊鏈 測試 PPT JS(40g300教程) HTML 簡歷 領取相關學習資料!一、HTML1、標簽上title屬性與alt屬性的區別是什么?alt屬性是為了給那些不能看到你文檔中圖像的瀏覽…

leetcode劍指 Offer 42. 連續子數組的最大和(動態規劃)

輸入一個整型數組,數組里有正數也有負數。數組中的一個或連續多個整數組成一個子數組。求所有子數組的和的最大值。 要求時間復雜度為O(n)。 示例1: 輸入: nums [-2,1,-3,4,-1,2,1,-5,4] 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6。 常數…

nginx mozilla_我發現Mozilla的私人瀏覽模式存在重大缺陷。

nginx mozillaby Konark Modi通過Konark Modi 我發現Mozilla的私人瀏覽模式存在重大缺陷。 (I found a major flaw in Mozilla’s private browsing mode.) If left unfixed this flaw could have wreaked havoc but Mozilla’s prompt fixes saved the day.如果不加以解決&am…

4月8日隨筆

周一滿課,晚上唱紅歌,寫概率論。。 轉載于:https://www.cnblogs.com/wxy2000/p/10686058.html

linux開機出現一下錯誤Give root password for maintenance (or type Control-D to continue):

linux開機出現一下錯誤Give root password for maintenance (or type Control-D to continue):第一種錯誤的情況:由于錯誤的編輯/etc/fstab文件 而引起的不能正常進入系統。假如你將某一個分區或者磁盤最后一個參數設置為1或2時,系統默認會在開機過程中檢…

[閱讀筆記]Zhang Y. 3D Information Extraction Based on GPU.2010.

1.立體視覺基礎 深度定義為物體間的距離 視差定義為同一點在左圖(reference image) 和右圖( target image) 中的x坐標差。 根據左圖中每個點的視差得到的灰度圖稱為視差圖。 那么根據三角幾何關系可以由視差(xR - xT ) 計算出深度.bcamera基線距離,f焦距。 離相機越…