服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 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语言中字节与字符的概念是不一样的,在涉及到双字节字符的问题上更是容易出错。

扫描关注微信公众号