JSP基本语法
1. JSP:Java Server Pages, 在服务器端运行的,Java动态网页技术标准。
JSP要以“.jsp”结尾。
JSP= HTML + Java代码。
2. JSP运行过程:实质上它还是一个Servlet
客户端请求某一个JSP页面时
--> Web容器查找这个页面所对应的Servlet实例是否存在
1) 不存在:JSP-->web容器把JSP转译成Servlet源文件-->编译成字节码 (Tomcat把它放置在work目录)
-->创建它的一个实例-->响应客户端
2) 存在:重用这个实例
-->作为一个Servlet对客户端请求做处理,并返回响应
Servlet是Java代码中输出HTML,JSP是HTML中嵌入Java代码。
3. JSP的基本组成元素: 作用 转译成Servlet后
1) 静态内容:HTML元素 展示页面内容 放置在service()方法中,当作out.write()的字符串参数。
★2) 表达式:<%= java表达式 %> 计算Java表达式的值,并输出在网页中 放置在service()方法中,当作out.print()的对象参数。
★3) 代码片段:<% java代码 %> 用于在JSP页面里嵌入一段Java代码 放置在service()方法中。定义的变量是局部变量。不能定义方法
4) 声明:<%! 定义成员变量或方法 %> 声明Java的成员变量和方法 当前Servlet类的成员来看待。
★5) JSP注释:<%-- 被注释的内容 --%> 把某些JSP代码注释掉 在JSP转译成Servlet源文件时被忽略。
区别于HTML注释:<!-- HTML注释 --> 转译时会当前out.write()的参数响应给客户端,只是被浏览器忽略。
6)JSP指令:<%@指令名 属性="值" %>
1) <%@ page import="类的全限定名" pageEncoding="字符集" %>
<%@ page errorPage="错误处理页面" %>
<%@ page isErrorPage="true" %>
2) <%@ include file="目标资源路径" %> 在转译期间就把目标资源的内容全部包含到本Servlet源代码中,静态包含。常用于包含静态页面
3) <%@ taglib uri="标签库描述符文件的标识" prefix="前缀名" %> 导入指定的标签库描述符文件
4. JSP标准动作:<jsp:动作名 属性="值">标签主体</jsp:动作名>
1) 在页面使用某个JavaBean对象:
<jsp:useBean id="存放名" class="类的全限定名" scope="page|request|session|application"></jsp:useBean>
<jsp:setProperty name="存放名" property="属性名" value="值"/>
<jsp:getProperty name="存放名" property="属性名"/>
2) 把目标资源的内容包含进来,动态包含。在包含JSP页面的时候用include动作
<jsp:include page="目标资源路径">
[<jsp:param name="参数名" value="值"/>]
</jsp:include>
3) 页面跳转:
相当于request.getRequestDispatcher("目标资源路径").forward(request,response);
<jsp:forward page="目标资源路径">
[<jsp:param name="参数名" value="值"/>]
</jsp:forward>
5. JSP九大隐式对象
1) out 就是JspWriter的一个实例,用来向客户端输出字符数据。
2) request 就是HttpServletRequest的一个实例。也叫请求作用域。
3) response 是HttpServletResponse的一个实例。
4) pageContext 页面作用域对象。可以获取所有的隐式对象。
pageContext.getRequest().getContextPath(); //获取Web应用的根路径名
5) session 是HttpSession的一个实例。会话作用域。
6) application 是ServletContext的一个实例。web应用上下文作用域。
7) config 是ServletConfig的一个实例。没什么用。
8) page 是当前JSP对应的Servlet的引用(this)。没什么用。
9) exception 是Throwable的一个实例。只有在<%@ page isErrorPage="true"%>情况才可以使用,代表传递过来的异常对象。
6 JSP页面中的对象存放的四个作用域:
1) "page": 页面作用域。当前页面可以使用。
2) "request": 请求作用域。在请求产生到结束之间的Servlet可以使用。
请求--> servlet1 --> 分派到Servlet2 -->返回响应 (√)
请求--> servlet1 --> 重定向到Servlet2 -->返回响应 (×)
3) "session": 会话使用域。某个客户端跟服务器的整个会话过程可以使用。
4) "application": Web应用上下文作用域。所有的Servlet都可以共享。
7 JSP编程模式:
Model1: JSP + JavaBean(DAO) --> DB 项目:Blog
JSP: 负责显示数据,负责业务流程的控制
JavaBean: 实体类,负责存储数据
DAO类,负责与数据库打交道
Model2: JSP + Servlet + JavaBean 项目:在线商城
JSP: 负责显示数据 View
Servlet: 负责业务流程的控制 Controler
JavaBean: 负责数据的处理 Model
数据从页面--->数据库: java.util.Date --> java.sql.Timestamp
new Timestamp(date.getTime());
数据库-->页面: java.sql.Timestamp --> java.util.Date
new Date(timestamp.getTime());
1. JSP:Java Server Pages, 在服务器端运行的,Java动态网页技术标准。
JSP要以“.jsp”结尾。
JSP= HTML + Java代码。
2. JSP运行过程:实质上它还是一个Servlet
客户端请求某一个JSP页面时
--> Web容器查找这个页面所对应的Servlet实例是否存在
1) 不存在:JSP-->web容器把JSP转译成Servlet源文件-->编译成字节码 (Tomcat把它放置在work目录)
-->创建它的一个实例-->响应客户端
2) 存在:重用这个实例
-->作为一个Servlet对客户端请求做处理,并返回响应
Servlet是Java代码中输出HTML,JSP是HTML中嵌入Java代码。
3. JSP的基本组成元素: 作用 转译成Servlet后
1) 静态内容:HTML元素 展示页面内容 放置在service()方法中,当作out.write()的字符串参数。
★2) 表达式:<%= java表达式 %> 计算Java表达式的值,并输出在网页中 放置在service()方法中,当作out.print()的对象参数。
★3) 代码片段:<% java代码 %> 用于在JSP页面里嵌入一段Java代码 放置在service()方法中。定义的变量是局部变量。不能定义方法
4) 声明:<%! 定义成员变量或方法 %> 声明Java的成员变量和方法 当前Servlet类的成员来看待。
★5) JSP注释:<%-- 被注释的内容 --%> 把某些JSP代码注释掉 在JSP转译成Servlet源文件时被忽略。
区别于HTML注释:<!-- HTML注释 --> 转译时会当前out.write()的参数响应给客户端,只是被浏览器忽略。
6)JSP指令:<%@指令名 属性="值" %>
1) <%@ page import="类的全限定名" pageEncoding="字符集" %>
<%@ page errorPage="错误处理页面" %>
<%@ page isErrorPage="true" %>
2) <%@ include file="目标资源路径" %> 在转译期间就把目标资源的内容全部包含到本Servlet源代码中,静态包含。常用于包含静态页面
3) <%@ taglib uri="标签库描述符文件的标识" prefix="前缀名" %> 导入指定的标签库描述符文件
4. JSP标准动作:<jsp:动作名 属性="值">标签主体</jsp:动作名>
1) 在页面使用某个JavaBean对象:
<jsp:useBean id="存放名" class="类的全限定名" scope="page|request|session|application"></jsp:useBean>
<jsp:setProperty name="存放名" property="属性名" value="值"/>
<jsp:getProperty name="存放名" property="属性名"/>
2) 把目标资源的内容包含进来,动态包含。在包含JSP页面的时候用include动作
<jsp:include page="目标资源路径">
[<jsp:param name="参数名" value="值"/>]
</jsp:include>
3) 页面跳转:
相当于request.getRequestDispatcher("目标资源路径").forward(request,response);
<jsp:forward page="目标资源路径">
[<jsp:param name="参数名" value="值"/>]
</jsp:forward>
5. JSP九大隐式对象
1) out 就是JspWriter的一个实例,用来向客户端输出字符数据。
2) request 就是HttpServletRequest的一个实例。也叫请求作用域。
3) response 是HttpServletResponse的一个实例。
4) pageContext 页面作用域对象。可以获取所有的隐式对象。
pageContext.getRequest().getContextPath(); //获取Web应用的根路径名
5) session 是HttpSession的一个实例。会话作用域。
6) application 是ServletContext的一个实例。web应用上下文作用域。
7) config 是ServletConfig的一个实例。没什么用。
8) page 是当前JSP对应的Servlet的引用(this)。没什么用。
9) exception 是Throwable的一个实例。只有在<%@ page isErrorPage="true"%>情况才可以使用,代表传递过来的异常对象。
6 JSP页面中的对象存放的四个作用域:
1) "page": 页面作用域。当前页面可以使用。
2) "request": 请求作用域。在请求产生到结束之间的Servlet可以使用。
请求--> servlet1 --> 分派到Servlet2 -->返回响应 (√)
请求--> servlet1 --> 重定向到Servlet2 -->返回响应 (×)
3) "session": 会话使用域。某个客户端跟服务器的整个会话过程可以使用。
4) "application": Web应用上下文作用域。所有的Servlet都可以共享。
7 JSP编程模式:
Model1: JSP + JavaBean(DAO) --> DB 项目:Blog
JSP: 负责显示数据,负责业务流程的控制
JavaBean: 实体类,负责存储数据
DAO类,负责与数据库打交道
Model2: JSP + Servlet + JavaBean 项目:在线商城
JSP: 负责显示数据 View
Servlet: 负责业务流程的控制 Controler
JavaBean: 负责数据的处理 Model
数据从页面--->数据库: java.util.Date --> java.sql.Timestamp
new Timestamp(date.getTime());
数据库-->页面: java.sql.Timestamp --> java.util.Date
new Date(timestamp.getTime());