学习JSP一个是为Servlet作准备,自己对java web 和 java EE有很大的兴趣,此外它是一门脚本语言,也是三大动态网页技术之一。
- JSP全名Java Server Pages,其根本就是一个简化的Servlet,遵循javaEE标准,JSP与Servlet一样,是在服务器端执行的脚本。
- page指令 page指令位于jsp页面顶端,一个页面可以包括多个page指令,常用的有三个属性,language指定使用的脚本语言, import通过该属性引用脚本语言中使用到的类文件 ,contentType指定编码方式
- include指令 将一个外部指令嵌入到jsp页面中,同事解析这个页面的jsp语句
- 注释
//单行注释 /*多行注释*/ <%--JSP注释客户端不可见--%>
- JSP声明 在JSP页面中定义变量或方法
<%!java代码%>
- Jsp表达式 JSP表达式在页面中执行,表达式不以分号结束<%=表达式%>
JSP页面生命周期
用户发出请求,判断是否是第一次请求,如果是第一次请求,那么JSP引擎把JSP文件转化为一每个Servlet,生成字节码文件,并执行jspInit(),Servlet本质上也是一个java类,再接着解析执行这个类的jspService()方法内置对象 内置对象是web容器创建的一个对象,不使用new关键是也能使用
- web应用程序是一种请求响应模式,用户发送请求(request),服务器给用户响应(response)
- 缓冲区Buffer就是内存的一块区域用来保存临时的数据
- out内置对象
void println()向客户端打印字符串
void flush()方法将缓冲内容输出到客户端
int getBufferSize()获得缓冲区大小
int getRemaining()获得缓冲区剩余大小
boolean isAutoFlush()是否自动清除缓存
void close()关闭输出流
void clear()清除缓冲区的内容,如果在flush()之后调用,则会抛出异常。
void clearBuffer();清除缓冲区的内容
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="java.text.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%--声明语句--%>
<%! String s="张大脸";
int add(int x,int y)
{
return x+y;
}
%>
<h1 align="center"><%out.println(s) ;%></h1><hr><br>
<h1 align="center">美丽的<%=s %><%--表达式语句 --%>
</h1>
<hr>
<h2 align="center">x+y=<%=add(8,5) %></h2>
<hr>
<h1 align="center"><% SimpleDateFormat date = new SimpleDateFormat("yyyy年MM月dd日");
String s =date.format(new Date());
%>
日期为:<%= s %><%--输出当前日期 --%>
</h1>
<hr>
<h1 align="center">out内置对象</h1>
<p align="center"><%out.println("<h2>静夜思</h2>");
out.println("<h3>床前明月光</h3>");
out.println("<h3>疑似地上霜</h3>");
out.flush();//将缓冲内容输出到客户端
out.println("<h3>举头望明月</h3>");
out.println("<h3>低头思故乡</h3>");
%></p>
<h1 align="center">缓冲区大小:<%=out.getBufferSize() %>byte</h1>
<h1 align="center">缓冲区剩余大小:<%=out.getRemaining() %>byte</h1>
<h1 align="center">是否自动清除缓冲区:<%=out.isAutoFlush()%>byte</h1>
</body>
</html>