几个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对象中的所有属性名。
- packagemypack;
- importjavax.servlet.*;
- importjavax.servlet.http.*;
- importjava.io.*;
- importjava.util.*;
- publicclassCounterServletextendsHttpServlet
- {
- publicstaticfinalStringCONTENT_TYPE="text/html;charset=GB2312";
- publicvoidinit(ServletConfigconfig)throwsServletException{
- super.init(config);
- }
- publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
- doPost(request,response);
- }
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
- //获得ServletContext的引用
- ServletContextcontext=getServletContext();
- //从ServletContext读取count属性
- Integercount=(Integer)context.getAttribute("count");
- //如果count属性还没有设置,那么创建count属性,初始值为0
- //oneandaddittotheServletContext
- if(count==null){
- count=newInteger(0);
- context.setAttribute("count",newInteger(0));
- }
- response.setContentType(CONTENT_TYPE);
- PrintWriterout=response.getWriter();
- out.println("");
- out.println("
点击计数"); - out.println("");
- //输出当前的count属性值
- out.println("当前计数是:"+count+"");
- out.println("");
- //创建新的count对象,其值增1
- count=newInteger(count.intValue()+1);
- //将新的count属性存储到ServletContent中
- context.setAttribute("count",count);
- }
- publicvoiddestroy(){
- }
- }
在web.xml中为CounterServlet类加上
CounterServlet mypack.CounterServlet CounterServlet /counter - 测试通过。
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中下
- <data-sourcekeydata-sourcekey="DATASOURCE"type="oracle.jdbc.pool.OracleDataSource">
- <set-propertypropertyset-propertyproperty="description"value="ExampleDataSourceConfiguration"/>
- <set-propertypropertyset-propertyproperty="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
- <set-propertypropertyset-propertyproperty="URL"value="jdbc:oracle:thin:@10.171.33.12:1521;DatabaseName=ITDBT"/>
- <set-propertypropertyset-propertyproperty="maxActive"value="10"/>
- <set-propertypropertyset-propertyproperty="minCount"value="1"/>
- <set-propertypropertyset-propertyproperty="user"value="vendorda1"/>
- <set-propertypropertyset-propertyproperty="password"value="vendorda1"/>
- <set-propertypropertyset-propertyproperty="autoCommit"value="true"/>
在这个里面配置好之后,如果想要建立一个数据库的链接就可以这样写。
- DataSourcedataSource=(DataSource)servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
- 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.
2.
以上这些过程的实现都是通过操作(page到application)四个范围当中的attribte属性为实现的。
【编辑推荐】
分享名称:总结JavaWeb中几个函数的作用
转载注明:http://www.gawzjz.com/qtweb/news11/189911.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联