当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

2003 冬季 Java FAQ


  
  JSP内置对象
  
  内置对象是不需要声明,直接可以在JSP中使用的对象,JSP有以下几种内置对象:
  
  request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。
  
  response response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)
  
  out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
  
  pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
  
  session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息
  
  application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
  
  config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。
  
  page page表示从该页面产生的一个servlet实例。
  
  Servlet API中的几个对象
  
  JSP提供了八个内部对象,而其中的五个内部对象对应于Servlet API中的七个对象,这也就使得我们正常理解并熟练使用Servlet中的这七个对象显得尤其重要。这五个JSP的内部对象和Servlet API中的对象的对应关系是:
  
  request对象对应于:javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest
  
  response对象对应于:javax.servlet.http.HttpServletResponse和javax.servlet.ServletResponse
  
  session对象对应于:javax.servlet.http.HttpSession
  
  application对象对应于:javax.servlet.ServletContext
  
  config对象对应于:javax.servlet.ServletConfig
  
  javax.servlet.http.HttpServletRequest
  
  这是一个接口,在我们提到接口之前,还是让我们来复习一下Java中接口的一个初步的解释:
  
  接口在语法上与类相似,但是接口没有实例,使用接口,只是指定类必须做什么而不是如何做。
  
  HttpServletRequest接口用来处理一个对Servlet的HTTP格式的请求信息。
  
  javax.servlet.ServletRequest
  
  这也是一个接口,这个接口定义一个Servlet引擎产生的对象,通过这个对象,Servlet可以获得客户端请求的数据。这个对象通过读取请求体的数据提供包括参数的名称、值和属性以及输入流的所有数据。而javax.servlet.http.HttpServletRequest也只是该接口的一个扩展,也就是说,该接口的所有方法也可以被javax.servlet.http.HttpServletRequest所使用。
  
  javax.servlet.http.HttpServletResponse接口
  
  该接口用来描述一个返回到客户端的HTTP回应。
  
  javax.servlet.ServletResponse接口
  
  该接口用来定义一个Servlet引擎产生的对象,通过这个对象,Servlet对客户端的请求作出响应。这个响应应该是一个MIME实体,可能是一个HTML页、图象数据或其他MIME的格式。javax.servlet.http.HttpServletResponse接口是该接口的扩展。
  
  javax.servlet.http.HttpSession接口
  
  该接口用来描述一个session,至于什么是session我想在这里就没必要说了吧。
  
  javax.servlet.ServletContext接口
  
  该接口用来定义了一个Servlet的环境对象。也可是认为这是多个客户端共享的信息,它与session的区别在于应用范围的不同,session只对应于一个用户。
  
  javax.servlet.ServletConfig接口
  
  该接口定义了一个对象,通过这个对象,Servlet引擎配置一个Servlet。每一个ServletConfig对象对应着一个唯一的Servlet。
  
  javax.servlet.http.Cookie类
  
  这个类描述了一个cookie,cookie的作用其实与session很类似,只是cookie保存在客户端,session保存在服务器端。
  
  如何列出windows下的逻辑分区?
  
  public void ListDisks()
  
  { File[] roots = File.listRoots();
  
  for (int i=0; i
  
  System.out.println(roots[i]);
  
  }
  
  }
  
  如何获得可用的硬盘空间?
  
  目前尚未发现有任何干净利落的纯Java方法能够解决这个问题。通常的解决方案是直接访问操作系统获得这些信息。有一个被称为JConfig的类库提供了一些方法可以获得磁盘和文件信息,但是可以肯定这个类库使用了JNI方法。
  
  下载地址:http://www.tolstoy.com/samizdat/jconfig.html
  
  如果你使用的是晕倒死系列操作系统,那么下面的方法也许能够获得正确的结果。我之所以说也许,是因为我在多个晕倒死平台上作过实际测试,在英文版的晕倒死上基本上都能够得到正确的结果,在中文版的晕倒死上基本上都不能够获得正确的结果。
  
  String osname = System.getProperty("os.name");
  String command = "";
  if (osname.indexOf("NT") > -1)
  command = "c:\winnt\System32\cmd.exe";
  else if (osname.indexOf("Windows") > -1)
  command = "c:\windows\command.com";
  Process p = Runtime.getRuntime().exec( command + " /c dir > c:\dir.txt");
  p.waitFor();
  
  然后你需要做的是对得到的dir.txt文件进行分析。
  
  如果你使用的是UNIX/Linux操作系统,你可以使用类似的方法来获得相关信息。建议使用的命令是df -k > dir.txt。
  
  文件操作的基本原则是什么? 
  
  a. 避免多次访问磁盘,例如一次读出n个字节就比每次读出1个字节的访问效率要高很多。
  b. 避免多次访问操作系统。
  c. 避免多次调用文件存取方法。
  d. 避免将字节和字符混淆处理,在Java语言中字节与字符的概念是不一样的,在涉及到双字节字符的问题上更是容易出错。
  
相关内容
赞助商链接