搜尋
首頁Javajava教程Java中myeclipse開發servlet的圖文教學
Java中myeclipse開發servlet的圖文教學Jul 26, 2017 pm 03:04 PM
javamyeclipseservlet

MyEclipse,是在eclipse基礎上加上自己的外掛程式開發而成的功能強大的企業級整合開發環境,主要用於Java、Java EE以及行動應用程式的開發。以下這篇文章主要介紹了myeclipse開發servlet的相關資料,需要的朋友可以參考下。

  在web.xml中可以對同一個Servlet配置多個對外存取路徑,並且如果在web.xml中配置的資訊伺服器會自動載入部署,而如果是在Servlet中進行程式碼的修改,則每次都要重新部署。

  首先,在使用MyEclipse建立Servlet後,會根據所建立的Servlet進行到web.xml檔案的映射,如下圖所示:

  

#經過這個映射之後,在web.xml檔中就自動產生了這個Servlet的設定資訊:

  

  當然,我們可以在web.xml檔中把這個Servlet繼續新增一條對外訪問路徑,使得這個Servlet可以從不同路徑進行訪問,現在我們在伺服器開啟的情況下,為這個Servlet添加一個新的對外訪問路徑好了:

  

紅框部分是新添加的,這時候伺服器在Console視窗會自動提示已經重新部署,是的,只要在web.xml中修改的都無需關閉伺服器就可以被伺服器重新更新載入部署:

  

那麼我們試試新的存取位址:

  

#可以訪問! !

  細節二:在web.xml中為Servlet配置對外存取路徑的可以使用「*」作為通配符,但是這種只能有兩種格式:

  一種格式是整個內容只能有「*.副檔名」# ,如*.html,而如果寫成這樣< ;url-pattern>abc/*.html就是錯的。尤其是/*.html也是錯的,不能有“/”,一定要注意。範例:

  

在瀏覽器可以在通配符位置隨便輸入:

  

#這樣造成了一種偽靜態的現象,我們以為是造訪一個靜態的頁面,其實卻是一個動態web資源。

  另一種格式是以正斜線「/」開頭,加上自訂路徑,以「/*」結尾,如/abc/*。這時候連副檔名都任意了。範例:

  

在瀏覽器的網址列內可以在萬用字元位置隨便輸入,副檔名都不需要:

  

  

  細節三:由細節二導出的多個Servlet資源的映射路徑如果使用了通配符,就可能發生衝突,那麼這時候伺服器將會以哪個Servlet資源作為回應呢?我們來看看下面的問題,就能明白了:

  

#  細節四: 在Servlet的整個生命週期內,Servlet的init()方法只會被呼叫一次。而對於Servlet的每次存取請求,Servlet都會呼叫service()方法一次。並且對於每次的請求訪問,Servlet都會建立一個新的HttpServletRequest請求物件和新的HttpServletResponse回應物件。當然在每次請求存取完成之後,這些請求物件和回應物件都會立刻被銷毀,等待下次請求再重新創建,這樣就能給伺服器減小壓力(非並發情況下)。

  細節五:之前談到的Servlet在伺服器部署後,都是只在第一次對該Servlet存取時才由伺服器建立Servlet的實例對象,而如果在web.xml中在某個標籤,則該Servlet會在伺服器啟動後就建立實例對象,並執行Servlet的初始化init()方法。 的內容為一個正整數值#。該值越小,代表在伺服器啟動後優先建立Servlet物件並執行初始化方法。

  細節六:如果某個Servlet的映射路徑僅僅為一個正斜線“/”,那麼這個Servlet就稱為當前web應用的預設Servlet。凡是在web.xml檔中找不到符合的標籤的URL,它們的存取請求都是交個預設Servlet來處理,也就是說預設Servlet用來處理所有其他Servlet都不處理的訪問請求。

  例如我現在建立兩個Servlet,其中一個有自訂的對外映射路徑,而另一個設定成了預設Servlet:

  

#要想存取SecondServlet就必須依照其對應的路徑在瀏覽器網址列中鍵入:

  

而對於預設Servlet,則是在web應用程式後隨便輸:

  

(如果不輸則會顯示的是已有的首頁index.jsp,為什麼呢,請看下面細節六)

  細節六(重要) :如果我們在自己開發的Servlet中沒有配置預設Servlet,而是直接存取我們web工程下的一個靜態web資源的話(如果有),那麼我們將能從瀏覽器中看到這個web資源,記住:請求任何web資源都是以某個Servlet來回應回傳資料的,那麼既然我們沒有設定預設Servlet的話,為什麼能訪問這個資源呢?換句話說,是哪個Servlet將我們需要的資源回應給我們看的?答案就是Tomcat伺服器的預設Servlet! ! ! Tomcat伺服器的預設Servlet在Tomcat的【conf】目錄下的web.xml檔案中設定了映射路徑:

  

  從Tomcat的web.xml檔案中可以看出,其預設Servlet在伺服器啟動就建立實例對象,並且是最早建立的,對外路徑已經設定了預設格式。而這個預設Servlet會管理每個自訂建立的Servlet工程,如果我們沒有在自己的web工程中建立預設Servlet,那麼當我們要存取自己web工程中的某個資源時,Tomcat的預設Servlet會幫我們將該資源封裝成回應對象傳回客戶端。

  例如,我在我的web工程下建立一個1.html頁面:

  

而我去瀏覽器造訪這個頁面:

   

  對於這個URL,Tomcat伺服器首先去配對我的Servlet是否有對應的映射路徑,如果沒有,並且如果我沒有在自己的web工程中設定預設Servlet,那麼Tomcat的預設Servlet就在我的web應用下搜尋HTTP請求的資源,找到並封裝成回應物件回傳給客戶端。如果Tomcat的預設Servlet找不著所需的資源,那它依然會回應客戶端,只是客戶端看到的是一些提示找不著該資源,如404提示。另外,根據這個過程,我們在開發自己的Servlet時,建議不要將自己的某個Servlet映射成預設Servlet為好。

  接下來,討論一個首頁的問題。除了我們存取web應用程式中某個特定資源(在瀏覽器位址上最後鍵入一個檔案名稱),還會是在鍵入web應用程式名稱之後就發送HTTP請求了,這時候我們看到的也是一個頁面,通常稱為“首頁”,而這個首頁,也是由預設Servlet來回應的。

  例如我使用MyEclipse建立一個web應用程式時就會預設幫我建立一個「index.jsp」檔案:

  

#而我在該web應用中沒有建立任何Servlet,或即使建立Servlet也對應到某個特定的對外URL上,那麼我在瀏覽器輸入主機位址+web應用程式名稱還是會看到這個index.jsp:

  

前面所說,這個頁面一定是由Tomcat伺服器的預設Servlet傳回給客戶端的,那麼Tomcat伺服器為什麼是傳回這個資源呢,而不是別的資源呢?答案還是在web.xml檔中,還記得之前《Tomcat詳細用法學習(三)》中定義的首頁設定嗎,對,就是這個方法,這個方法由預設Servlet來管理,我們再來回顧下在Tomcat的web .xml檔案中的標籤:

  

  如果瀏覽器的輸入位址只輸入了web應用名,那麼Tomcat的預設Servlet傳送這個web應用下的index.html文件,否則傳送index.htm文件,再否則傳送index.jsp,如果三個都沒有那麼只能回傳404了。

  如果我把這段程式碼註解掉或刪掉,再想直接存取web應用程式名稱就跟我把index.jsp檔案刪除一樣,Tomcat的預設Servlet找不到資源,回傳404提示(在MyEclipse中需要重新啟動伺服器):

  

#  

所以如果我們想為自己的web應用程式弄出個漂亮首頁,只需要在index .jsp中開發就行了,或另外建立一個index.html檔案開發,這個檔案會比index.jsp更優先被存取。

  細節七:因為我們的開發Servlet都要繼承Servlet介面的某個實作類,那麼我們在寫doGet方法或是doPost方法的時候很可能呼叫了某些會拋出例外的方法,那麼我們對這些異常只能捕獲處理,而不能拋出,這是因為子類別在覆蓋父類別的方法時,不能拋出比父類別更多的異常。

總結

#

以上是Java中myeclipse開發servlet的圖文教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
servlet生命周期分几个阶段servlet生命周期分几个阶段Feb 23, 2023 pm 01:46 PM

Servlet生命周期是指servlet从创建直到毁灭的整个过程,可分为3个阶段:1、初始化阶段,调用init()方法实现Servlet的初始化工作;2、运行阶段(处理请求),容器会为指定请求创建代表HTTP请求的ServletRequest对象和代表HTTP响应的ServletResponse对象,然后将它们作为参数传递给Servlet的service()方法;3、销毁阶段。

Java Servlet的应用场景有哪些?Java Servlet的应用场景有哪些?Apr 17, 2024 am 08:21 AM

JavaServlet可用于:1.动态内容生成;2.数据访问与处理;3.表单处理;4.文件上传;5.会话管理;6.过滤器。示例:创建一个FormSubmitServlet来处理表单提交,将name和email作为参数,并重定向到success.jsp。

什么是servlet什么是servletJan 28, 2023 am 09:51 AM

Servlet全称“Java Servlet”,中文意思为小服务程序或服务连接器,是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。Servlet具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

Java Servlet如何实现分布式会话管理?Java Servlet如何实现分布式会话管理?Apr 16, 2024 pm 02:48 PM

JavaServlet中实现分布式会话管理的方法有两种:1.会话复制:将会话数据复制到各个服务器。2.会话分布:使用集中式存储服务存储会话数据,由多个服务器访问。具体实现方式有:会话复制配置web.xml文件中的true;会话分布使用Redis:引入jedis库,编写Servlet使用Jedis存储和检索会话数据;使用SpringSession:引入spring-session依赖,注入SessionRepository,通过它操作会话数据。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Web开发的Java技术栈:了解Java EE、Servlet、JSP、Spring等常用于Web开发的技术Web开发的Java技术栈:了解Java EE、Servlet、JSP、Spring等常用于Web开发的技术Dec 26, 2023 pm 02:29 PM

JavaWeb开发技术栈:掌握JavaEE、Servlet、JSP、Spring等用于Web开发的技术随着互联网的迅速发展,在当今的软件开发领域,Web应用的开发已经成为一种非常重要的技术需求。而Java作为一种广泛应用的编程语言,其在Web开发领域也有着重要的地位。JavaWeb开发技术栈涉及多项技术,如JavaEE、Servlet、JSP、Spr

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Servlet中的HttpSession接口Servlet中的HttpSession接口Sep 02, 2023 am 10:05 AM

在JavaWeb开发领域,了解HttpSession接口是创建动态和响应式Web应用程序的关键。在本文中,我们将探讨HttpSession接口是什么、它是如何工作的以及为什么它在Servlet规范中起着至关重要的作用。什么是HttpSession接口?HttpSession接口的核心是JavaServletAPI的基本组件,它使Web开发人员能够跨多个HTTP请求跟踪用户的会话。当用户第一次访问Web应用程序时,会创建一个唯一的会话来表示他们的交互。此会话允许应用程序在请求之间维护状态并记住有关

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。