JSP的静动态包含,四大域对象,JSP页面跳转
JSP
1、注释:
1)显示注释
能够在客户端查看的注释:继承 html 注释
<!-- HTML 注释 -->
2)隐式注释
不能在客户端查看:
- JSP注释
<%-- JSP 注释 --%>
- java风格注释
// 单行注释
/* 多行注释 */
2、Scriptlet 脚本小程序
不建议在 jsp 中写代码
<%--Java脚本段,可以写Java代码,定义局部变量--%> <% %> <%--声明,声明全局变量--%> <%! %> <%--输出表达式,可以输出变量或者字面量--%> <%= %>
3、包含
1)include静态包含
<%@ include file="要包含的文件的路径" %> <!--相对路径-->
静态包含是将内容进行直接的替换,但是不能定义相同的变量名,因为静态包含最终只会生成一个源码文件,最终的内容全部生成在jspService方法体的源码文件中。
2)动态包含
格式:
<jsp:include page="包含的文件路径"></jsp:include>
动态包含相当于是方法的调用,生成多个源码文件,可以定义同名变量。
当动态包含不需要传递参数时候,include标签不要有任何内容
使用动态包含传递参数时格式:
<jsp:include page="upload.html"> <jsp:param name="参数名" value="参数值"/> <jsp:param name="参数名" value="<%= str%>"/> <%-- value 支持表达式--%> </jsp:include>
4.JSP四大域对象
1). page 范围
pageContext:只在一个页面中保存属性,跳转页面后失效
2). request范围
request:只在一次请求中保存,服务器跳转后依然有效
服务端跳转有效,客户端跳转无效
3). session范围
session:在一次会话范围中,无论何种跳转都可以使用
无论是客户端还是服务端都可以取到,但是重新开一个新浏览器就不可以了
4). application 范围
application:在整个服务器上保存
服务器重启或者关闭后都失效了。
5)结果
01-JSP.jsp
<% //Page pageContext.setAttribute("name1","zhangsan"); //request request.setAttribute("name2","lisi"); //session session.setAttribute("name3","wangwu"); //application application.setAttribute("name4","zhaoliu"); %> <%--JSP服务端跳转--%> <jsp:forward page="02-JSP.jsp"></jsp:forward> <%--客户端(超链接)跳转--%> <%--<a href="02-JSP.jsp">跳转</a>--%>
02-JSp.jsp
<% //page out.print("page: "+pageContext.getAttribute("name1")+"<br>"); //request out.print("request: "+request.getAttribute("name2")+"<br>"); //session out.print("session: "+session.getAttribute("name3")+"<br>"); //application out.print("application: "+application.getAttribute("name4")+"<br>"); %>
5.JSP页面跳转
1).服务端跳转
<%--JSP服务端跳转--%> <jsp:forward page="02-JSP.jsp"></jsp:forward>
2)客户端跳转(超链接)
<a href="02-JSP.jsp">跳转</a>