Java课题笔记~ JSP编程

4.1 JSP基本语法

JSP (全称Java Server Pages) 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。

JSP=HTML+Java

JSP的本质是Servlet

访问JSP的时候,

(1)JSP转换成Servlet(2)执行Servlet文件

(1)HTML模板数据

(2)JSP元素

一、Java部分-脚本:

(1)脚本段:<% 脚本 %>

(2)声明: <%! 声明 %>

(3)表达式:<%= 表达式 %> 注意:表达式后不能加分号

(4)注释:<%-- JSP注释 --%>

二、Java部分-指令

(1)page指令

语法:<%@ page 属性1=值1 属性2=值2... %>

java 复制代码
<%@ page language="java" import="java.util.*" contentType="text/html; 
charset=utf-8" session="true/false" errorPage="url" 
isErrorPage="true/false" buffer="" %>

注意:在一个JSP页面中可以使用多个<%@page %>指令,但其中的属性只能用一次,不过import属性例外,它可以多次出现,引入多个类和包,这和Java中的import语句差不多。

(2)include指令

语法:<%@ include file="相对的URL" %>

作用:静态包含

注意:

被引入的文件必须遵循JSP语法。

被引入的文件可以使用任意的扩展名,但都会被JSP引擎按照JSP页面的处理方式去处理,为了见名知意,建议使用".jspf"(JSP fragment,即JSP片段)作为静态引入文件的扩展名。

被引入的文件中不要包含<html></html>、<body></body>等标记,因为这样会影响引入文件中同样的标记。

引入和被引入文件中的指令不能冲突(page指令中的pageEncoding和import属性除外)。

(3)taglib指令

java 复制代码
<%@ taglib uri="" prefix="" %>

作用:是减少jsp页面中的java代码

三、Java部分-动作(了解)

(1)<jsp:include>动作元素

语法:

java 复制代码
<jsp:include page="relativeURL" flush="true|false" />
    page属性用于指定被引入资源的相对路径
    flush属性用于指定是否将当前页面的输出内容刷新到客户端。

作用:把其他资源的输出内容插入到当前JSP页面的输出内容中。----动态包含

案例:

java 复制代码
<%@--     include.jsp     --%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>include</title>
</head>
<body>
 	<%Thread.sleep(5000);%>
 	included.jsp内的中文<br />
</body>
</html>
java 复制代码
<%@--     dynamicInclude.jsp     --%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                          "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>dynamicInclude page</title>
</head>
<body>
	dynamicInclude.jsp内的中文
	<br>
	<jsp:include page="included.jsp" flush="true" />
    <%--对比:flush为true和false的区别。--%>
	<%--<jsp:include page="included.jsp" flush="false" />--%>

	dynamicInclude.jsp内的中文2
</body>
</html>

include指令和<jsp:include>标签有很大的区别:

  • <jsp:include>标签要引入的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件。

  • <jsp:include>标签要引入的资源是在运行时才包含的。而include指令引入的资源是在编译时期包含的,包含的是源代码。

  • <jsp:include>标签运行原理与RequestDispatcher.include()方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而include指令没有这方面的限制。

(2)<jsp:forward>动作元素

语法:

java 复制代码
<jsp:forward page="relativeURL" />

类似:请求转发

相关推荐
云泽8082 分钟前
Visual Studio 2026 新手保姆级教程:环境搭建、界面优化与编译器配置详解
开发语言·c++·c·开发工具·visual studio
yeflx9 分钟前
速腾Airy雷达使用记录
java·服务器·网络
乐之者v29 分钟前
AI编程 -- Agents.md 的简单示例
java·ai编程
2zcode43 分钟前
基于MATLAB深度学习的乳腺钼靶影像乳腺癌智能诊断系统设计与实现
开发语言·深度学习·matlab·乳腺癌
无风听海1 小时前
Claude Agent Skills 的四种设计模式;从渐进式披露到最小权限
java·算法·设计模式
MoonBit月兔1 小时前
错过大赛报名?MoonBit 开源大赛- 8 月黑客松正式开启
开发语言·ai-native·moonbit
weixin_538601971 小时前
智能体测开Day31
开发语言·python
geovindu1 小时前
java: Facade Pattern
java·开发语言·后端·外观模式·结构型模式
listening7771 小时前
HarmonyOS 6.1 元服务深度优化:从“秒开”到“常驻”的极致体验
java·开发语言·spring
布朗克1681 小时前
Go 入门到精通-29-测试与基准
开发语言·后端·golang·测试与基准