目录
1.JSP简介
JSP技术是基于Java Servlet和整个Java体系的Web服务器端开发技术
JSP是Java Server Pages的缩写,表示它是用Java写的Web服务页面程序
JSP网页是在传统的HTML文件中加入JSP标记或Java程序片段构成,JSP页面文件以“jsp”为扩展名进行保存。
当一个JSP页面第一次被访问时,JSP引擎将执行以下步骤:
(1)将JSP页面翻译成一个Servlet,这个Servelet是一个Java文件,同时也是一个完整的Java程序
(2)JSP引擎调用Java编译器对这个Servlet进行编译,得到字节码文件class
(3)JSP引擎调用Java虚拟机来解释执行class,主要调用_jspService()方法
JSP页面由两部分组成:
①JSP页面的静态部分,如HTML,CSS标记等,常用来完成数据显示和样式
②JSP页面的动态部分,如脚本程序,JSP标记等等,常用来对数据进行处理
2.小例子
在页面上实时显示系统时间
代码
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat"%>
<html>
<head>
<title></title>
</head>
<body>
<%
SimpleDateFormat f=new SimpleDateFormat("现在是yyyy年MM月dd日 E a hh点mm分ss秒");
%>
实时显示系统时间 <br>
<%--每隔1秒刷新一次页面,以便显示实时时间 --%>
<%
response.setHeader("Refresh", "1");
Date now = new Date();
out.println("当前时间是:"+now+"<br>");
out.println(f.format(now));
%>
</body>
</html>
效果
3.基础语法
3.1 JSP注释
①HTML注释 <!--注释-->
该注释是发给客户端的,查看网页源文件就能看到,但不会再屏幕上显示
②JSP注释 <%--注释--%>
JSP注释不会发给浏览器,在客户端完全不可见
3.2 JSP声明
JSP声明用于声明变量和方法 <%!Java变量或方法;%>
这样定义变量或方法的作用域属于网页层,在JSP整个网页中都能使用
声明的变量只初始化一次,且在所有运行这个JSP程序代码的线程中共享该全局变量
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>JSP测试</title>
</head>
<body>
<%! int count=0; %>
count=<%= count++%>
</body>
</html>
每次刷新的时候,count就会加1
3.3 JSP表达式
<%=Java表达式%>
表达式的值在运行后自动转化为字符串,然后插入到这个表达式在JSP文件的位置
不能用分号“;”来作为表达式的结束符
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>sum测试</title>
</head>
<body>
<%! int i=0;
public int sum(int a,int b){
return a+b;
}
%>
sum=<%=sum(12,2)%>
</body>
</html>
3.4 JSP程序段
JSP程序段实际上就是嵌入在页面中的Java代码
<%Java代码段%>
在JSP程序段中定义的变量,为servlet类中的_jspService()方法里的局部变量
每次有新的请求线程产生的时候,它都会重新创建和初始化
由于JSP代码将转换成_jspService()方法里的可执行代码,而Java语法不允许在方法里定义方法
所以,JSP代码段里也不能定义方法
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>JSP测试</title>
</head>
<body>
<table bgcolor="ddffdd" border="1" width="300px">
<% for(int i=0; i<5; ++i) { %>
<tr><td>循环值:</td><td><%=i%></td></tr>
<% } %>
</table>
</body>
</html>
3.5 JSP page指令
<%@ page 属性=“属性值”%>
涉及页面总体的设计,由JSP容器负责解释,作用范围为整个页面。