一、学习目标
1.JSP概述
2.JSP指令
3. JSP 隐式对象
二、重点知识
1.JSP概述:JSP是什么?
1)JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束;
2)JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP,它通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页;
3)JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息;
4)JSP可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。
1.1 JSP的优势
1)与ASP相比,JSP有两大优势:
a. 动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用;
b. JSP易于移植到非MS平台上;
2)与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句;
3)与SSI相比:SSI无法使用表单数据、无法进行数据库链接;
4)与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等;
5)与静态HTML相比:静态HTML不包含动态信息。
1.2 JSP 特点和结构
(1)特点:
1)java 服务端 页面: 在jsp上可以写java代码,也可以写html标记,它运行在服务器端。
2)jsp = java + html + jsp自身的一些东西。
3)jsp最大的特点:可以非常简单的书写页面html。
4)jsp其实它的本质是servlet: 可以看到jsp 继承了 HttpJspBase 继承 HttpServlet。
2. JSP 指令和基本语法
1)page指令
page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页面的默认语言等
基本语法格式:<%@ page 属性=“属性值” 属性=“属性值” 属性=“属性值” %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
(1)常用属性:
language: 默认语言java,也就是只有java一种语言。
pageEncoding:设置jsp的编码格式,一般情况下可以省略 contentType这个属性。
session属性:值得类型是boolean,如果对应的值是true,在jsp页面可以使用session对象,反之就不能使用。
import属性:导包,和在java里面使用一样,如果想使用某个类,前提导入某个类的包名。
2)include指令
在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。
基本语法:<%@ include file=“被包含文件的url” %>
创建两个jsp页面: date.jsp页面、include.jsp页面。
(2)使用jsp的include指令实现的包含,又称为静态包含,静态包含的特点:
1)把多个页面的内容,合并输出,比如把date.jsp 和 include.jsp内容合并输出。
2)多个页面对应生成一个java文件,编译后,对应一个class文件。
3. JSP 隐式对象
3.1 什么是隐式对象?
在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象。
jsp常见的九大隐式对象:
request: HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
response:HttpServletResponse,响应对象
session: HttpSession ,会话对象,它同时也是域对象,作用范围一次会话
application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
config:ServletConfig,配置对象
out:JspWriter,其实和PrintWriter作用差不多
page:Object ,代表当前jsp的页面对象
pageContext:PageContext ,jsp容器
exception:Throwable,异常对象,用来捕获异常信息
只有当前jsp页面有isErrorPage="true"这个属性时,才能使用exception对象。
(1) out对象
out对象在输出内容到网页上面去,最终是通过reponse缓冲区给输出的。
在chapter06项目的WebContent 目录下创建out.jsp文件。
(2) pageContext对象
第一个功能:获取其它八个隐式对象
1)获取请求对象:getRequest();
2)获取响应对象:getResponse();
3)获取输出对象:getOut();
第二个功能:操作其它三个域对象:request、session、application
pageContext也是一个域对象:作用范围在当前jsp页面。
- 操作其它三个域对象的方法:
1)存值:setAttribute(String key,Object obj,int scope);
APPLICATION_SCOPE :对应的是application
REQUEST_SCOPE: 对应的是request
SESSION_SCOPE:对应的是session
PAGE_SCOPE:对应的是自己 pageContext
2)取值:getAttribute(String key,int scope);
结论:在pageContext域对象使用findAttribute方法获取值,进行了全域查找,查找的范围:pageContext—>request----->session---->application
首先找域作用范围小的对象,如果有值获取到,停止向下查找,如果不存在对应的值,就继续向下寻找。
3.2 exception 对象
它是用来捕获异常信息的。
使用它通常会用到两个属性:
1)errorPage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的页面
4.JSP的运行原理
jsp—>java—> .class
1)通过浏览器首次访问jsp时
2)JSP容器会生成对应的Servlet文件,也就是.java文件
3)JSP容器,会把java文件编译对应的class文件
4)JSP容器,会生成对应的servlet对象
5)通过生成的servlet对象,去处理浏览器发送的请求,响应数据给浏览器。4.1JSP脚本元素
在jsp页面书写java的三种形式:
1)可以声明语句和方法
2)可以书写java代码段
3)可以书写表达式
三、实际运用
- 注意:在JSP创建类时,中文字符可能会出现乱码情况,这就需要我们在创类之前做一下配置准备,在打开Eclipsese后,点击工具栏window修改jsp的默认编码格式:window–>>preferenes–>> Web–>> JSP Files,选中后面带有UTF-8的编码进行修改。
1.使用JSP+JavaBean+Servlet【Model2/MVC】实现用户注册功能
首先编写UserBean类
代码示例:
package cn.itcast.chapter11.model2.domain;
public class UserBean {
private String name;
private String password;
private String email;
public String getName