1.JSP简介
2.JSP原理
JSP 同 Servlet 一样,都运行在 Servlet 容器中。当用户第一次访问 JSP页面时, JSP 页面的处理过程:
当同一个 JSP 页面再次被请求时,只要该 JSP 文件没有发生过改动,容器将直接调用已装载的 .class 文件,而不会再执行翻译和编译的过程,从而大大提高了服务器的性能。此过程如下:
JSP 请求执行流程图
在 JSP 的执行过程中,JSP 文件会被翻译为 Servlet。可以通过查看tomcat 的临时工作目录 work。
在处理一个 JSP 页面请求时, html 和 JSP 元素的内容会转化为 Servlet ,然后再将结果作为响应内容发送给浏览器。
5.JSP脚本
所谓脚本代码(Scriptlet),是指 JSP 中的代码部分,在这个部分中可以使用几乎任何 Java 的语法。
语法:<% JSP 脚本 %>
示例:判断语句
<%if(request.getParameter("un")==null){ %>
null
<%}else{ %>
not null
<%} %>
6.JSP 表达式
JSP 中的表达式可以被看做一种简单的输出形式,需要注意的是,表达式一定要有一个可以输出的值 。
语法:<%= = 表达式 %>
示例: 使用 JSP表达式显示当地时间:
<%=(new java.util.Date()).toLocaleString() %>
创建showDate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"UTF-8">
Insert title here
<%
//创建Date类,以获取系统时间
java.util.Date date = new java.util.Date();
//输出当前时间
out.print("当前时间为:" + date.toLocaleString());
%>
<%
if (java.util.Calendar.getInstance().get(java.util.Calendar.AM_PM) == java.util.Calendar.AM) {
%>
上午好!
<%
} else {
out.print("下午好");
}
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"UTF-8">
Insert title here
<%
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
%>
<%=(i + "*" + j + "=" + (i * j))%>
<%
}
%>
<%
}
%>
运行
7.JSP 声明
JSP 中的声明用于声明一个或多个变量和方法,并不输出任何的文本到输出流。在声明元素中声明的变量和方法将在 JSP 页面初始化时进行初始化。
语法:<%! ! JSP 声明 %>
示例:声明变量和方法
<%! ! int i=0;%>
<%! ! public String f(){
return "test";
} }
%>
<%i++; %>
创建visitCount.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
"UTF-8">
Insert title here
<%-- 脚本注释 --%>
<%!int count = 0;
void setCount() {
count++;
}%>
<%
String date = new Date().toLocaleString();
%>
<%
setCount();
out.print("您是第" + count + "次访问页面");
out.print("访问时间是:" + date);
%>
8.JSP 注释
一般注释可分为两种:一种是在客户端显示的注释;另外一种就是客户端看不到,只给程序员专用的注释。
<%--看不到的注释--%>
JSP 不会对 <%-- 和 --%> 之间的语句进行编译,它不会显示在客户端的浏览器上,也无法从源文件中看到。
9.指令元素
(1)page指令
<%@page 属性列表 %>
<%@page language="java" contentType ="text/html; charset =UTF-8"%>
属性名 | 说明 |
---|---|
language | 设定JSP页面使用的脚本语言,默认为Java,目前只可使用Java语言 |
import | 指定导入的Java软件包或类名列表,若有多个类,中间用逗号隔开 |
contentType | 指定MIME类型和JSP页面响应时的编码方式,默认为“text/html;charset=ISO8859-1” |
pageEncoding | 指定JSP文件本身的编码方式,例如pageEncoding=“UTF-8” |
session | 指定JSP页面中是否使用session对象,值为“true |
errorPage | 设定JSP页面发生异常时重新指向的页面URL,指向的页面文件要把isErrorPage设成true |
isErrorPage | 指定此JSP页面是否为处理异常错误的网页,值为“true |
isELIgnored | 指定JSP页面是否忽略EL表达式,值为“true |
buffer | 指定输出流是否需要缓冲,默认值是8kb,与autoFlush一起使用,确定是否自动刷新输出缓冲,如果设成true,则当输出缓冲区满的时候,刷新缓冲区而不是抛出一个异常 |
autoFlush | 如果页面缓冲区满时要自动刷新输出,则设置为true;否则,当页面缓冲区满时要抛出一个异常,则设置为false |
import属性:
contentType 属性:
(2)include指令
<%@include file=" 文件
<%@include file="header.jsp"%>
演示:
创建head.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"UTF-8">
Insert title here
欢迎您!
创建tail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"UTF-8">
Insert title here
版权所有
免责申明:本网站内容的解释权归本站所有
创建includeDirective.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"UTF-8">
Insert title here
<%@include file="head.jsp"%>
CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.
<%@include file="tail.jsp"%>
<%@ taglib prefix=" 标签前缀 " uri =" 标签库 URI" %>
10.动作元素
动作:用于在页面被请求时引入一个文件;
动作:用于查找或实例化一个 JavaBean ;
动作:用于设置 JavaBean 的属性;
动作:用于输出某个 JavaBean;
动作:用于把请求转发到另一个页面。11.总结
、 、 、 、
。