目录
6.3、jsp语法
jsp页面就是在HTML的基础上可以使用Java代码,所以一个jsp页面可以直接使用HTML的标签,也可以通过通过jsp的一些语法使用java代码。
-
JSP脚本语法:用来在JSP中写java代码
<% java语句 %>
-
声明语句:声明一个或多个变量、方法,以供后面的 Java 代码使用
<%! java代码 //声明中的代码会被编译到jsp生成的java类中,而其他地方的代码会生成到jspService方法中 %>
-
JSP表达式:可以把变量或者表达式输出到网页上,不需要 out.print() 就能输出数据。
它是先转化成String,然后插入到表达式出现的地方。由于表达式的值会被转化成String,所以可以在一个文本行中使用表达式而不用去管它是否是HTML标签。表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
<%=表达式 %>
-
注释:
直接使用HTML 注释:<!-- 注释内容 --> (可以通过 HTML 源代码看到这些注释内容) 带有 JSP 表达式的注释:<!--HTML注释内容<%=JSP 表达式%>--> (HTML 源代码可看注释内容) 脚本语法中使用Java注释:<% //可使用java的三种注释 %> JSP隐藏注释:<%--注释内容--%> (不显示注释)
-
指令:JSP 指令在翻译阶段执行,设置整个 JSP 页面的属性。JSP 页面被执行时首先进入翻译阶段,程序会先查找页面中的 JSP 指令,并将它们转换成 Servlet。JSP 指令是在页面转换时期被编译执行的,且编译一次。
以<%@开始 , 以%>结束
-
page指令:用来定义当前页面的相关属性。通常放在 JSP 页面的顶部。
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
属 性 取 值 说 明 举 例 buffer none、缓冲区大小(默认值为 8kb) 指定输出流是否有缓冲区 <%@ page buffer=“16kb” %> autoFlush true(默认值)、false 指定缓冲区是否自动清除 <%@ page autoFlush=“true” %> contentType text/html; charset = UTF-8 等 指定 MIME 类型和字符编码 <%@ page contentType=“text/html;charset=UTF-8” %> errorpage 页面路径 指定当前 JSP 页面发生异常时,需要重定向的错误页面 <%@ page errorpage=“myerrorpage.jsp” %> 注意: isErrorpage 值必须为 true isErrorpage true、false(默认值) 指定当前页面为错误页面 <%@ page isErrorpage=“true” %> extends 包名.类名 指定当前页面继承的父类,一般很少使用 <%@ page extends=“”%> import 类名、接口名、包名 导入类、接口、包,后JSP内使用的类需要导入 <%@ page import = " java.util.Date" %> info 页面的描述信息 定义 JSP 页面的描述信息,可以使用 getServletInfo() 方法获取 <%@ page info=“页面信息”%> isThreadSafe true(默认值)、false 是否允许多线程使用 <%@ page isThreadSafe=“false” %> language 脚本语言 指定页面中使用的脚本语言 <%@ page language= “java” %> session true(默认值)、false 是否使用 session <%@ page session=“false” %> isELIgnored true、false(默认) 是否使用 EL表达式。为true时会当成字符串处理,false是计算表达式的值 <%@ page isELIgnored=“false” %> -
include指令:用于在 JSP 页面引入其它内容,如:JSP 文件、html 文件和文本文件等
<%@ include file="URL" %>
-
taglib 指令:引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-
-
动作:控制服务器的行为,JSP 动作在请求处理阶段执行,它们只有执行时才实现自己的功能。通常用户每请求一次,动作标识就会执行一次。利用 JSP 动作可以动态地插入文件、重用 JavaBean 组件、把用户重定向到另一个页面、为 Java 插件生成 HTML 代码等。
<jsp:action_name attribute = "value" />
动作 说明 语法 jsp:include 页面被请求时引入一个文件 <jsp:include page=“路径” flush=“是否刷新缓冲区默认false” /> jsp:userBean 实例化JavaBean <jsp:useBean id = “名” class = “类路径” scope= “作用域” />
作用域: page:在当前页面使用该 Bean 对象;
request:在一次请求范围内使用该 Bean 对象;
session:在一次会话范围内使用该 Bean 对
application:在整个应用范围内使用该 Bean 对象。jsp:setProperty 设置 JavaBean 的属性 ,在 <jsp:useBean > 标签外使用无论是否实例化对象都会执行,在内部使用只有实例化对象才会执行 <jsp:setProperty name = “bean的名” property = “属性的名” value = “值”/>property 的取值为 *
时,只要request中的参数名和属性一致,系统会根据名称来自动匹配。jsp:getProperty 获取 JavaBean 的属性 <jsp:getProperty name = “bean的名” property = “属性的名”> jsp:forward 访问当前页面时,可以转发到指令的页面 <jsp:forward page=“url”/> jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记 jsp:element 定义动态 XML 元素 jsp:attribute 设置动态 XML 元素的属性 jsp:body 设置动态 XML 元素的内容 jsp:param 动作用来传递参数信息,经常和其它动作一起使用 <jsp:forward page=“index.jsp”>
<jsp:param name=“username” value=“yu” />
</jsp:forward >
可以使用表达式获取name的值
<%=request.getParameter(“username”)%>
jsp页面的初始结构:
<%--jsp页面的大致框架,文件头解决编码等问题--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%String path = request.getContextPath();%> <%--jsp代码,获得项目路径--%>
<html>
<head>
<title>Title</title>
</head>
<body>
</body>
</html>