目录
概述
页面元素及内置对象的概念
Servlet 与 JSP 作用总结
登录案例
一、概述内容
1.1 动态网页的执行原理
使用 Servlet 生成动态网页,任何网页的内容都可以通过 out.priintln() 一行一行的实现
执行步骤:
容器初始化 Servlet实例。根据网页相对应的请求方法,调用与之对应的 doXXX 方法,并初始化请求和响应对象,作为 doXXX 方法的参数使用
执行 doXXX 方法后,将响应对象的数据流写到客户端
游览器将收到的数据进行解析,显示给用户
问题提出?
Servlet 生成动态页面太麻烦了,其实大部分静态内容都是一行一行的输出
解决方案:
Java EE 提供了新的动态页面组件 JSP,可以更加便捷的生成动态网页
1.2 JSP 功能与特性
1.2-1 JSP 功能与特性
JSP (Java Server Page)是 JavaEE 规范中的 Web 组件,用来编写动态页面
JSP 运行在服务端,本质是 Servlet
JSP 文件以 .jsp 为后缀,存放在项目下的 WebContent 目录下
JSP 文件游览器可以直接访问
JSP 文件的内容是 HTML + Java 代码,静态部分使用 HTML 和 文本即可,动态部分使用 Java 代码
1.2-2 JSP 功能与特性
一个标准的 JSP 页面如下
pageEncoding="UTF-8"%>
Insert title here这里就是 JSP 的静态文本结构,比Servlet 简单多
特别强调,在 JSP 中, 动态部分是写 Java 代码为主 为脚本片段, 为输出表达式
1.3 JSP 的执行流程解析
JSP 的执行流程主要分为三个部分:
首先我们编写好了一个 index.jsp 文件是打开游览器运行,这时候进行了如下过程
Web 服务器找到了 index.jsp,然后会对其进行翻译,生成 index_jsp.java 文件,然后进入工作空间
\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost
编译、服务器(tomcat服务器) 会将 index_jsp.java 编译成 class 文件(类文件),翻译和编译过程遵守 Servlet规范,因此说 JSP 的本质也是 Servlet
运行:实例化并提供服务:服务器实例化类,调用类中的_jspService方法提供服务
我们可以在 生成的 index_jsp.java 文件中下的 _jspService 文件下可以看到一行行我们在 HTML 中编写的代码,全部都在这个文件中变成了 out.println(xxx)。静态内容都是用 out 输出,和 Servlet中输出的是一样的,而且
所有的 Java代码都直接翻译到相对应的位置。
总结一句话,JSP 的本质就是一个 Servlet,不过是服务器翻译生成了 Java 类,不用我们编写而已。但是也并不是 Servlet 没有任何用了,它还可以用来写一些后台逻辑等问题
提问 与 总结
为什么要用 JSP 组件?
答:Servlet 生成动态页面比较繁琐,使用 JSP生成动态页面比较便捷,其中静态内容可以使用 HTML 生成
JSP 执行的流程是什么?
答:JSP 的执行过程 翻译—>编译—>实例化—>提供服务
JSP 的本质就是 Servlet,不过服务器是将 JSP 进行了翻译和编译,可以说 JSP 也是Java 类
二、页面元素及内置对象概念
知识点:
脚本元素
表达式元素
模板元素
声明元素
内置对象概念
2.1 脚本元素
脚本元素可以包含 Java 代码
基本格式:
服务器翻译脚本元素的时候,将其中的 java 代码直接翻译到 _jspService中,如果语法错误,游览器就会显示对应的错误
2.2 表达式元素
表达式元素用来向叶面输出动态内容
格式为:,例如
获取当前的端口
服务器翻译表达式元素时,将把其中Java代码部分的返回值使用out.write语句输出,例如:
out.write("您的IP地址:");
out.print(request.getRemoteAddr() );
2.3 模板元素
模板元素指 JSP 中静态 HTML 或者 XML 内容;
在 JSP 中可以使用注释元素,有三种情况
格式为 ,JSP的注释只有在源代码中可见,翻译时已忽略
在 JSP 中,除了使用 JSP 注释外,还可以使用 HTML 注释