总结JavaWeb中几个函数的作用

几个Java Web函数的作用

创新互联专注于茂南企业网站建设,成都响应式网站建设,商城网站制作。茂南网站建设公司,为茂南等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

一,ServletContext():(zz)

Servlet容器在启动时会加载Web应用,并为每个Java Web应用创建唯一的ServletContext对象。可以把ServletContext看成是一个Web应用的服务器端组件的共享内存。在ServletContext中可以存放共享数据,它提供了4个读取或设置共享数据的方法。

1)setAttribute(Stringname,Objectobject):把一个对象和一个属性名绑定,将这个对象存储在ServletContext中;

2)getAttribute(Stringname):根据指定的属性名返回所绑定的对象;

3)removeAttribute(Stringname):根据给定的属性名从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属性还没有设置,那么创建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("");  
  35. out.println("</font></strong>点击计数<strong><font>");  
  36. out.println("");  
  37. //输出当前的count属性值  
  38. out.println("

    当前计数是:"+count+"

    ");  
  39. out.println("");  
  40.  
  41. //创建新的count对象,其值增1  
  42. count=newInteger(count.intValue()+1);  
  43. //将新的count属性存储到ServletContent中  
  44. context.setAttribute("count",count);  
  45. }  
  46. publicvoiddestroy(){  
  47. }  

在web.xml中为CounterServlet类加上元素

 
 
 
  1.  
  2. CounterServlet 
  3. mypack.CounterServlet 
  4.  
  5.  
  6. CounterServlet 
  7. /counter 
  8.  
  9.  
  10. 测试通过。 

1)刷新页面,count加1;

2)关闭浏览器,再打开新浏览器还是在原来基础上加1(即便由IE换成Opera);

3)如果重启Tomcat服务器,再访问CounterServlet,则count又初始化为0;

4)复制helloapp应用,改为helloapp1,再发布helloapp1,通过不同的浏览器窗口分别访问helloapp及helloapp1中的CounterServlet,发现这两个Web应用拥有各自独立的count属性。

即ServletContext对象只在Web应用被关闭时才被销毁;不同的Web应用,ServletContext各自独立存在。

二,以前不知道在struts-config.xml中还可以写数据库的配置,现在知道了,是可以在struts-config.xml中下标签来进行数据库的配置的。

 
 
 
  1.  
  2.  
  3. <data-sourcekeydata-sourcekey="DATASOURCE"type="oracle.jdbc.pool.OracleDataSource"> 
  4.  
  5. <set-propertypropertyset-propertyproperty="description"value="ExampleDataSourceConfiguration"/> 
  6.  
  7.  
  8. <set-propertypropertyset-propertyproperty="driverClassName"value="oracle.jdbc.driver.OracleDriver"/> 
  9.  
  10.  
  11. <set-propertypropertyset-propertyproperty="URL"value="jdbc:oracle:thin:@10.171.33.12:1521;DatabaseName=ITDBT"/> 
  12.  
  13.  
  14. <set-propertypropertyset-propertyproperty="maxActive"value="10"/> 
  15.  
  16.  
  17. <set-propertypropertyset-propertyproperty="minCount"value="1"/> 
  18.  
  19.  
  20. <set-propertypropertyset-propertyproperty="user"value="vendorda1"/> 
  21.  
  22.  
  23. <set-propertypropertyset-propertyproperty="password"value="vendorda1"/> 
  24.  
  25.  
  26. <set-propertypropertyset-propertyproperty="autoCommit"value="true"/> 
  27.  
  28.  
  29.  

在这个里面配置好之后,如果想要建立一个数据库的链接就可以这样写。

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

三,ActionMessage的作用(zz)

ActionMessage、ActionMessages、saveMessages()、saveErrors()、之间的关系及用法

ActionMessage功能是:用来产生STRUTS消息的包括正常消息和错误消息。注(原有ActionError方法来产生错误消息,但已废弃,但仍可使用。)例:ActionMessage(key,object);其中key为在appication.properties中指的key值。object为消息中要传入的参数,这里实现了动态传入。如果要传多个参数时,object处可以改为数组。

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.意思是从page范围(范围由小到大从page到application)开始以error_key为key寻找ActionMessages,要取具体的ActionMessage可以用

2.意思是迭代找出所有ActionMessage赋值给var,然后通过bean标签输出。要取具体的ActionMessage可以用,这里html:message标签有个默认message属性,它的默认值为false,代表以error_key为key取出ActionMessages.设为true时代表以message_key为key取出ActionMessages.它与的主要区别是,它可以取正常消息或错误消息(即以error_key或message_key为KEY),通过设置message属性true或false来实现。

以上这些过程的实现都是通过操作(page到application)四个范围当中的attribte属性为实现的。

【编辑推荐】

  1. 浅谈Java SE、Java EE、Java ME三者的区别
  2. Java虚拟机内部构成浅析
  3. 浅谈Java编程语言中创建和使用日期
  4. 详解Java的特点与优势
  5. 浅谈为什么Java接口中不允许定义变量

分享名称:总结JavaWeb中几个函数的作用
转载注明:http://www.gawzjz.com/qtweb/news11/189911.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联