JSP标签

1.简介:
JSP标签也称之为JSP Action(JSP动作)元素,它用于在JSP页面中提供业务逻辑功能,避免在JSP页面中直接编写Java代码,
造成JSP页面难以维护。JSP 动作元素与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。动作元素只有一种语法,它符合XML标准:

    <jsp:action_name attribute="value" />   

2.指令

用法:

<jsp:include page="head.jsp"></jsp:include>
    <p style="color: red;">这里是主体</p>
<jsp:include page="foot.jsp"></jsp:include>

来说明一下动态包含和静态包含的区别:
1.动态包含使用的是JSP动作,指定包含页面的属性是page,静态包含使用的JSP指令,属性是file

2.原理不同:
a) 静态包含是直接将JSP的内容直接嵌入到访问的JSP页面。
将包含的页面的内容直接以out.write()的形式插入到service方法中。
注意:
1.编译出来的servlet只有一个。
2.静态包含是在编译时期将页面代码原封不动包含进来再运行的,所以如果页面之间相同标签的属性如果不同会起冲突,
同理,包含的jsp页面与被包含的jsp页面最好没有重复的html标签。否则会发生覆盖现象。

b) 动态包含是将两个JSP分别编译成不同的servlet,将被包含的servlet输出的
内容包含到自己的页面中,实际上还是在内部调用了include方法
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, “foot.jsp”, out, false);
原理是发送了一个请求给被包含的页面,获取到了响应的html(out.write()中的内容)并包含在自己的页面中。
通俗点说就是附加这个被包含的JSP经过编译后的效果,所以可以含有与当前JSP程序中重复的内容,因为在附加过来之前就会被解析掉。

include动作还可以传递参数到包含的页面中,用法:
        <jsp:include page="head.jsp">
            <jsp:param value="this is value" name="key"/>
        </jsp:include>
而后在接收的页面中使用request.getParameter的方式取出:
        <% String value = request.getParameter("key"); %>
        <%=value %>

3.

jsp:useBean动作用来装载一个将在JSP页面中使用的JavaBean。这个功能非常有用,因为它使得我们既可以发挥Java组件重用的优势,同时也避免了损失JSP区别于Servlet的方便性。jsp:useBean动作最简单的语法为:

<jsp:useBean id="name" class="package.class"  scope="page|request|session|application" />

如果不设置scope 默认为page 这里的page对象是内置对象中的pageContext对象,设置的值 可以通过表达式直接获取 <%=pageContext.getAttribute(“name”)%>

实例:

<jsp:useBean id="user1" class="bean.User" scope="session"></jsp:useBean>


<jsp:setProperty property="userID" name="user1" value="1"/>
<jsp:setProperty property="userName" name="user1" value="Harry"/>
<jsp:setProperty property="password" name="user1" value="password"/>

<%=session.getAttribute("user1") %>

注意:scope中的作用域对象之间的数据是不能共享的,如果是session,那么只有session的getAttribute才能够获取到。

4.
jsp:forward动作把请求转到另外的页面,其实就是请求转发。
jsp:forward标记只有一个属性page。语法格式如下所示:

    <jsp:forward page="请求转发的URL" /> 

    <jsp:forward page="jspb.jsp"></jsp:forward>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值