一、Jsp九大内置对象
1.out对象:用于向客户端、浏览器输出数据。
2. request对象:封装了来自客户端、浏览器的各种信息。
3. response对象:封装了服务器的响应信息。
4. exception对象:封装了jsp程序执行过程中发生的异常和错误信息。
5. config对象:封装了应用程序的配置信息。
6. page对象:指向了当前jsp程序本身。
7. session对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数据
8. application对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。
9. pageContext对象:提供了对jsp页面所有对象以及命名空间的访问。
二、Jsp基础语法
Jsp脚本:语法:<% 代码片段 %> 这里需要注意的是在<% %> 区域内只能写java代码,不能写html标签等元素。
三、三大编译指令
1.page指令
语法:<%@ page attribute=“value” %>
作用:page指令主要用于定义jsp页面的使用说明以及一些依赖的信息,例如:页面的编码,是否启用session和导入一些java类等。
2.include指令
语法:<%@ include file=“url” %>
作用:在进行web开发时,一般的网页的head和foot是固定的,所以我们一般会把这部分代码提取出来供所有的页面引用。在jsp中可以通过include指令来包含其他文件。这里需要我们注意的是使用include指令引入的页面叫做静态包含,引入的文件内容会被翻译到源文件中去合成一个java文件然后编译,这种引入方式叫做静态包含。
3.taglib指令
语法:<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>
作用:taglib指令主要用于导入用户自定义的标签库。
四、JSP工作原理
客户端浏览器向服务器端发出request请求,服务端接受请求之后会先检查此JSP文件是否存在:
■ 若不存在,则直接报错;
■ 若存在,则接着检查所请求的这个JSP文件内容(代码)是否已经被更新,或者是否是JSP文件创建后的第一次被访问;
□ 如果是,那么这个JSP文件将会在服务器端的JSP引擎下转换成一个Servlet的java源文件;接着这个Servlet类会在java编译器的作用下被编译成字节码文件,并装载到JVM中去执行。
□ 如果不是,则直接由服务器端检索出它对应的Servlet实例来处理。
注意:JSP 文件不是在服务器启动的时候转换成 Servlet 类的。而是在被客户端访问的时候才可能发生转换的 ( 如 JSP 文件内容没有被更新等,就不再发生 Servlet 转换 )。
五、Servlet工作原理
当客户端浏览器向服务器请求一个Servlet时,服务器收到该请求后,首先到容器中检索与请求匹配的Servlet实例是否已经存在。
第一种情况:若不存在,则Servlet容器负责加载并实例化出该类Servlet的一个实例对象,接着容器框架负责调用该实例的init()方法来对实例做一些初始化工作,然后Servlet容器运行该实例的service()方法。
第二种情况:若存在,则容器框架直接调用该实例的service()方法。
在处理请求时:1. Servlet容器会创建一个请求对象ServletRequst,其中封装了用户请求的信息,以便处理客户端请求,此外还会创建一个响应对象ServletResponse,用于响应客户端请求,想客户端返回数据。
2. 然后Servlet容器把创建好的ServletRequst和ServletResponse对象传给用户所请求的Servlet。
3. Servlet利用ServletResponse包含的数据和自身的业务逻辑处理请求,并把处理好的结果写在ServletResponse中,最后Servlet容器把响应结果传给用户。
Servlet它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:1. 接收请求数据 2. 处理请求 3. 完成响应