JavaWeb jsp常用标签

jsp实现网页包含

在编写网页代码时,经常会出现一种需求,不同网页都会出现一个固定的内容,例如:导航栏,页面foot等。如果一个个复制粘贴,编写时可能不是很麻烦,但是需要修改时,网页每个都需要重新修改,网页代码也很复杂很冗余。所以,在jsp中会使用标签引入的方法来实现该效果。

静态包含

<%@include file="xxx.jsp"%>

例:

<body>
    <%@include file="navigation.jsp"%>
    网页内容<br/>
</body>

如果有斜杠,则 / 代表 http://ip:port/工程路径/

请添加图片描述

查看编译的源文件

请添加图片描述

请添加图片描述

动态包含

<jsp:include page="xxx.jsp"></jsp:include>

例:

<jsp:include page="navigation.jsp"></jsp:include>
网页内容(动态包含)

查看编译的文件

请添加图片描述

相比静态包含,多了一个编译文件,将被包含的jsp网页也编译了

请添加图片描述

使用动态包含,不仅是调用了网页,还将自己的request和response一起传递给了被包含的网页,这样一来就可以实现动态变化

例:

将birthday参数传递到navtion.jsp中

content.jsp

<body>
<jsp:include page="navigation.jsp">
    <jsp:param name="birthday" value="2000-5-20"/>
</jsp:include>
网页内容(动态包含)
</body>

被包含的网页 navigation.jsp

<body>
    <h1>我是导航</h1>
    生日<%=request.getParameter("birthday")%><br/>
</body>

*jsp标签实现请求转发

<jsp:forward page="xxx.jsp"></jsp:forward>

例:

<body>
<jsp:forward page="index.jsp"></jsp:forward>
</body>

但是由jsp转发出去的请求比较少,请求转发一般使用于servlet和jsp网页之间,一般的业务流程为

客户端发送请求给servlet => servlet处理请求和数据库做数据交换,搜索等 => 最后请求转发给jsp网页

jsp网页一般只做输出功能,业务处理交给servlet

servlet

public class HandlerServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //模拟处理数据
        int value = 5*5;
        //存储到resquest域中
        req.setAttribute("data",value);
        //请求转发
        req.getRequestDispatcher("/forward.jsp").forward(req,resp);
    }
}

jsp

<body>
<%
    int value = (int) request.getAttribute("data");
%>
<h1>data=</h1><%=value%>
</body>
```![请添加图片描述](https://img-blog.csdnimg.cn/bf276469ec3e40d7a3ae98a4bd1ab3ad.png)


jsp

```java
<body>
<%
    int value = (int) request.getAttribute("data");
%>
<h1>data=</h1><%=value%>
</body>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngp61hb2-1642148709987)(C:/Users/MengN/AppData/Roaming/Typora/typora-user-images/image-20220111222034905.png)]请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值