JSP的学习

jsp的学习

一,JSP认知

  1. 什么是jsp
    (1) 什么是jsp
    javaServer Pages,java的服务器页面,是一种动态网页技术标准
    (2)jsp文件的组成部分
    静态网页html,java代码,jsp的独有标记(丰富jsp功能的独有内容)
    (3)为什么要使用jsp
    动态网页,支持书写java脚本来操作数据,所以一旦设计到页面中数据的动态更新显示,那就可以使用jsp(前提是html是纯粹的html,不借助任何的前端框架,来进行数据操作)
  2. jsp文件的创建
    在web项目里面创建,和html一样
  3. jsp的运行机制
    (1)为什么第一次访问jsp页面的时候,会有一段时间的延迟,才显示jsp页面的内容,而之后的每一次访问都比较快速,瞬间就完成了页面的展示?
    答:当第一次访问jsp页面的时候,会有两步编译操作,首先将访问的jsp页面,借助tomcat内置的jsp编译器,将其编译成java类文件
    然后再将编译后的java类文件,再次编译成class字节码文件
    最终在jvm中运行
    (2)为什么从本质上说jsp就是一个servlet呢?
    从继承上看jsp最终是继承与servlet的
    从生命周期上看,发现jsp文件编译后的类,存在与servlet一致的生命周期方法,具备接收请求,响应数据的功能,所以jsp本质上就是一个servlet
    (3)浏览器不能直接渲染,加载jsp中页面的内容,但是我们可以通过浏览器访问jsp页面,看到了jsp中的页面内容,这是为什么?
    书写在jsp中的内容,最终在jsp编译后类中的jspService方法中,作为响应体数据,通过输出流,写出去了,jsp接收页面请求,响应数据的一个过程:当浏览器访问jsp页面时,就是在发送请求,jsp接收到请求时,编译成java类文件,在jspService方法内部,完成了本次的响应。
  4. Jsp和Servlet的区别
    (1)jsp虽然可以接收请求,做出数据响应,但是内嵌了html网页,所以在实际开发过程中倾向于做View视图,主要用于数据展示,请求发起。而Servlet在实际开发过程中做Controller控制器,主要用于接收请求,响应数据,方法调用,数据传递等。
    (2)Jsp中存在9大内置对象,来辅助Jsp的功能,而Servlet中没有内置对象的概念4
    (3)Servlet就是一个纯粹的类,而jsp编译后才是java文件,但是文件本身的后缀名为.jsp

二,JSP的基础语法

  1. java代码段如何书写
    语法格式:<% 书写java代码%>
  2. 脚本表达式的作用
    语法格式:<%=java代码(可以是有有返回值的语句方法,可以是表达式,可以是变量,可以是常量)%>
    注意: =后面书写的java代码必须有结果有值
    脚本表达式作用:将java代码的结果,输出到浏览器页面

三,Jsp指令

  1. page指令
    page指令的作用:描述当前jsp页面的指令
    (1)<%@ page contentType=“text/html;charset=UTF-8” language=“java” pageEncoding=“utf-8”% errorPage=“error.jsp”>
    contentType=“text/html;charset=UTF-8”
    响应数据的类型,既然jsp页面中的内容,最后会以流的形式一点一点响应给浏览器,我们需要指定响应数据的类型
    language=“java”
    当前jsp中内嵌的脚本语法是java
    pageEncoding=“utf-8”
    当前jsp页面文件的编码格式
    errorPage=“error.jsp”
    指定一个错误页面,当前的jsp文件中如果产生了异常错误,就会跳转到指定的错误页面内,进行处理,我们就可以调错,异常错误错误页面中,清晰可见。
    (2)import属性
    <%@ import=“cn.offcn.entity.Student”%>
    既然能够在jsp页面内书写java代码,势必要导入包,导包就要用到该属性
  2. include指令
    include指令:可实现页面包含
    <%@ include file=“content.jsp”%>
    在当前页面包含content页面
  3. tagilib指令
    taglib指令的作用:用于在jsp页面导入标签库
    <%@ taglib prefix="" uri=""%>
    prefix属性:为导入的标签库中的标签设置一个前缀别名,区分呢功能
    uri属性:导入的标签库的路径,从那个地方导入标签库;

四,jsp的九大内置对象

  1. 什么是内置对象
    内置对象就是jsp中自带的对象,这些对象不需要创建,不需要调用方法获取,可以直接使用
  2. 内置对象的作用
    内置对象的存在,丰富了jsp的功能操作,让jsp成为了一个完整的个体,Jsp中的所有功能,都离不开这九大内置对象
  3. 九大内置对象
    (1)application:ServletContext类型,全局管理者
    (2)config:Servlet,ServletConfig的配置对象
    (3)out:JspWriter,jsp中的输出对象
    (4)page:Object,代指当前的Jsp页面,相当于this
    (5)pageContext:PageContext类型,当前JSP页面的管理者对象
    (6)request:HttpServletRequest类型,请求对象
    (7)response:HttpServletResponse类型,响应对象
    (8)session:HttpSession类型,代表会话对象
    (9)exception:Throwable类型,异常对象,封装了所有的异常类型
    四个域对象 pageContext request session application
    作用域范围从小到大
    pageContext 当前页面
    request 当前请求
    session 仅限一次会话
    application 整个web项目运行期间
    1、request对象
    request 对象是 javax.servlet.HttpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。
    2、response对象
    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
    3、session对象
    session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。
    4、application对象
    application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
    5、out 对象
    out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
    6、pageContext 对象
    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
    7、config 对象
    config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
    8、page 对象
    page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
    9、exception 对象
    exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。exception对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面
    中处理相应的 exception 对象。

五,EL表达式

  1. 什么是EL表达式
    EL表达式是为了让jsp书写起来更加简单(Expression Language)
  2. EL表达式简化域对象数据的获取方式
    语法:$(域对象的关键字)
    之前
    request.getAttribute(“a”,a);
    现在
    ${aa};
  3. EL表达式获取对象中的属性值
    语法:${域对象存储对象的关键字.属性名}
    底层原理:找到实体类中的get方法

六,JSTL

  1. 什么是jstl
    jstl(java server pages standarded tag library)即JSP标准标签库,开发人员可以利用这些标签取代jsp页面上的Java代码,从而提高程序的可读性,降低程序的维护难度
  2. 作用
    JSTL的最大作用:用标签取代Jsp页面内书写的操作数据的java代码
    EL的最大作用:简化域对象中数据获取的方式
  3. JSTL的分类
    1、核心标签:核心标签库是整个JSTL中最常用的部分,主要由以下几部分组成:基本输入输出、流程控制、迭代操作和URL操作。负责Web应用的常见工作,如:循环、表达式赋值、基本输入输出等。
    2、I18N格式标签库:用来格式化显示数据的工作如:对不同区域的日期格式化等。
    3、XML标签库:用来访问XML文件的工作,支持JSP对XML文档的处理。
    4、数据库标签库:SQL标签库包括了大部分访问数据库的逻辑操作,包括查询、更新、事务处理、设置数据源等。可以做访问数据库的工作。
    5、函数标签库:用来读取已经定义的某个函数(主要是针对字符串的操作函数)。
  4. 它的导入
    在想要使用jstl标签的jsp页面内,使用taglib指令来导入标签库!
  5. 核心标签库的使用
    (1)流程控制c:if
    在这里插入图片描述
    (2)c:choose c:when c:otherwise,这是组合标签,一起出现
    在这里插入图片描述
    (3)支持进行迭代操作、循环操作的标签c:forEach
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值