jsp中的指令分为两大类,编译指令和动作指令。
编制指令 | <%@ inlcude file=” “%>和 <%@ page 属性1 属性2 %> |
动作指令 | <jsp:include ><jsp:forward><jsp:useBean> |
JSP7 个 动作指令如下 :
- jsp:forward: 执行页面转向,将请求的处理转发到下一个页面。
- jsp:param: 用于传递参数,必须与其他支持参数曲标签一起使用。
- jsp:include: 用于动态引入一个 JSP 页面。
- jsp:p1ugin: 用于下载 JavaBean 或 Applet 到客户端执行。
- jsp:useBean: 使用 JavaBean。
- jsp:setProperty: 修改 JavaBean 实例的属性值。
- jsp:getProperty: 获取 JavaBean 实例的属性值。
jsp:forward
JSP 关于<jsp:forward>的使用以及传递参数 :https://blog.youkuaiyun.com/hdg745979749/article/details/72773776
jsp页面跳转标签 forward标签详解 效果图展示 https://jingyan.baidu.com/article/b7001fe19210fb0e7282dd3a.html
jsp中 forward跳转和response跳转 https://blog.youkuaiyun.com/peng_hong_fu/article/details/53160585
<jsp:forward page="url"/>
做为服务器端跳转,跳转后地址栏地址是当前地址,而不是目的页面;执行时,立即跳转,后面语句不执行。
response.sensRediresct("")
作为客户端跳转地址栏会变成目的页面的地址,执行时,待所有代码执行完成后再执行跳转动作;进行重定向后,request中的属性全部失效,并且开始一个新的request对象。
<a href="url"></a>
超链接,目标栏地址也会改变
Servlet中的页面转发 RequestDispatcher rd=request.getRequestDispatcher("main.jsp").forward(request,response);
jsp:include:
1.第一种:jstl import
<c:import url="inlayingJsp.jsp"></c:import>
使用jstl标签时,一定要在jsp文件头加入以下代码:<%@taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core"%>
2. 第二种:jsp include指令
<%@ include file="inlayingJsp.jsp" %>
include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。
include指令在转换时插入“Header.jsp”的源代码,而<jsp:include>动作在运行时插入“Header.jsp"的响应。
静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来。
<%@include为静态包含,<%@include不论包含的是txt文本还是jsp文件,被包含的页面都不会从新编译。
<%@include为静态包含,包含了几个JSP转译成servlet时就会有 几 个 class文件,如果在jsp1定义了变量i同时在jsp2也定义了变量i那么你编译都会通不过的,jsp容器会告诉你i重复定义了.
3. 第三种:jsp include动作
动态导入是不会导入include页面的编译指令的,而是仅仅将被导入页面的body内容插入本页面。
<jsp:include 为动态包含,<jsp:include 如包含jsp文件,这每次加载主页面的时候,被包含的页面都要重新编译。
就是说不管你包含了几个jsp页面转译成servlet时中有一个class文件