一.JSP基本语法
1.JSP由来
1)为什么有JSP规范
Servlet技术产生以后,在使用时最麻烦的是使用大量的out.pirnt语句输出页面。这样的形式在系统变更、维护、预览效果时都不能方便快捷的完成任务,
于是推出JSP这种技术,用来将Servlet中负责显示的语句抽取出来。
2)什么是JSP
Sun公司制定的一种服务器端动态页面技术的组件规范。
JSP是一个以".jsp"为后缀的文件,在该文件中,主要是HTML和少量的java代码。
JSP文件会被容器转换成一个Servlet类,然后执行。
2.JSP编写规范
1)如何编写JSP
- step1,写一个以".jsp"为后缀的文件
- step2,在该文件中,可以包含如下的内容:
- -HTML(CSS,JavaScript)
- -注释
- Java代码
- 指令
- 隐含对象
2)JSP页面中的HTML代码
JSP页面中的HTML包括:
- HTML标记
- CSS
- JavaScript
像编写HTML页面一样编写即可
作用:控制页面在浏览器中显示的效果
转译成Servlet时的规则
- 成为Servlet中service()方法的out.write语句
3)JSP页面中的注释
语法:
- 1.<!-- 注释内容 -->
- HTML注释中的内容如果包含Java代码,这些Java代码会被执行
- 2.<!%-- 注释内容 -->
- JSP特有的注释,如果注释的内容中出现Java代码,会被忽略
4)JSP页面中的Java代码
JSP页面中Java代码,包含一下三种:
- JSP表达式
- JSP小脚本
- JSP声明
编写位置
- 页面的任意位置
作用
- 控制页面中可变内容的产生
5) JSP表达式
语法规则:
- <%=....%>
合法内容:
- 变量,变量加运算符组合的表达式,有返回值的方法
转译成Servlet时的规则:在service()方法中用out.print语句输出该变量、表达式、方法的值。
例如:
6) JSP小脚本
语法规则:
- <%....%>
合法内容:
- 能够写在方法里的Java代码片段都可以作为小脚本
转译成Servlet时的规则:
- 原封不动成为Servlet类的service()方法里面的一段代码
7) JSP声明
语法规则:
- <%!...%>
合法内容:
- 成员属性或成员方法的声明
转译成Servlet时的规则:
- 成为JSP页面转译成Servlet类中成员属性或成员方法
8) JSP页面中的指令
语法规则:
- <%@指令名 属性=值 %>
常用指令:
- page指令
- include指令
- taglib指令
作用
- 控制JSP在转译成Servlet类时生成的内容
page指令
- 作用:用于导包、设置页面属性
include指令
作用:
- 在JSP页面转换成Servlet时,能够将其他文件包含进来,可以包含JSP文件也可以是静态的HTML文件。、
- 通过该语句能方便的在每个JSP页面中包含导航栏、版权声明、logo等。
语法:
- <%@ include file = "url" %>
例如:
- <%@include file="header.html" %>
- <%@include file="footer.html" %>
9)JSP页面中的隐含对象
什么是隐含对象?
- 容器自动创建,在JSP文件中可以直接使用的对象
作用:
- JSP预先创建的这些对象可以简化对HTTP请求、响应信息的访问。
<!-- pageEncoding:声明此jsp文件的编码
contentType:声明此jsp向浏览器输出的内容格式 -->
<%@ page pageEncoding="utf-8" contentType="text/html" import="java.util.*,java.text.*" %>
<%
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String time = sdf.format(d);
%>
<p><%=time %></p>
<%@page pageEncoding="utf-8"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>第1个JSP</title>
</head>
<body>
<!-- 3.jsp声明 -->
<%!
public double bai(double d){
return d*100;
}
%>
<ul>
<!-- 1.jsp脚本 -->
<%
for(int i=0;i<10;i++){
%>
<!-- 2.jsp表达式 -->
<li><%=bai(Math.random()) %></li>
<%
}
%>
</ul>
<%@include file="time.jsp" %>
</body>
</html>