一、JSP简介
1.JSP(Java Server Page)是Java中运行于服务器端的页面技术,是Servlet技术的升级版。JSP在运行时,需翻译、编译,再运行,其本质就是一个Servlet。
2.作用:用于编写 展示数据的页面,即替换Servlet(xxxView),还可以生成动态页面。
3.位置:创建位置在WebRoot下
4.编程组成: HTML标签+java代码
二、Servlet开发与JSP对比
开发 | 修改 | 访问 | 标签 | |
---|---|---|---|---|
servlet | 继承HttpServlet+配置web.xml | 需重新部署、重启服务器 | http://localhost:1997/项目名/url-pattern | out.println("…") |
jsp | 可直接在HTML中写java代码 | 直接刷新页面即可 | http://localhost:1997/项目名/xxx.jsp | 直接书写 |
三、JSP页面核心语法
1.脚本元素
- 表达式脚本
①语法: <%= java代码 %>
②作用:展示表达式的结果
③注意:表达式脚本中的表达式结尾不能写“;” - 声明脚本
①语法:<%! 变量 | 函数 %>
②作用:声明函数和变量
③注意:声明脚本中不能调用函数,外部可以调用,其翻译后处于java类以内方法以外 - 普通脚本
①语法:<% java代码 %>
②作用:用于书写普通java代码。如循环、分支语句等。
③注意:普通脚本中不能书写html标签,其翻译后在java中方法内部
2.JSP执行原理
① 翻译:服务器接收一个JSP请求,会按照自己的规则将对应JSP文件翻译成.java源文件。
声明脚本中的内容 处于.class文件中的类以内,方法以外,即声明的变量为成员变量,方法为普通方法
普通脚本中的内容 处于.class文件中的 方法以内
② 编译:将翻译出的.java源文件,编译成.class字节码文件
③ 执行:最终执行的是.class文件
【问】:JSP的本质就是一个Servlet?
【答】:是,因为JSP在执行的时候会翻译成.java的程序,这个Java程序本质就是个Servlet。JSP必须运行于WEB服务器中。
【问】:JSP执行效率与HTML执行效率哪个高?
【答】: HTML效率高。 因为JSP执行需要翻译、编译,这个过程需要浪费一定的时间的,而HTML可直接执行。
3.指令元素
1)作用:用于设置当前JSP页面的一些基本元信息,或一些跳转动作。
2)页面指令:<%@ page 属性=值 … %>
① pageEncoding 属性 : 用于设置当前JSP页面书写内容的编码格式
② contextType 属性 : 用于设置未来JSP翻译成的.java后,使用IO流向页面响应的类型和编码格式。
默认为 text/html,charset=utf-8
③ session属性 :值为布尔值,代表当前JSP翻译成的.java文件是否自动创建session对象
④ language属性 :用于指定当前JSP页面的编程语言,默认java,目前仅支持java
⑤ import属性 :用于导包
⑥ isELIgnored属性:值为布尔值,代表当前页面是否忽略EL表达式,配合EL表达式使用
⑦ errorPage : 值为页面的相对路径,指定一个跳转的错误页面。
⑧ isErrorPage : 指定当前JSP页面是否作为 错误页面
3)包含指令:可以将另一个JSP页面包含到当前JSP页面
① 语法:<%@ include file=“指定被包含页面的路径” %>
②静态包含:包含的是页面的初始内容
③动态包含:将各个页面的执行结果最终包含到一个页面上展示
语法:< jsp:include page=”被包含页面的路径” >
四、 JSP页面9大隐含对象 【重点】
- request :相当于Servlet中的request对象
- response :相当于Servlet中的response对象
- session :相当于S二了图中的session对象
- application : 相当于Servlet中的ServletContext作用域对象
- pageContext :是一个作用域,作用范围仅限于当前页面有效
1)使用:
① 存值:pageContext.setAttribute(String name,Object value);
② 取值:pageContext.getAttribute(String name);
2) 可向其他作用域存储命名属性 - config :
- out
- exception
- page
五、JSP整合WEB项目开发
- 开发流程
- 创建表
- 封装实体类
- 编写DAO
- 编写Service
- 编写Servlet ,xxxAction类型
- 编写JSP展示数据