application jsp内置对象

转载 2013年12月06日 11:49:11


 


application是javax.servlet.ServletContext接口的实例,实际上表示的是整个Servlet的上下文。

application对象的常用方法:


 

以上方法是application的特色方法,当然,除了以上的三个方法之外,对于属性的增加、取得和删除也有其应用的,setAttribute()、getAttribute()、removeAttribute()。

我们来一块学习表格中的三个方法。

取得绝对路径

取得一个项目的虚拟目录对应的绝对路径就要使用getRealPath()方法。一个例子看一下这个方法的使用和效果。

  1. application_01.jsp  
  2. <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> 
  3. <html> 
  4. <head> 
  5. <title>web开发</title> 
  6. </head> 
  7. <body> 
  8. <%   
  9.    String path=application.getRealPath("/");  
  10. %> 
  11. <h3>真实路径:<%=path %></h3> 
  12. </body> 
  13. </html> 

运行一下可以发现真实路径是我们的项目的路径。但是在这个地方需要注意的是,application的这个操作本身是ServletContext接口的实例,但是在jsp中,还有一个很常用的方法的功能可以完全取得这个方法。那就是getServletContext()方法。下面一个程序看一下这个方法的使用。

  1. <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> 
  2. <html> 
  3. <head> 
  4. <title>web开发</title> 
  5. </head> 
  6. <body> 
  7. <%   
  8.    String path=getServletContext().getRealPath("/");  
  9. %> 
  10. <h3>真实路径:<%=path %></h3> 
  11. </body> 
  12. </html> 

运行一下可以发现,这个方法也能取得真实路径。实际上来说,在jsp中getServletContext()方法是比较常用的,各位都应该知道各个网站都有一个网站计数器吧,可以记录用户每次登陆的次数。那个功能的实现就依靠我们的getServletContext()方法。关于网站计数器的操作我们在近期内会讲到。

注意 关于getServletContext()方法,看代码的时候,可能有点的同学会问了,在正常情况下所有的方法都应该会有一个对象调用,为什么在这个代码中没有对象呢?就是说在应该会有一个对象调用getServletContext()这个方法,但是看以上代码中并没有调用而直接写上了这个方法。实际上如果非要在这个地方加上一个对象的话,那这个对象就可以使用this,this表示的是当前容器。将上面的代码改成如下

  1. <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> 
  2. <html> 
  3. <head> 
  4. <title>web开发</title> 
  5. </head> 
  6. <body> 
  7. <%   
  8.    String path=this.getServletContext().getRealPath("/");  
  9. %> 
  10. <h3>真实路径:<%=path %></h3> 
  11. </body> 
  12. </html> 

运行一下并没有变化。this是可以省略的。可以说this.getServletContext()方法是个重点应用。

 那么取得绝对路径的用处的是什么呢?这个可有大用处了,能取得绝对路径就意味着在jsp中可以进行文件操作了。有的同学问我文件怎么操作,在这儿一块以一个实例来看一下文件的操作。

如果想进行文件的操作首先一定需要通过File类找到一个指定的路径,这个路径最好是绝对路径

  1. application_02.jsp    
  2. <%@ page language="java" contentType="text/html" pageEncoding="gbk" %> 
  3. <html> 
  4. <head> 
  5. <title>web开发</title> 
  6. </head> 
  7. <body> 
  8. <form action="application_03.jsp"> 
  9.     输入文件名称:<input type="text" name="filename"><br> 
  10.     输入文件内容:<textarea name="filecontent" cols="30" rows="3"> 
  11.            </textarea><br> 
  12.   <input type="submit" values="保存"> 
  13.   <input type="reset" values="重置">      
  14. </form> 
  15. </body> 
  16. </html> 
  1. application_03.jsp  
  2. <%@ page language="java" contentType="text/html" pageEncoding="gbk" %> 
  3. <%@ page import="java.io.*" %> 
  4. <%@ page import="java.util.*"%> 
  5. <html> 
  6. <head> 
  7. <title>web开发</title> 
  8. </head> 
  9. <body> 
  10. <%   
  11.      //request.setCharacterEncoding("gbk");  
  12.      String name=new String(request.getParameter("filename").getBytes("ISO-8859-1"));  
  13.      // String name=request.getParameter("filename");  
  14.      String content=new String(request.getParameter("filecontent").getBytes("ISO-8859-1"));  
  15.      // String content=request.getParameter("filecontent");  
  16.      System.out.println(name);  
  17.      //要想操作文件必须有绝对路径,那么这个时候getRealPath();  
  18.      String fileName=this.getServletContext().getRealPath("/")+  
  19.      "note"+File.separator+name; //保存在note文件之中  
  20.      File file=new File(fileName); // 实例化File类对象  
  21.      if(!file.getParentFile().exists()){  
  22.         file.getParentFile().mkdir();//建立一个文件夹   
  23.      }  
  24.      PrintStream ps=null;  
  25.      ps=new PrintStream(new FileOutputStream(file));  
  26.      ps.println(content);  
  27.      ps.close();  
  28. %> 
  29. <%  
  30.    Scanner scan=new Scanner(new FileInputStream(file));  
  31.     scan.useDelimiter("\n");  
  32.    StringBuffer buf=new StringBuffer();  
  33.    while(scan.hasNext()){  
  34.        buf.append(scan.next()).append("<br>");  
  35.    }  
  36.    scan.close();  
  37. %> 
  38. <%=buf%> 
  39. </body> 
  40. </html> 

运行一下application_02.jsp,提交内容,看浏览器的效果,显示的是提交的内容,那么文件在哪儿呢?看一下tomcat底下的webappls文件夹,然后找到程序的项目打开,看到有个note的文件夹对吗,打开文件夹,里面就不用我说了,是提交的内容,记得用记事本打开。

 注意:  注意在application_03.jsp中接收参数的乱码处理操作。 注意包类的导入,文件当然用到java.io.*.    文件操作实际上是属性java SE的内容,不熟悉的同学可以再学一下关于文件Io的操作。

 查看属性

 在application中有一个方法可以取得全部的属性。

  1. application_04.jsp  
  2. <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> 
  3. <%@ page import="java.util.*" %> 
  4. <html> 
  5. <head> 
  6. <title>web开发</title> 
  7. </head> 
  8. <body> 
  9. <%   
  10.   Enumeration enu=this.getServletContext().getAttributeNames();//取得全部的属性  
  11.   while(enu.hasMoreElements()){  
  12.       String name=(String)enu.nextElement();  
  13. %> 
  14. <h4><%=name%> 
  15.   <%=this.getServletContext().getAttribute(name)%> 
  16.  </h4> 
  17. <%      
  18.   }  
  19. %> 
  20. </body> 
  21. </html> 

 看一下运行结果,取得的全部属性到底是个什么东西,如下就是取得的全部属性:

JSP内置对象(主要指page、request、session、application)

JSP内置对象 为了简化Web应用程序的开发,在JSP中定义了一些由JSP容器实现和管理的内置对象,这些对象可以直接在JSP页面中使用,而不需要JSP页面编写者对它们实例化。 9种内置对象: r...
  • Songjs19931206
  • Songjs19931206
  • 2015年08月15日 14:30
  • 1663

JSP内置对象-application对象

application 对象用来在多个程序或者是多个用户之间共享数据,用户使用的所有的application对象的作用都是一样的.这与session对象不同.服务器一旦启动,就会自动创建applica...
  • tang_huan_11
  • tang_huan_11
  • 2014年02月12日 20:41
  • 3107

JSP内置对象——application对象

在介绍appl ication 对象之前,先简单介绍一些Web 服务器的实现原理。         对于大部分浏览器而言,它通常负责完成三件事情: (1)向远程服务器发送请求。 (2...
  • u013031185
  • u013031185
  • 2016年03月31日 20:04
  • 3675

jsp内置对象application、exception、pageContext、config方法

pageContext对象 pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageC...
  • Dices
  • Dices
  • 2011年04月02日 15:11
  • 680

JSP内置对象之------response、session、application

1. 重定向和转发    response.sendRedirect("地址"); a. 页面地址显示最终页面         b. 不可向后传递参数         c. 跳到外部站点 ...
  • emilyRR
  • emilyRR
  • 2015年03月29日 22:40
  • 635

【JSP笔记】内置对象(二)session、application

三.session对象 session对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的操作状态。session对象内部使用 Map类 来保存...
  • fanfan_yang
  • fanfan_yang
  • 2017年11月30日 21:51
  • 99

JSP内置对象---application

application 对象   服务器启动后,就产生了application 对象。当一个客户访问服务器上的一个JSP 页面时,JSP 引擎为该客户分配这个application 对象,  当客户在...
  • wzg775192833
  • wzg775192833
  • 2013年12月18日 22:54
  • 757

JSP九大内置对象(Request,Response,Out,Session,Application,Cookie,Config,Page,Exception)

1、Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。 当Request对象获取客户提交的汉字字符时,会出现乱码问...
  • figo0423
  • figo0423
  • 2017年01月12日 09:48
  • 882

JSP——内置对象application out session request response+EL+uplaod+download

JSP——内置对象application out session  request response+EL+uplaod+download JSP内置对象application  out  sess...
  • zhangyufeng0126
  • zhangyufeng0126
  • 2016年10月19日 22:03
  • 660

08JSP内置对象application

①概要      application对象用于保存所有应用程序中的公有数据,服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可...
  • qq_29662713
  • qq_29662713
  • 2017年01月01日 18:39
  • 84
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:application jsp内置对象
举报原因:
原因补充:

(最多只允许输入30个字)