1. 初學servlet 有段別人寫的代碼看不懂 求大神講解 萬分感謝
service方法和adminMana方法相當於doget和dopost方法,init方法只是初始化,可以不要
2. servlet jsp tomcat java源代碼 structs疑惑 還有容器,框架的通俗解釋
1、servlet是java程序,但是比較特殊,和普通的java程序不同,無法單獨執行,通過配置,可以在tomcat中運行,可以對用戶提交的數據進行處理和反饋。他的運行也就是tomcat調用它。
2、jsp,jsp是後來人們發現,總是寫servlet比較麻煩,因為servlet每次運行前都要編譯和配置,所以人們就開發出了jsp,jsp直接在HTML代碼內部寫代碼,這樣比較直觀,而且不用編譯,寫好以後放到tomcat裡面,tomcat會把它先轉化為servlet,再編譯配置,不過這些都是自動的,所以很方便。
3、struts ,人們用servlet和jsp寫程序,寫多了發現,這些網頁程序的處理流程都差不多:接到請求,根據請求從資料庫或者別的地方獲得數據,然後處理返回給用戶。於是就有人想,如果我們返回給用戶的頁面和獲得數據處理數據的部分分開,這樣豈不更好:如果以後我要修改頁面,直接該頁面就行了,不用關心代碼。多好?!所以就有了struts。
4、tomcat,以上那些東西怎麼運行呢?在tomcat裡面,其實tomcat的核心是servlet,jsp最後也是轉化為servlet,struts更是servlet + 標記庫 + javabean。所以,一般稱tomcat為servlet容器。
3. 用eclipse同步項目後,如何查看jsp編譯後的servlet源碼
還是在那個文件夾裡面吧,你配過tomcat路徑,eclipse發布文件時,會按照你所配置的tomcat路徑自動將文件上傳到伺服器tomcat,只不過原來的手動操作改成現在的自動的了。在瀏覽器打開網頁時,都是需要通過tomcat的,否則就是靜態網頁
4. Eclipse中編寫servlet代碼時,response顯示無法解析,新手求大神解答
你上面參數叫resp,不是response,你用resp來寫就好了
5. java servlet怎麼學
首先我們要了解Servlet是什麼,下面就詳細講解下Servlet特性和功能
一、Servlet是什麼
Servlet是一個類,是一個用Java語言編寫的、實現Servlet介面的類,一個與訪問協議和平台無關的,運行在Servlet容器中的Java程序。
Servlet沒有main方法,不能獨立運行;它只有實例化、初始化、運行、銷毀方法,被編譯成與平台無關的位元組碼文件後,需要載入到Servlet容器中才能執行,並且由Servlet容器管理Servlet的整個生命周期,所以,也常常稱Servlet是Servlet容器上運行的伺服器小程序。
Servlet推出初期,主要是作為支持HTTP協議的WEB伺服器上的一種動態網頁技術;隨著Servlet技術的不斷發展,Servlet可以作為支持任何協議的、實現Java API的伺服器上的服務程序。
Servlet運行在伺服器上,它可以接受來自客戶端的請求,並將處理結果返回給客戶端,於是,在許多應用中,Servlet主要用於實現動態網頁,亦或作為前端頁面與後台資料庫或者後台伺服器程序之間的中間件。
二、Servlet容器
Servlet容器作為支撐Servlet運行的平台,是一個非常重要的部件。也可以把Servlet容器看成是一個裝載著許多Servlet對象的容器,Servlet容器負責管理這些Servlet對象。
Servlet容器運行在JVM(Java虛擬機)之上,管理Servlet的實例化、初始化、實例對象的運行和銷毀,並提供最基礎的運行支撐,例如:Servlet容器負責接收請求、轉發請求、發送響應、管理會話狀態、實現數據共享等等。
Servlet容器至少支持通過HTTP協議訪問Servlet,也可以支持其他協議,例如:HTTPS、FTP、POP、SMTP等。
訪問Servlet容器中Servlet的過程如下:
(1)客戶發送訪問請求至Servlet容器
(2)Servlet容器接收請求,解析,然後將請求發送給相應的Servlet處理
(3)Servlet執行,將處理結果返回給Servlet容器
(4)Servlet容器接收處理結果,將處理結果返回給客戶
從以上訪問Servlet的過程,可以看出,Servlet容器的作用如下:
(1)接收請求:當客戶請求來到時,Servlet容器負責接收請求
(2)管理與調用Servlet:Servlet容器管理Servlet的載入、實例化、初始化、調用與垃圾回收,根據請求的Servlet地址,調用要訪問的Servlet
(3)返回響應結果:將Servlet的執行結果返回給客戶
Servlet運行在Servlet容器中,容器為Servlet提供運行時的平台支撐,於是,在Servlet中,只需要專注於業務邏輯功能實現,而無需考慮網路通訊、垃圾回收等功能,這些基本功能由Servlet容器提供。
Servlet容器主要提供了如下功能:
(1)基本通信支持:Servlet容器提供了與WEB伺服器之間的通信方法,使Servlet可以與WEB伺服器輕松對話,並藉助WEB伺服器與客戶端瀏覽器之間的通信機制,使Servlet容器無需自己建立Socket服務、監聽通信埠、創建數據流對象等;Servlet容器定義了與WEB伺服器之間的通信協議,所以,在Servlet中,無需考慮WEB伺服器(例如:Tomcat)和自己的功能代碼之間的API介面,只需要考慮如何在Servlet中實現業務邏輯功能(例如:處理一個訂單)。
(2)管理Servlet生命周期:Servlet容器管理著Servlet的整個生命周期,負責查找、載入、實例化、初始化、調用Servlet方法,以及銷毀,有了Servlet容器,就不需要考慮Servlet資源的管理。
(3)支持多線程:Servlet容器會自動為它所接收的每一個客戶請求創建一個新的Java線程,以處理該請求;對於每一個客戶請求,Servlet服務方法執行結束,則Servlet容器就會結束立即這個線程。
(4)聲明方式實現安全:按照Servlet容器要求,使用web.xml部署描述文件或註解來配置和修改安全性,而不必將其硬編碼寫到Servlet類代碼中。
(5)支持JSP動態頁面:Servlet容器負責將JSP頁面翻譯成Java Servlet代碼,按Servlet來管理JSP頁面的運行。
根據Servlet應用模式,Servlet最常用的模式是通過Servlet容器運行在WEB伺服器中,以執行請求和響應,請求與響應的典型範例是用動態網頁技術實現動態網頁,或者作為前端頁面與後台資料庫/後台伺服器程序之間的中間件,於是,Servlet容器需要與WEB伺服器或應用伺服器結合,才能為WEB應用程序的訪問提供服務。
Servlet容器可以在WEB伺服器內部實現,也可以作為WEB伺服器的附加構件提供,還可以實現在有WEB使能的應用伺服器上,為Servlet的訪問提供運行支撐。
WEB伺服器啟動時,Servlet容器也會隨之啟動。
關於WEB方面更詳細的講解可以看下這個視頻教程網頁鏈接
希望我的回答能幫到你
6. servlet到底是介面還是類
你好,先解答問題,servlet是一個介面,而httpservlet是這個介面的一個實現類。
再說這個源碼,看圖中httpservlet是繼承了genericservlet,看起來貌似是和servlet沒有關系,但是請你再進去到genericservlet的源碼中查看,你會發現這個類實現了servlet介面。
繼承和實現並不是只有直接一層的繼承或實現。是會有間接的繼承實現的。並且這樣的情況是很常見的。
如果有幫助到你,請點擊採納。
我主要解答的是軟體開發新人遇到的一些問題,有興趣可以關注我。
7. 簡述Servlet的運行原理與生命周期
Servlet生命周期分為三個階段:
1,初始化階段 :調用init()方法
2,響應客戶請求階段:調用service()方法
3,終止階段:調用destroy()方法
Servlet初始化階段:
在下列時刻Servlet容器裝載Servlet:
1,Servlet容器啟動時自動裝載某些Servlet,實現它只需要在web.XML文件中的<Servlet></Servlet>之間添加如下代碼:
<loadon-startup>1</loadon-startup>
2,在Servlet容器啟動後,客戶首次向Servlet發送請求
3,Servlet類文件被更新後,重新裝載Servlet
Servlet被裝載後,Servlet容器創建一個Servlet實例並且調用Servlet的init()方法進行初始化。在Servlet的整個生命周期內,init()方法只被調用一次。
Servlet工作原理:
首先簡單解釋一下Servlet接收和響應客戶請求的過程,首先客戶發送一個請求,Servlet是調用service()方法對請求進行響應的,通過源代碼可見,service()方法中對請求的方式進行了匹配,選擇調用doGet,doPost等這些方法,然後再進入對應的方法中調用邏輯層的方法,實現對客戶的響應。在Servlet介面和GenericServlet中是沒有doGet,doPost等等這些方法的,HttpServlet中定義了這些方法,但是都是返回error信息,所以,我們每次定義一個Servlet的時候,都必須實現doGet或doPost等這些方法。
每一個自定義的Servlet都必須實現Servlet的介面,Servlet介面中定義了五個方法,其中比較重要的三個方法涉及到Servlet的生命周期,分別是上文提到的init(),service(),destroy()方法。GenericServlet是一個通用的,不特定於任何協議的Servlet,它實現了Servlet介面。而HttpServlet繼承於GenericServlet,因此HttpServlet也實現了Servlet介面。所以我們定義Servlet的時候只需要繼承HttpServlet即可。
Servlet介面和GenericServlet是不特定於任何協議的,而HttpServlet是特定於HTTP協議的類,所以HttpServlet中實現了service()方法,並將請求ServletRequest,ServletResponse強轉為HttpRequest和HttpResponse。
public void service(ServletRequest req,ServletResponse res)
throws ServletException,IOException
{
HttpRequest request;
HttpResponse response;
try
{
req = (HttpRequest)request;
res = (HttpResponse)response;
}
catch(ClassCastException e)
{
throw new ServletException("non-HTTP request response");
}
service(request,response);
}
代碼的最後調用了HTTPServlet自己的service(request,response)方法,然後根據請求去調用對應的doXXX方法,因為HttpServlet中的doXXX方法都是返回錯誤信息,
protected void doGet(HttpServletRequest res,HttpServletResponse resp)
throws ServletException,IOException
{
String protocol = req.getProtocol();
if(protocol.equals("1.1"))
{
resp.sendError(HttpServletResponse.SC.METHOD.NOT.ALLOWED,msg);
}
esle
{
resp.sendError(HttpServletResponse.SC_BAD_REQUEST,msg);
}
}
8. 如何看J2EE的源碼
sun的jdk中並沒有包含servlet源代碼,也就是你關聯了jdk中的src後還是不能夠查看servlet的源代碼的。servlet是在tomcat有實現的,所以我們只要下載tomcat的源碼就可以查看servlet的源碼了。
下面是步驟:
1. 進入tomcat官方的下載tomcat源碼,一般對應你的版本,例如我的版本是tomcat 6.X,那麼我現在tomcat 6.x的src包下載.
2. 進入官網下載自己配套的src源碼
3. 進入到你自己寫的servlet的程序代碼中
4. 按住crtl, 然後用滑鼠點擊servlet的類的方法,關聯下那個源代碼就可以了。那個源代碼就是你下的那個tomcat源碼
9. 如何修改Eclipse中的servlet源碼
進入apache-tomcat-9.0.0.M18-src.zip\apache-tomcat-9.0.0.M18-src\java\javax\servlet 這個路徑中,找到servlet.java的文件,修改後保存。
然後在eclipse中新建一個Servlet,ctrl+左鍵點擊Servlet,Attach Source對應文件即可。
10. servlet怎麼解析jquery通過serialize提交的表單
下面是伺服器端的jsp代碼:
與JQuery中其他方法一樣,serialize()方法也是作用於一個JQuery對象,它能夠將DOM元素內容序列化為字元串,用於ajax請求。通過使用serialize()方法,可以提交本頁面的所有域,代碼如下:
當單擊「提交」按鈕後,所有屬於form1的表單元素都能提交到後台,即使在表單中再增加欄位,腳本仍然能夠使用,並且不需要做其他多餘工作。
用字元串方式時,需要注意對字元編碼(中文問題),如果不希望編碼帶來麻煩,可以使用serialize()方法,它會自動編碼。
因為serialize()方法作用於JQuery對象,所以不光只有表單能使用它,其他選擇器選取的元素也都能使用它,如以下JQuery代碼:
$(":checkbox,:radio").serialize()
把復選框和單選框的值序列化為字元串形式,只會將選中的值序列化。
在JQuery中還有一個與serialize()類似的方法--serializeArray(),該方法不是返回字元串,而是將DOM元素序列化後,返回JSON格式的數據。JQuery代碼如下:
var fields = $(":checkbox,:radio").serializeArray()
console.log(fields); //用FireBug輸出
$.param()方法是serialize()方法的核心,用來對一個數組或對象按照key/value進行序列化。
比如將一個普通的對象序列化:
var obj = {a:1,b:2,c:3}
var k = $.param(obj)
alert(k); //輸出a=1&b=2&c=3