① web.xml里設定的 <context-param> 是所有context都能看到的吧每個context自己的param能設定嗎
每個Servlet都可以看到,而且可以自己定義條項,連名稱帶值都可以定義。
1.啟動一個WEB項目的時候,容器(如:Tomcat)會去讀它的配置文件web.xml.讀兩個節點: <listener></listener> 和 <context-param></context-param>
2.緊接著,容器創建一個ServletContext(上下文),這個WEB項目所有部分都將共享這個上下文.
3.容器將<context-param></context-param>轉化為鍵值對,並交給ServletContext.
4.容器創建<listener></listener>中的類實例,即創建監聽.
5.在監聽中會有contextInitialized(ServletContextEvent args)初始化方法,在這個方法中獲得
ServletContext = ServletContextEvent.getServletContext();
context-param的值 = ServletContext.getInitParameter("context-param的鍵");
6.得到這個context-param的值之後,你就可以做一些操作了.注意,這個時候你的WEB項目還沒有完全啟動完成.這個動作會比所有的Servlet都要早.
換句話說,這個時候,你對<context-param>中的鍵值做的操作,將在你的WEB項目完全啟動之前被執行.
7.舉例.你可能想在項目啟動之前就打開資料庫.
那麼這里就可以在<context-param>中設置資料庫的連接方式,在監聽類中初始化資料庫的連接.
8.這個監聽是自己寫的一個類,除了初始化方法,它還有銷毀方法.用於關閉應用前釋放資源.比如說資料庫連接的關閉.
9.... 以上資料來自<<Head First Servlet&JSP>>
② JavaWeb中,上下文的概念是什麼
作用域的問題。就是你裡面的操作在某個范圍內有效。
③ webservice介面的參數應該如何定義
publicstaticStringexcute(Stringurl,StringmethodName,String[]args)throwsException{
logger.info("WebServiceClientPARAMis[url:"+url+",methodName"+methodName+",Args"+Arrays.asList(args)+"]");
if(url.lastIndexOf("?WSDL")==-1){
url+="?WSDL";
}
try{
Clientclient=newClient(newURL(url));
Object[]results=client.invoke(methodName,args);
if(results.length>0){
return(String)results[0];
}else{
return"";
}
}catch(Exceptione){
e.printStackTrace();
logger.error("遠程介面調用異常",e);
thrownewException("WEBSERVICE介面調用異常,請聯系管理");
}
}
④ web應用程序的上下文路徑指的是什麼路徑舉出web配置例子,謝謝
1.在%CATALINA_HOME%\conf\context.xml這個文件中,編輯Context元素屬性 例: <Context path="/MyPro" docBase="F:\MyProject\MyPro" reloadable="true"> </Context> path屬性代表web應用程序的上下文根路徑 docBase屬性指定了web應用程序的文檔基目錄 reloadable屬性,如果指定為true,Tomcat伺服器在運行時,會監視WEB-INF/classes和WEB-INF/lib目錄下的類的改變,如果發現有類被更新,Tomcat伺服器將自動重新載入該web應用程序。 2..%CATALINA_HOME%\conf\[enginename]\[hostname]xxx.xml,enginename是在server.xml文件中設置的<Engine>元素的name屬性的值,[hostname]是在server.xml文件中設置的<Host>元素的name屬性的值 這個xxx.xml文件的文件名「xxx」被作為web應用程序的上下文根路徑,而不管你在xxx.xml文件中的<Context>元素的path屬性是什麼
⑤ 解釋下關於WebApplicationContextUtils
Spring 包中的一個公用類,一般用來獲取,web上下文的信息
ctx = WebApplicationContextUtils.(ServletActionContext.getServletContext());
得到web應用的上下文信息,填入的參數,是由struts2,所提供的當前servlet上下文的信息。
⑥ JSP中站點中的WEB-INF下的web.xml文件有什麼用呢一般寫什麼內容的
jsp站點中web-inf下的web.xml是配置伺服器啟動時載入的一些參數和初始化servlet的信息。
通常有以下配置信息:
1、命名與定製URL
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
url-pattern的意思是所有的.do文件都會經過TestServlet處理。
2、定製初始化參數
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
<init-param>
<param-name>userName</param-name>
<param-value>Tommy</param-value>
</init-param>
<init-param>
<param-name>E-mail</param-name>
<param-value>[email protected]</param-value>
</init-param>
</servlet>
經過上面的配置,在servlet中能夠調用getServletConfig().getInitParameter("param1")獲得參數名對應的值。
//上下文參數:聲明應用范圍內的初始化參數。
<context-param>
<param-name>ContextParameter</para-name>
<param-value>test</param-value>
<description>It is a test parameter.</description>
</context-param>
//在servlet裡面可以通過getServletContext().getInitParameter("context/param")
3、得到指定錯誤處理頁面,可以通過「異常類型」或「錯誤碼」來指定錯誤處理頁面。
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception<exception-type>
<location>/exception.jsp<location>
</error-page>
<error-page>
<exception-type>java.lang.NullException</exception-type>
<location>/error.jsp</location>
</error-page>
4、設置過濾器:比如設置一個編碼過濾器,過濾所有資源
<filter>
<filter-name>XXXCharaSetFilter</filter-name>
<filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XXXCharaSetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、設置監聽器
web.xml中的<listener></listener>有什麼用? 沒別的用處!就是配置監聽類的~,它能捕捉到伺服器的啟動和停止! 在啟動和停止觸發裡面的方法做相應的操作! 它必須在web.xml 中配置才能使用! web.xml 中listener元素不是只能有一個,有多個時按順序執行。
⑦ 如何修改 webservice裡面的參數
在應用程序中添加配置文件(如Winform的一般是app.config,webform的一般是web.config),在<appSettings>目錄下添加一個配置WebService引用地址的節點,如:<add key="webServiceAddr" value="http://192.168.1.105:800/TestWebService.asmx?wsdl"/>
.在應用程序中應用private void button1_Click(object sender, EventArgs e){string result = string.Empty;string serviceAddr = string.Empty;try{serviceAddr = System.Configuration.ConfigurationManager.AppSettings["webServiceAddr"].ToString();//此處調用的是我們自己定義的構造函數,參數為WebService引用的地址ServiceCenter.TestWebService webService = new WebServiceApp.ServiceCenter.TestWebService(serviceAddr);result = webService.Test();}catch (Exception ex){result = ex.Message;}MessageBox.Show(serviceAddr + "++++" + result);}
在Winform應用程序中,app.config等應用程序配置文件在生成的時候自動生成到了bin目錄下面的應用程序名.exe.config文件,修改裡面的webServiceAddr節點即可。需要注意的一點就是,如果生成的時候把app.config文件也生成到了bin目錄下,此時修改app.config裡面的配置是無效,還必須得修改(應用程序名.exe.config)這個文件。如果是把webservice引用地址放在自定義的的xml文件中,則生成到bin目錄下,響應bin目錄下的xml文件即可。
4
//Web服務對象
WebReference.Service1SoapClient objService = new WebReference.Service1SoapClient("Service1Soap","你要修改的URL例如:http://www.xxxx/webservices.asmx");
我們只要動態配置一下URL就行了,存儲在資料庫、XML或者。別的地方都是可以的。
⑧ 當web應用程序被關閉時,servlet會調用servlet context的哪個方法
ServletContext是上下文參數,容器關閉時怎麼會調用上下文參數呢?
有個ServletContextLisenner。裡面有個contextDestroyed方法,實在監聽者中的
servlet中有個destroy方法,是容器關閉時用於銷毀servlet實例
⑨ javaweb中上下文對象,誰可以給我解釋清楚呢,好亂
上下文說白了就是這個對象里裝有各種數據對象和相關的各種信息,但是只在一定范圍內有效。比如application,系統一啟動就存在的,你可以將某些不變的系統信息存在這個對象裡面,要用的時候就拿出來用。再比如request對象,每個請求來之後,request里有你的請求參數和數據,以及客戶端信息,像ip之類的。
上下文只是字面上感覺不好理解,也沒太多意思。