静态包含
<%@ include file=”要包含的文件路径”%>
注:在没一个完整的页面 对于html head title body 等几个元素织女呢个出现一次如重复出现可能会造成错误
动态包含
不传递参数:
<jsp:include page=”{要包含的文件路径|<%=表达式%>}”flush=”true|false”/>
传递参数:
<><jsp:include page=”{要包含的文件路径|<%=表达式%>}”flush=”true|false”>
<jsp:param name=”参数名称” value=”参数内容”/>
……..
</jsp:include>
那种好:动态包含好点,静态包含属于先包含后处理,而动态包含如果被包含的页面是动态页面是动态页,则属于先处理后包含。
跳转指令:<jsp:foward>(服务器跳转,跳转之后地址栏不变)
不传递参数:
<jsp: foward page=”{要包含的文件路径|<%=表达式%>}” />
传递参数:
<><jsp: foward page=”{要包含的文件路径|<%=表达式%>}”>
<jsp:param name=”参数名称” value=”参数内容”/>
……..
</jsp:include>
JSP内置对象
NO. | 内置对象 | 类型 | 描述 |
1 | pageContext | Javax.servelt.jsp.PageContext | JSP的页面容器 |
2 | Resquest | Javax.servelt.http.HttpServletRequest | 得到用户的请求信息 |
3 | Response | Javax.servelt.http. HttpServletResponse | 服务器向客户端的回应 |
4 | Session | Javax.servelt.http.HttpSession | 保存每一个用户的信息 |
5 | Application | Javax.servelt.ServletContext | 表示所有用户的共享信息 |
6 | config | Javax.servelt.ServletConfig | 服务器配置,可取得初始化参数 |
7 | Out | Javax.servelt.jsp.JspWriter | 页面输出 |
8 | Page | Javax.lang.Object | 从该页面中表示出来的一个Servlet实例 |
9 | exception | Javax.lang.Throwable | 表示JSP页面发生的异常 |
4种属性范围
Page:正在一个页面中保存属性,服务器跳转后依然有效
Request:一次请求中保存,服务器跳转后依然有效
Session:一次会话范围,无论那种跳转都可用,新开浏览器无效
Application:在整个服务器上保存,所有用户都可以使用
Page(Pagecontext)属性范围:本页 跳转后无法取得
是的
<%
//(1)
pageContext.setAttribute("name","jordan");
pageContext.setAttribute("id","23");
%>
<%
//(2)
String username = (String)pageContext.getAttribute("name");
String userid = (String)pageContext.getAttribute("id");
%>
<h2><%=username%></h2>
<h2><%=userid%></h2>
1 2写在一个页面可以显示 但是如果分开写那就显示不出来了
Request属性范围:(表示客户端的请求)在服务器跳转之后 所设置的内容依然会被保留下来,但是如果是超链接跳转就无法获得request属性
Session:无论什么跳转都能获得设置的属性 但是如果新开一个浏览器直接访问跳转后的页面 无法获得session属性
Application:在服务器上 随你怎么弄都能获得(设置过多会影响服务器性能)