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

类似:请求转发

相关推荐
Q_19284999064 分钟前
基于Spring Boot的摄影器材租赁回收系统
java·spring boot·后端
qq_433554545 分钟前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
Code_流苏7 分钟前
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
java·ide·vscode·搭建·java开发环境
车轮滚滚__10 分钟前
uniapp对接unipush 1.0 ios/android
笔记
数据小爬虫@24 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
ZJ_.26 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
Narutolxy31 分钟前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
Hello.Reader39 分钟前
全面解析 Golang Gin 框架
开发语言·golang·gin
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架