简单介绍jsp技术;–了解
1)说明:
a、jsp是服务器端运行的脚本语言,本质是servlet;
b、先有servlet,后有jsp;使用servlet实现动态网页比较麻烦,所以才出现jsp技术方便做动态页面
c、可以认为servlet是java代码中包含html(使用输出流以字符串的形式输出html代码),jsp是html中包含java代码(使用<%...%>包含java代码);
d、在tomcat的work文件夹中,有jsp翻译之后生成的.java文件和编译之后生成的.class文件;
2)jsp的运行原理:
a、当服务器第一次执行jsp时,会把jsp翻译为类似servlet的java代码;然后编译java代码生成class类文件;
b、再执行类文件生成html代码,以响应的形式返回给客户端浏览器显示;
c、以后再访问该jsp时,直接执行类文件生成html结果,不需要再进行翻译、编译的过程了;
d、当jsp源代码被修改后,又会重新进行翻译、编译的过程;
3)jsp页面的组成:
a、模板文本:html、js、css、页面中的文本等内容;
b、jsp元素:以<%......%>包围的内容;
4)jsp元素种类:
a、jsp脚本:包含jsp脚本(<%......%>)、jsp表达式(<%=......%>)、jsp声明(<%!......%>)、jsp注释(<%--......--%>);
b、jsp指令:包含page指令(<%@ page ......%>)、include指令(<%@ include ......%>)、taglib指令(<%@ taglib ......%>);
c、jsp动作:包含<jsp:forward ...>、<jsp:include ...>等
7)jsp的9个内置对象:--常见的笔试题,回答时要对内置对象做简要说明;
pageContext:页面上下文对象,只在当前页面有效,可以存取数据;
request:请求对象,相当于servlet中的HttpServletRequest对象;
session:会话对象,相当于servlet中的HttpSession对象;
application:应用对象,相当于servlet中的ServletContext对象;最大范围的存储对象;
response:响应对象,相当于servlet中的HttpServletResponse对象;
out:输出流对象,相当于servlet中的resp.getWriter()获取的对象;
config:配置对象,描述当前jsp的配置信息;
page:页面对象,表示当前jsp;
exception:异常对象,有isErrorPage="true"的jsp才能使用本对象;
8)jsp中的四个作用域对象(都可以存取数据):
pageContext:只在当前页面有效;
request:在请求范围内有效;
session:在会话范围内有效;
application:在整个应用范围内有效;
9)EL表达式
a、表达式语言,可以获取作用域中存储的数据、可以进行简单的运算、可以获取web项目中常用的开发对象、可以调用java方法(不建议);
b、语法:${表达式}
表达式可以是常量、变量,表达式中可以使用EL隐含对象、EL运算符号和EL函数
c、EL表达式可以通过“.”或者“[]”来导航数据;
d、EL表达式可以替代我们要在jsp中写的jsp表达式的代码;
10)JSTL:
a、当时的sun官方不建议在jsp中嵌入大量的java代码,这样会导致页面混乱;sun提供了标签库这个概念,允许程序员自定义类似于html的标签,通过使用标签来替代嵌入的java代码;
b、sun官方也提供了一套标准的标签库,供程序员调用,就是jstl;
c、jstl包含5个标签库,我们常用下面两个:
核心标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
I18N标签库(国际化标签库):<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
d、jstl的使用:
需要在项目中先引入jstl的jar文件;
然后在jsp中通过<%@ taglib%>指令引入标签库文件;
最后在页面中使用标签的功能;
e、条件标签:<c:if>
语法:<c:if test="表达式">...标签中的内容...</c:if>
说明:当表达式结果为true时,标签中的内容才显示到页面
f、迭代标签:<c:forEach>
语法:<c:forEach item="数组或集合" var="变量名"> ${变量名.属性} </c:forEach>
说明:遍历数组或集合,取得每个元素使用变量名表示,然后在标签里使用该变量;
g、日期格式化标签:<fmt:formatDate> --掌握
语法:<fmt:formatDate value="date值" pattern="格式字符串"/>
说明:对date值按照指定格式进行格式化为字符串;
11)jsp也可以充当后台提供服务的功能(简单演示登录功能);