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