自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

總結(jié)Java Web中幾個函數(shù)的作用

開發(fā) 后端
前些天初步看了下一個有關(guān)于BBS開發(fā)的程序?;趕truts的,見到了里面的幾個函數(shù),不知道它們的作用,總結(jié)了一下Java Web中幾個函數(shù)的作用。

幾個Java Web函數(shù)的作用

一,ServletContext():(zz)

Servlet容器在啟動時會加載Web應用,并為每個Java Web應用創(chuàng)建唯一的ServletContext對象??梢园裇ervletContext看成是一個Web應用的服務器端組件的共享內(nèi)存。在ServletContext中可以存放共享數(shù)據(jù),它提供了4個讀取或設(shè)置共享數(shù)據(jù)的方法。

1)setAttribute(Stringname,Objectobject):把一個對象和一個屬性名綁定,將這個對象存儲在ServletContext中;

2)getAttribute(Stringname):根據(jù)指定的屬性名返回所綁定的對象;

3)removeAttribute(Stringname):根據(jù)給定的屬性名從ServletContext中刪除相應的操作;

4)getAttributeNames():返回Enumeration對象,它包含了存儲在ServletContext對象中的所有屬性名。

  1. packagemypack;  
  2. importjavax.servlet.*;  
  3. importjavax.servlet.http.*;  
  4. importjava.io.*;  
  5. importjava.util.*;  
  6.  
  7. publicclassCounterServletextendsHttpServlet  
  8. {  
  9. publicstaticfinalStringCONTENT_TYPE="text/html;charset=GB2312";  
  10.  
  11. publicvoidinit(ServletConfigconfig)throwsServletException{  
  12. super.init(config);  
  13. }  
  14.  
  15. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{  
  16. doPost(request,response);  
  17. }  
  18.  
  19. publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{  
  20. //獲得ServletContext的引用  
  21. ServletContextcontext=getServletContext();  
  22. //從ServletContext讀取count屬性  
  23. Integercount=(Integer)context.getAttribute("count");  
  24.  
  25. //如果count屬性還沒有設(shè)置,那么創(chuàng)建count屬性,初始值為0  
  26. //oneandaddittotheServletContext  
  27. if(count==null){  
  28. count=newInteger(0);  
  29. context.setAttribute("count",newInteger(0));  
  30. }  
  31.  
  32. response.setContentType(CONTENT_TYPE);  
  33. PrintWriterout=response.getWriter();  
  34. out.println("<HTML>");  
  35. out.println("<HEAD><TITLE>點擊計數(shù)</TITLE></HEAD>");  
  36. out.println("<BODY>");  
  37. //輸出當前的count屬性值  
  38. out.println("<P>當前計數(shù)是:"+count+"</P>");  
  39. out.println("</BODY></HTML>");  
  40.  
  41. //創(chuàng)建新的count對象,其值增1  
  42. count=newInteger(count.intValue()+1);  
  43. //將新的count屬性存儲到ServletContent中  
  44. context.setAttribute("count",count);  
  45. }  
  46. publicvoiddestroy(){  
  47. }  

在web.xml中為CounterServlet類加上<servlet>和<servlet-mapping>元素

  1. <servlet> 
  2. <servlet-name>CounterServlet</servlet-name> 
  3. <servlet-class>mypack.CounterServlet</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6. <servlet-name>CounterServlet</servlet-name> 
  7. <url-pattern>/counter</url-pattern> 
  8. </servlet-mapping> 
  9.  
  10. 測試通過。 

1)刷新頁面,count加1;

2)關(guān)閉瀏覽器,再打開新瀏覽器還是在原來基礎(chǔ)上加1(即便由IE換成Opera);

3)如果重啟Tomcat服務器,再訪問CounterServlet,則count又初始化為0;

4)復制helloapp應用,改為helloapp1,再發(fā)布helloapp1,通過不同的瀏覽器窗口分別訪問helloapp及helloapp1中的CounterServlet,發(fā)現(xiàn)這兩個Web應用擁有各自獨立的count屬性。

即ServletContext對象只在Web應用被關(guān)閉時才被銷毀;不同的Web應用,ServletContext各自獨立存在。

二,以前不知道在struts-config.xml中還可以寫數(shù)據(jù)庫的配置,現(xiàn)在知道了,是可以在struts-config.xml中下<data-source>標簽來進行數(shù)據(jù)庫的配置的。

  1. <data-sources> 
  2.  
  3. <data-sourcekeydata-sourcekey="DATASOURCE"type="oracle.jdbc.pool.OracleDataSource"> 
  4. <!--說明--> 
  5. <set-propertypropertyset-propertyproperty="description"value="ExampleDataSourceConfiguration"/> 
  6.  
  7. <!--所用的JDBC驅(qū)動類,必須--> 
  8. <set-propertypropertyset-propertyproperty="driverClassName"value="oracle.jdbc.driver.OracleDriver"/> 
  9.  
  10. <!--所用的JDBC的URL,必須--> 
  11. <set-propertypropertyset-propertyproperty="URL"value="jdbc:oracle:thin:@10.171.33.12:1521;DatabaseName=ITDBT"/> 
  12.  
  13. <!--同時打開的***連接數(shù),缺省值為2,可選--> 
  14. <set-propertypropertyset-propertyproperty="maxActive"value="10"/> 
  15.  
  16. <!--同時打開的最小連接數(shù),缺省值為1,可選--> 
  17. <set-propertypropertyset-propertyproperty="minCount"value="1"/> 
  18.  
  19. <!--連接到數(shù)據(jù)庫的用戶名,必須--> 
  20. <set-propertypropertyset-propertyproperty="user"value="vendorda1"/> 
  21.  
  22. <!--連接到數(shù)據(jù)庫的密碼,必須--> 
  23. <set-propertypropertyset-propertyproperty="password"value="vendorda1"/> 
  24.  
  25. <!--是否自動COMMIT--> 
  26. <set-propertypropertyset-propertyproperty="autoCommit"value="true"/> 
  27. </data-source> 
  28.  
  29. </data-sources> 

在這個里面配置好之后,如果想要建立一個數(shù)據(jù)庫的鏈接就可以這樣寫。

  1. DataSourcedataSource=(DataSource)servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);  
  2. Connectionconnection=dataSource.getConnection(); 

三,ActionMessage的作用(zz)

ActionMessage、ActionMessages、saveMessages()、saveErrors()、之間的關(guān)系及用法

ActionMessage功能是:用來產(chǎn)生STRUTS消息的包括正常消息和錯誤消息。注(原有ActionError方法來產(chǎn)生錯誤消息,但已廢棄,但仍可使用。)例:ActionMessage(key,object);其中key為在appication.properties中指的key值。object為消息中要傳入的參數(shù),這里實現(xiàn)了動態(tài)傳入。如果要傳多個參數(shù)時,object處可以改為數(shù)組。

ActionMessages功能:是作為容器(map)來存ActionMessage的。例::ActionMessagesams=newActionMessages().ams.add("id",ActionMessage).

saveErrors功能:是用來存儲ActionMessages,例:saveErrors(ActionMessages,scope)這里有個隱性的error_key作為KEY與ActionMessages對應。scope值為:application,session,request,page.默認為page范圍。

saveMessages功能:是用來存儲ActionMessages,例:saveMessages(ActionMessages,scope)這里有個隱性的message_key作為KEY與ActionMessages對應。scope值為:application,session,request,page.默認為page范圍。

取出ActionMessage消息STRUTS提供了兩種標簽:

1.<html:errors/>意思是從page范圍(范圍由小到大從page到application)開始以error_key為key尋找ActionMessages,要取具體的ActionMessage可以用<html:errorsproperty="id"/>

2.<html:messageid="var"/><bean:writename="var"/>意思是迭代找出所有ActionMessage賦值給var,然后通過bean標簽輸出。要取具體的ActionMessage可以用<html:messageid="var"property="id"/><bean:writename="var"/>,這里html:message標簽有個默認message屬性,它的默認值為false,代表以error_key為key取出ActionMessages.設(shè)為true時代表以message_key為key取出ActionMessages.它與<html:errors/>的主要區(qū)別是,它可以取正常消息或錯誤消息(即以error_key或message_key為KEY),通過設(shè)置message屬性true或false來實現(xiàn)。

以上這些過程的實現(xiàn)都是通過操作(page到application)四個范圍當中的attribte屬性為實現(xiàn)的。

【編輯推薦】

  1. 淺談Java SE、Java EE、Java ME三者的區(qū)別
  2. Java虛擬機內(nèi)部構(gòu)成淺析
  3. 淺談Java編程語言中創(chuàng)建和使用日期
  4. 詳解Java的特點與優(yōu)勢
  5. 淺談為什么Java接口中不允許定義變量
責任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2009-06-30 17:10:28

JSP和Servlet

2009-06-30 14:51:19

JSP和Servlet

2009-06-29 16:24:00

JSP和Servlet

2022-04-06 07:32:41

Java運算符變量

2018-04-23 10:05:41

Java Web框架Spring

2009-05-05 11:02:25

思科認證考試ID

2017-02-27 17:06:43

Java Web開發(fā)亂碼

2022-04-02 08:14:02

JavaThreadLoca數(shù)據(jù)

2020-09-26 07:19:46

Java

2012-04-02 14:03:08

web緩存

2009-11-25 17:54:47

PHP數(shù)組函數(shù)

2024-01-25 11:36:08

C++構(gòu)造函數(shù)關(guān)鍵字

2011-12-15 16:55:04

TomcatJavajsp

2011-11-02 15:42:27

2022-06-07 08:31:44

JavaUnsafe

2010-04-14 13:22:10

Oracle系統(tǒng)函數(shù)

2023-06-28 08:34:02

Bind()函數(shù)JavaScript

2012-04-26 11:39:04

Javastatic變量

2020-03-29 20:27:51

Python函數(shù)開發(fā)

2023-11-30 07:37:49

MySQL函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號