⑴ Web組件與Web容器有哪些,WEB組件的三種關聯
Web組件:有Jsp,Servlet等
Web容器:有tomcat ,jboss, resin, weblogic ,websphere, glassfish。可以理解為Web伺服器。
WEB應用程序如此強大的原因之一就是他們能彼此鏈接和聚合信息資源。WEB組件之間存在三種關聯關系:
l 請求轉發
l URL重定向
l 包含關系
存在以上關聯關系的Web組件可以是JSP或Servlet,對於Struts應用,則還包含Action,這些Web組件都可以訪問HttpServletRequest和HttpServletResponse對象,具有處理請求、生成響應結果的功能。
1. 請求轉發。
請求轉發允許把請求轉發給同一個應用程序中的其他Web組件。這種技術通常應用於Web應用中的Servlet流程式控制制器。
Servlet類使用 javax.servlet.RequestDispatcher.forward()方法來轉發。轉發目標將處理該請求並生成響應結果,或者將請求轉發到另一個組件,最初請求的ServletRequest,ServletResponse對象被傳遞給轉發目標組件,這使得目標組件可以訪問整個請求上下文。值得注意的是,只能把請求轉發給同一個web應用中的組件。下面是一個例子,當前的servlet組件要把請求轉發給一個JSP組件,如hello.jsp,可以在Servlet的service()方法中執行以下代碼:
RequestDispatcher rd = request.getRequestDispatcher(「hello.jsp」);
Rd.forward(request,response);
在jsp頁面中,可以使用<jsp:forward>標簽來轉發請求,例如:
<jsp:forward page=」hello.jsp」/>
對於請求轉發,轉發的源組件和目標組件共享request范圍內的共享數據。
2. 請求重定向
請求重定向類似於請求轉發,但也有一些重要的區別:
l Web組件可以將請求重定向到任一URL,而不僅僅是同一應用中的URL。
l 重定向的目標組件與源組件之間不共用同一個HttpServletRequest對象,因此不能共享request范圍內的共享數據。
例如當前應用的Servlet組件把請求轉發到URL:http://jakarta.apache.org/struts,可以在Servlet的service()方法中執行以下代碼:
Response.sendRedirect(「http://jakarta.apache.org/struts」);
HttpServletResponse的sendRedirect()方法向瀏覽器返回包含重定向的信息,瀏覽器根據這一信息迅速發出一個新的HTTP請求,請求訪問重定向目標組件。
3. 包含
Servlet類使用javax.servlet.RequestDispatcher.include()方法包含其他的Web組件。例如當前的Servlet組件包含三個JSP文件:header.jsp/main.jsp/footer.jsp,則可以在servlet的service()方法中執行以下代碼:
RequestDispatcher rd;
Rd = req.getRequestDispatcher(「/header.jsp」);
Rd.include(req,res);
Rd = req.getRequestDispatcher(「/main.jsp」);
Rd.include(req,res);
Rd = req.getRequestDispatcher(「/footer.jsp」);
Rd.include(req,res);
在JSP文件中,可以通過〈include〉指令來包含其他的web資源,例如:
<%@ include file=」header.jsp」%>
<%@ include file=「main.jsp」%>
<%@ include file=」footer.jsp」%>
⑵ j2ee開發中的「java容器」和「web容器」有什麼區別
web容器是一個Java 所編寫的程序,原先必須自行編寫程序以管理對象關系,現在容器都會自動幫您作好
容器(Container) 容器是一個Java 所編寫的程序,原先必須自行編寫程序以管理對象關系,現在容器都會自動幫您作好。 常用容器 jBoss, WebSphere,WebLogic,Resin,Tomcat。
JAVA內部的容器類
Java容器類包含List、ArrayList、Vector及map、HashTable、HashMap 。
ArrayList和HashMap是非同步的,Vector和HashTable是同步的,所以Vector和HashTable是線程安全的,而 ArrayList和HashMap並不是線程安全的。因為同步需要花費機器時間,所以Vector和HashTable的執行效率要低於 ArrayList和HashMap。、
Vector是同步的。這個類中的一些方法保證了Vector中的對象是線程安全的。而ArrayList則是非同步的,因此ArrayList中的對象並不是線程安全的。因為同步的要求會影響執行的效率,所以如果你不需要線程安全的集合那麼使用ArrayList是一個很好的選擇,這樣可以避免由於同步帶來的不必要的性能開銷。
⑶ web容器與web伺服器有什麼區別
拿servlet舉例來說,當請求到來時,實例化servlet,或者至少要建一個新的線程來處理這個請求,調用servlet的doPost或者doGet方法,管理servlet生死以及資源,Web容器要做的就是這些工作。如果沒有容器,這些工作就需要自己編碼實現,增加了不少工作量。
Tomcat作為一個輕量級的伺服器,就包含了servlet容器。當然,一個Web伺服器可以包含多個容器,簡單來說Web伺服器中一般包含有Web容器。
⑷ 什麼是web容器,有什麼作用
web容器 就是在網頁上可以運行的容器了
容器就是可以在上頁放控制項的控制項了
窗體,選項卡,組都可以放上控制項
⑸ web容器 tomcat等到底有什麼作用啊 在ssh開發中 必要要有一個web容器作為運行的環境嗎
tomcat 主要是一個servlet容器,當然也是一個小型的web伺服器。開發web程序,必然要用到web伺服器(基於http協議)。所以,,你要開發jsp 或servlet的話,用tomcat 就不必額外安裝web伺服器了,當然你要用專業的web伺服器(如apache)搭配上tomcat(只作為servlet容器),性能會更好。
⑹ java問題:什麼是web容器列舉幾個常見的web容器
Web Container也是一個組件,是J2EE本身提供的。它封裝了一般Web組件與Web Server打交道的一些底層的細節。就是說,你自己開發的組件並不是直接調用WebServer的功能,而是通過Web Container間接與WebServer對話,這樣你就不許要知道許多關於WebServer的底層技術。
⑺ 什麼叫web容器以及作用
tomcat 是SERVLET的容器。
web 容器就是實現了JAVA的那些介面:javax.servlet。
而且JSP也是SERVLET的
web 容器啟動後一直運行,監聽所有提交到他所監控的那個埠的請求,並對此做出反映。
個人理解, 之前有看過人家別人寫的web容器的例子, 不過忘記了,如果你寫深入理解, 自己搜索把。
⑻ web容器中有哪些重要的作用域,並說出自己的理解
web容器的四大作用域:pageContext, request, session、application四個作用域中
1、如果把變數放到pageContext里,就說明它的作用域是page,它的有效范圍只在當前jsp頁面里。
從把變數放到pageContext開始,到jsp頁面結束,你都可以使用這個變數。
2、如果把變數放到request里,就說明它的作用域是request,它的有效范圍是當前請求周期。所謂請求周期,就是指從http請求發起,到伺服器處理結束,返回響應的整個過程。在這個過
程中可能使用forward的方式跳轉帆鉛逗了多個jsp頁面,在這些頁面里你都可以使用這個變數。
3、如果把變數放到session里,就說明它的作用域是session,它的有效范圍是當前會話。所謂當前會話,就是指從用戶打開瀏覽器激山開始,到用戶關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要用戶不關瀏覽器,伺服器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變數,
4、如果把變數放到application里,就說明它的作用域是application,它的有效范圍是整個應用。整個應用是指從應用啟動,到應用結束。我們沒有說「從伺服器啟動,到伺服器關閉」是因為一個伺服器可能部署多個應用,當然你關閉了伺服器,就會把上面所有的應用都關閉了。application作用域里的變數,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。與上述三個不同的是,application里的變數可以被所有用戶共用。如果用戶甲的操作修改了application中的變數,用戶乙訪問時得態賣到的是修改後的值。這在其他scope中都是不會發生的,page,
request, session都是完全隔離的,無論如何修改都不會影響其他
⑼ web容器有幾種作用域如何防止sql注入
所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到後台資料庫引擎執行的能力,它可以通過在Web表螞賀高單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊.
防護
歸納一下,主要有以下幾點:
1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和
雙"-"進行轉換等。
2.永遠悶尺不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取。
3.永遠不要使用管理員許可權的資料庫連接,為每個應用使用單獨的許可權有限的資料庫連接。
4.不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。
5.應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包拍肆裝
6.sql注入的檢測方法一般採取輔助軟體或網站平台來檢測,軟體一般採用sql注入檢測工具jsky,網站平台就有億思網站安全平台檢測工具。MDCSOFT SCAN等。採用MDCSOFT-IPS可以有效的防禦SQL注入,XSS攻擊等。
⑽ 什麼是web容器
web容器是一種服務程序,在伺服器一個埠就有一個提供相應服務的程序,而這個程序就是處理從客戶端發出的請求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。一個伺服器可以多個容器。