您的位置:首页 > Web前端 > JavaScript

jsp的9个对像6个动作及作用

2007-03-12 11:29 148 查看
(1) HttpSession类的session对象
作用:主要用于来分别保存每个用户信息,与请求关联的会话;
         会话状态维持是Web应用开发者必须面对的问题。

(2) HttpServletRequest类的Request对象
作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。

(3) HttpServletResponse类的Respone对象
作用:代表响应对象,主要用于向客户端发送数据

(4) JspWriter类的out对象
作用:主要用于向客户端输出数据;
        Out的基类是JspWriter

(5) ServletContex类的application对象
作用:主要用于保存用户信息,代码片段的运行环境;
        它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.

(6) PageContext类的PageContext对象
作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。

(7) ServletConfig类的Config对象
作用:代码片段配置对象,表示Servlet的配置。

(8) Object类的Page(相当于this)对象
作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。

(9)Exception
作用:处理JSP文件执行时发生的错误和异常

JSP共有以下6种基本动作

 jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

 jsp:getProperty:输出某个JavaBean的属性。

 jsp:forward:把请求转到一个新的页面。

 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

JSP page 指令集

<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>

eg.

<%@ page file="" %>

<%@ page import = "java.util.* "%>

 JSP中动态INCLUDE与静态INCLUDE的区别?

动态:INCLUDE <jsp:include page="some.jsp" flush="true"/>

静态:<%@ include file="some.some(txt,jsp,html)" %>

前者为include指令,后者为include的动作  
  区别:  
  前者---〉用来向当前页面中插入一个静态文件的内容,注意,此时include所包含文件的内容是在编译的时候插入到原文件中的。正因为如此,如果include文件(如你的parameter.jsp)变化了,而jsp文件没变化,则jsp引擎会认为jsp页面没有改变过,此时其将不再对源代码重新编译,即便对include文件做了修改,在jsp页面中看到的将还是以前的。  
  后者--->include动作是jsp向当前页面插入文件的另一方法,被插入的文件(如你的parameter.jsp)既可以是静态的,也可以是动态的。它是将包含文件编译的结果插入当前位置。如果包含文件改动了,其能判断文件已经变化,并对包含文件重新编译

前者是将AA.TXT通过服务器处理后,将jsp包含进来.
后者是先将文件包含进来,再处理.
所以,如果用前者,就必须保证文件中的JSP语句是正确的.所有的变量定义都是独立的.
如果是后者,则可以在some.some中使用外部在INCLUDE它之前所定义的变量.
两都还有一个区别, 就是前者是动态更新的,也就是说some.some如果发生了变量, 所有包含它的文件都会变.而后者, 就只有将所有包含some.some文件的先改变了,重新编译才能看到新的效果.

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息