一、JSP简介
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了再Java当中使用HTML标签。JSP是一种动态网页技术标准也是JavaEE的标准。JSP与Servlet一样,是在服务器端执行的。
JSP实际上就是Servlet。JSP这门技术的最大的特点在于:写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
二、JSP的作用
Servlet:服务器端的小应用程序。适合编写Java逻辑代码,如果编写网页内容------->费时费力,太苦
缺点:不适合设置HTML响应体,需要大量的response.getWriter().print("");
优点:动态资源,可以编程。
HTML:静态内容
缺点:HTML是静态页面,不能包含动态信息;
优点:不用为输出html标签而发愁。
jsp(java server pages):适合编写输出动态内容,但不适合编写Java逻辑
优点:在原有HTML的基础上添加java脚本,构成jsp页面。
三、JSP和Servlet的分工
JSP
作为请求发起页面,例如显示表单、超链接。
作为请求结束页面,例如显示数据。
Servlet
作为请求中处理数据的环节
四、JSP的组成
jsp=html+java脚本+jsp标签(指令)
jsp中无需创建即可使用的对象一共有9个,称为九大内置对象。
3种java脚本:
1.<%……%> java代码片段(常用),用于定义0-N条java语句,方法内写什么就可以在这里写什么,不能声明方法和类;
2.<%=……%> java表达式,用于输出(常用),用于输出一条表达式(或变量)的结束,print()括号中参数可以放什么,这里就能放什么;
3.<%!……%> 声明,用来创建类的成员变量和成员方法(基本不用),class A{ } 类体中可以放什么,这里就可以放什么。
五、JSP的执行流程及原理
jsp其实是一种特殊的Servlet
当jsp页面第一次被访问时,服务器会把jsp编译成java文件(这个java其实是一个Servlet类);
然后再把java编译成.class;
然后创建该类对象;
最后调用它的service()方法;
第二次请求同一jsp时,直接调用service()方法。
在Tomcat的work目录下可以找到jsp对应的.java源代码。
1、IE浏览器在访问JSP页面时,Web服务器是如何调用并执行一个jsp页面的?(Servlet)
第一次:转译(翻译) --> 编译 --> 执行
第二次:执行
2、Web服务器在执行jsp页面时,是如何把Jsp页面中的html排版标签发送到客户端的?
out.print("<…>"); 或者 out.write("<…>");
3、Jsp页面中的java代码服务器是如何执行的?
服务器 --> .java文件 --> .class文件 --> 结果out回客户端
4、Web服务器在调用jsp时,会给jsp提供一些什么java对象(内置对象)?
HttpSession、ServletConfig、ServletContent、request、response、out等等。
六、JSP的基本语法
Servlet:控制器。重点编写java代码逻辑。(获取表单数据、处理业务逻辑、分发转向)
JSP:代码显示模板。重点在于显示数据。(为什么显示数据不直接用.html文件呢?因为.jsp文件中可以插入java代码显示回显消息,简言之,jsp功能更强大)
1、JSP的模版元素:简言之就是网页的静态内容
例如:html标签和普通文本。
2、JSP的脚本
<%……%> java代码片段(常用),用于定义0-N条java语句,方法内写什么就可以在这里写什么,不能声明方法和类;
<%=……%> java表达式,用于输出(常用),用于输出一条表达式(或变量)的结束,print()括号中参数可以放什么,这里就能放什么;
<%= 2 + 3 %> 等价于out.print(2 + 3);
<%!……%> 声明,用来创建类的成员变量和成员方法(基本不用),class A{ } 类体中可以放什么,这里就可以放什么。
3、注释
JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量
网页注释: 特点:不安全,费流量
七、JSP隐式对象