JavaWeb基础知识总结. (18)

在JavaWeb中一共四个域对象,其中Servlet中可以使用的是request、session、application三个对象,而在JSP中可以使用pageContext、request、session、application四个域对象。

pageContext 对象是PageContext类型,它的主要功能有:

l 域对象功能;

l 代理其它域对象功能;

l 获取其他内置对象;

3.1 域对象功能

pageContext也是域对象,它的范围是当前页面。它的范围也是四个域对象中最小的!

l void setAttribute(String name, Object value);

l Object getAttrbiute(String name, Object value);

l void removeAttribute(String name, Object value);

3.2 代理其它域对象功能

还可以使用pageContext来代理其它3个域对象的功能,也就是说可以使用pageContext向request、session、application对象中存取数据,例如:

pageContext.setAttribute("x", "X");

pageContext.setAttribute("x", "XX", PageContext.REQUEST_SCOPE);

pageContext.setAttribute("x", "XXX", PageContext.SESSION_SCOPE);

pageContext.setAttribute("x", "XXXX", PageContext.APPLICATION_SCOPE);

 

l void setAttribute(String name, Object value, int scope):在指定范围中添加数据;

l Object getAttribute(String name, int scope):获取指定范围的数据;

l void removeAttribute(String name, int scope):移除指定范围的数据;

l Object findAttribute(String name):依次在page、request、session、application范围查找名称为name的数据,如果找到就停止查找。这说明在这个范围内有相同名称的数据,那么page范围的优先级最高!

3.3 获取其他内置对象

一个pageContext对象等于所有内置对象,即1个当9个。这是因为可以使用pageContext对象获取其它8个内置对象:

l JspWriter getOut():获取out内置对象;

l ServletConfig getServletConfig():获取config内置对象;

l Object getPage():获取page内置对象;

l ServletRequest getRequest():获取request内置对象;

l ServletResponse getResponse():获取response内置对象;

l HttpSession getSession():获取session内置对象;

l ServletContext getServletContext():获取application内置对象;

l Exception getException():获取exception内置对象;

JSP动作标签 1 JSP动作标签概述

动作标签的作用是用来简化Java脚本的!

JSP动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用。

如果JSP动作标签不够用时,还可以使用自定义标签(今天不讲)。JavaWeb一共提供了20个JSP动作标签,但有很多基本没有用,这里只介绍一些有坐标的动作标签。

JSP动作标签的格式:<jsp:标签名 …>

2 <jsp:include>

<jsp:include>标签的作用是用来包含其它JSP页面的!你可能会说,前面已经学习了include指令了,它们是否相同呢?虽然它们都是用来包含其它JSP页面的,但它们的实现的级别是不同的!

include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。

include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。它与RequestDispatcher的include()方法是相同的!

hel.jsp

<body>

<h1>hel.jsp</h1>

<jsp:include page=http://www.likecs.com/"lo.jsp" />

</body>

 

lo.jsp

<%

out.println("<h1>lo.jsp</h1>");

%>

 

wps8C3A.tmp

其实<jsp:include>在“真身”中不过是一句方法调用,即调用另一个Servlet而已。

3 <jsp:forward>

forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

hel.jsp

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzfdw.html