华东师范大学-JavaEE技术与实践-毛宏燕
JSP
JSP第一部分
什么是JSP
- JSP全称Java Server Pages,是一种动态网页开发技术。
- 在网页HTML文件(
*.htm,*.html
)中加入Java程序片段(
Scriptlet)和JSP标签,构成了JSP网页。
<html>
<head>
<title>helloapp</title>
</head>
<body>
<b>Hello,<%= request.getParameter("username") %></b>
</body>
</html>
- JSP中Java代码标签,通常以
<%
开头以%>
结束。 - JSP可以通过网页表单获取用户输入数据、访问数据库、访问
JavaBeans组件,动态地创建网页。 - JSP可以在不同的网页中传递控制信息和共享信息。
JSP与HTML、Servlet比较
- 与纯 Servlet比较
JSP可以方便的编写HTML网页,不需要繁多的println语句。
JSP、Servlet都依赖于服务器环境。
任何JSP文件在后头都需要转换成Servlet - 与静态HTML比较
静态HTML不能操作动态交互信息。
JSP执行过程
JSP与Servlet
import java.io.*;
import java.util.Hashtable;
response.setContentType(“text/html; charset=GB2312” )
<%@ page import ="java.io.*,java.util.Hashtable" %>
<%@ page contentType=“text/html; charset=GB2312” %>
JSP示例(Hello.jsp)
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*"%>
<HTML>
<BODY>
<%
for ( int i=0; i<2; i++ )
{
%>
你好<br>
<%
}
%>
</BODY>
</HTML>
<HTML>
<BODY>
你好<br>
你好<br>
</BODY>
</HTML>
JSP语法
- 脚本程序可以包含任意量的Java语句、变量、方法或表达式
- 脚本程序的语法格式:
<% 代码片段 %>
- JSP指令
<%@ 指令语句%>
- JSP声明
<%! 变量/方法的声明 %>
- Java代码段
<% 代码段 %>
- JSP表达式
<%= 表达式 %>
- JSP内置对象 request,response,out,session……
JSP注释
<%-- 注释--%>
JSP语法——指令
- JSP指令用来设置和整个JSP网页相关的属性,如网页的编码方
式和脚本语言等。 - JSP指令的一般语法形式为:
<%@ 指令名属性="值" %>
- 常用的3种指令:
@page
JSP page指令:指定所使用的脚本语言、导入的软件包以及字符编码等。
<%@ page language ="java" %>
<%@ page import ="java.io.*,java.util.Hashtable" %>
<%@ page contentType="text/html; charset=GB2312" %>
@include
JSP include指令:声明包含的文件
<%@ include file= "文件相对url地址" %>
1.被包含的文件可以是JSP文件、HTML文件或文本文件, 包含的文件JSP文件的一部分。
2.开发网站时,如果多数JSP网页都包含相同的内容,可以把这部分相同的内容单独放到一个文件中,其他的JSP文件通过include指令将这个文件包含进来。
3.提高开发网站的效率,便于维护网页。
@session
session属性,控制页面是否参与HTTP会话
<%@ page session="true" %> <%-- 默认true --%>
<%@ page session="false" %>
注意:
默认为true,自动创建会话。
false值表示不自动创建会话,JSP页面转换成Servlet时,不能够访问Session变量。
JSP语法——声明
- JSP声明:声明JSP代表的Servlet类的成员变量和方法。
- 语法:
<%! declaration;[declaration;] …%>
- 例如:
<%! int i=0; %>
<%! String h=new String("hello"); %>
<%!
public String method1(int i){
if(i<3)return "hello!";
else return "I am sad";
}
%>
JSP语法—— Java程序片段
在JSP文件中,可以在<%
和 %>
标记间直接嵌入任何有效的Java语言代
码。嵌入的程序片段称为Scriptlet。
JSP语法—— 表达式
- JSP表达式:标记为
<%= 表达式%>
- 表达式的值被转化成String,显示在网页上。
- 例如,以下是hitcount.jsp的部分代码:
<%! int hitcount=0;%>
<% int count=0; %>
<H1>hitcount=<%= hitcount++ %> </H1><br>
<H1>count=<%= count++ %> </H1><br
hitcount全局变量
count局部变量
运行hitcount.jsp,思考其结果。
实例变量:一个JSP文件对应一个JSP实例,只有一个hitcount实例变量
局部变量:局部变量在方法中定义,Servlet容器每次调用jsp服务方法时,java虚拟机为局部变量分配内存,创建一个新的局部变量,方法执行完,会销毁该局部变量。
JSP语法—— 内置对象
- 编写JSP程序时,可以直接使用Servlet容器提供的内置对象。
- 使用这些内置对象的引用变量时不需要做任何变量声明。
• request javax.servlet.HttpServletRequest
• response javax.servlet.HttpServletResponse
• pageContext javax.servlet.jsp.PageContext
• application javax.servlet.ServletContext
• out javax.servlet.jsp.JspWriter
• config javax.servlet.ServletConfig
• page java.lang.Object(相当于Java中的this关键字)
• session javax.servlet.http.HttpSession
• exception java.lang.Exception
- 常用的内置对象
<%
String username = request.getParameter("username");
out.println(username);
%>