jsp动作元素:<jsp:include>动作元素

本文介绍了JSP中的7个主要动作元素,重点讲解了&lt;jsp:include&gt;元素的使用方法及其属性page和flush的作用。通过示例展示了如何包含不同类型的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsp动作元素主要包括7个:

<jsp:include>

<jsp:forward>

<jsp:param>

<jsp:plugin>

<jsp:useBean>

<jsp:setProperty>

<jsp:getProperty>


<jsp:include>动作元素:

提供了在jsp中包含页面的方式,包括静态文件和动态文件。

<jsp:include>的语法格式:

<jsp:include page="relative URL"  flush="true|false"  />

<jsp:include>中的两个属性:

page属性:指定被包含的URL地址。

flush属性:指定当缓冲区满时,是否将其清空。默认值为false

例子:

<%@ page language="java" contentType="text/html; charset=gb2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>JSP include test</title>

</head>

<body>

<jsp:include page="hello.txt"></jsp:include>

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

<jsp:include page="1.html"></jsp:include>

</body>

</html> 

运行时会将hello.txt文件中的内容显示出来,并执行hello.jsp文件

### JSP 动作元素 `<jsp:include>` 和 `<jsp:forward>` 的区别与使用场景 #### 1. 基本概念 `<jsp:include>` 是用于动态包含其他页面的内容,而 `<jsp:forward>` 则是将当前请求转发到另一个资源。两者都属于 JSP 动作元素的一部分。 #### 2. 使用方法 ##### `<jsp:include>` 该动作允许在一个 JSP 页面中嵌入另一个页面的内容。它通过 `page` 属性指定要包含的目标文件路径[^1]。 ```html <jsp:include page="header.jsp"> <jsp:param name="subTitle" value="Welcome to our website!" /> </jsp:include> ``` 上述代码展示了如何利用 `<jsp:param>` 定制传递给被包含页面的参数[^2]。 ##### `<jsp:forward>` 此动作会终止当前页面处理并将控制权交给目标资源。同样地,可以通过 `page` 属性定义转发的目的地址,并可选地附加参数[^3]。 ```html <jsp:forward page="processRequest.jsp"> <jsp:param name="username" value="JohnDoe"/> </jsp:forward> ``` #### 3. 工作机制对比 | 特性 | `<jsp:include>` | `<jsp:forward>` | |---------------------|----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| | **URL 地址变化** | 不改变浏览器显示 URL | 浏览器中的 URL 不变 | | **执行顺序** | 当前页继续执行直到遇到 include 标签时才加载外部内容 | 遇到 forward 后立即停止当前页逻辑转至新页面 | | **响应头发送时间** | 在 response 输出完成之前都可以调用 | 必须在任何 output 发送到客户端前发生 | #### 4. 应用场景分析 - 如果只是想简单引入一些通用组件(比如导航栏或者版权信息),那么应该选用 `<jsp:include>` ,因为它不会影响主流程并且能保持原有状态不变[^3]。 - 对于需要完全跳转的情况,则更适合采用 `<jsp:forward>` 。例如表单提交后的数据处理完毕之后重定向到成功提示界面等操作[^3]。 #### 示例代码展示 以下是两个具体例子分别演示这两种方式的实际应用: ##### Example with `<jsp:include>` ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Main Page</title> </head> <body> <h1>Welcome!</h1> <!-- Include another file --> <jsp:include page="footer.jsp"/> </body> </html> ``` ##### Example with `<jsp:forward>` ```java // Original Servlet Code @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); if ("admin".equals(username)) { // Forward successful login requests to dashboard servlet/page. RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/dashboard.jsp"); dispatcher.forward(request, response); } else { response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid credentials."); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值