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" />

类似:请求转发

相关推荐
立秋67893 分钟前
用Python绘制梦幻星空
开发语言·python·pygame
可乐加.糖5 分钟前
项目版本管理和Git分支管理方案
java·git·目标跟踪·gitlab·敏捷流程·源代码管理
明月看潮生23 分钟前
青少年编程与数学 02-019 Rust 编程基础 16课题、包、单元包及模块
开发语言·青少年编程·rust·编程与数学
wowocpp24 分钟前
spring boot Controller 和 RestController 的区别
java·spring boot·后端
后青春期的诗go29 分钟前
基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
开发语言·后端·rust·rocket框架
草莓熊Lotso1 小时前
【C语言字符函数和字符串函数(一)】--字符分类函数,字符转换函数,strlen,strcpy,strcat函数的使用和模拟实现
c语言·开发语言·经验分享·笔记·其他
盛夏绽放1 小时前
Python字符串常用内置函数详解
服务器·开发语言·python
我想睡觉2611 小时前
Python训练营打卡DAY27
开发语言·python·机器学习
繁依Fanyi1 小时前
我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录
java·pdf·uni-app·生活·harmonyos·codebuddy首席试玩官
遗憾皆是温柔1 小时前
MyBatis—动态 SQL
java·数据库·ide·sql·mybatis