• JSP基本概念


    全称:java server pages (java服务器页面)

    1.作用:

    • 使得程序员专注于页面的编写,

    • 可以被tomcat翻译成对应的可执行的java文件。

    ⒉构成:

    • 是一种动态页面模板技术

    • 主体内容可以是html代码

    • 也可以在主体中随处插入java代码

    • 提供了九大内置对象方便程序员使用,其中有四个对象可以作为四大作用域使用

    3.执行流程:

    • 1.浏览器发送请求,访问jsp页面

    • 2.应用服务器接收请求,jspservlet会帮助我们查找对应的jsp文件

    • 3.应用服务器将.jsp文件翻译成.java文件

    • 4.jvm会将java文件编译成class文件

    • 5.应用服务器运行class文件,生成动态的html页面

    • 6.应用服务器将动态生成的页面发送给浏览器

    • 7.浏览器接收html页面,解析展示

    4.JSP的指令:

    作用:用来声明jsp页面的一些属性和动作

    格式:<%@指令名称 属性="值” 属性="值"%>

    常见的指令: 1.page:声明jsp页面的属性 language:声明jsp页面使用的嵌套语言

    contentType: 设置响应流的类型和编码格式

    pageEncoding: jsp页面的编码格式

    import: 导包

    session:设置jsp页面是否可以用session内置对象

    isErrorPage:设置是否是错误页面

    isELIgnored:设置是否忽略EL表达式

    2.include:静态包含

    格式:<%@include file="相对路径或者内部路径"%>

    作用:将其他页面的内容包含进来,一起进行编译和运行。

    3.taglib:导入标签库

    格式:<%@taglib prefix=“前缀名" uri="命名空间"%>

    作用:引入标签库到本页面,本页面中可以使用 前缀名:标签...

    5.jsp的脚本: <%...%>:编写java代码,作为页面的脚本

    <%=...%>:输出表达式,简化out.write() <%!. ..%>:全局声明,只能用于声明变量,会在所有脚本执行之前执行,可以在页面任意位置

    案例:使用表格展示用户的信息

    6.jsp注释

    html注释 :

    Java注释: // /**/

    jsp注释: <%-- --%>

    7.jsp的九大内置对象

    对象名内置对象数据类型
    输出对象outJspwriter
    请求对象requestHttpservletRequest
    响应对象responseHttpservletResponse
    应用对象applicationservletContext
    页面上下文pageContextPagecontext
    会话对象sessionHttpSession
    异常对象exceptionThrowable
    配置对象configeservletconfig
    页面对象pageservlet (this)

    out输出对象:向页面输出内容,类似servlet中的输出流对象writer

    request请求对象:

    • 1.设置请求编码格式

    • 2.封装请求数据

    • 3.获取请求数据

    • 4通过转发实现页面的跳转 可实现请求数据的共享

    response响应对象:

    1.通过Cookie绑定数据,然后通过response响应给客户端并保存,客户端可以通过request获取Cookie

    • Cookie是服务端产生的,发送给服务端保存,相当于本地的缓存,提高访问效率,但是安全性较低

    • Cookie可以以键值对的形式保存数据

    • Cookie可以设置最大有效的时间

    案例:使用cookie实现记住用户名

    2.设置响应的格式

    3.通过重定向实现页面的跳转

    8.jsp四大作用域

    • application:

      作用域是整个项目,项目重启或者关闭,数据丢失。如果项目不关闭,所有用户访问该项目的所有页面均可以访问application中的数据

    • session:作用域是一次会话,关闭浏览器数据丢失,如果会话不中断,本次会话访问的所有页面均可以获取session中的数据。

    • request:作用域是一次请求,发送另一次请求时,数据无法共享

    • pageContext:作用域是本页面,不同的页面无法共享数据

    9.转发和重定向

    • 1.转发是request对象的方法,重定向是response对象的方法。

      转发:request.getRequestDispatcher("目标页面路径").forward(request,response);

      重定向: response.sendRedirect("目标页面路径");

    • 2.转发url地址不改变,重定向url地址改变

    • 3.转发是服务器行为,重定向是客户端行为。

    • 4.转发是一次请求,重定向是两次请求

    • 5.转发只能是内部网址,重定向可以是外部网址

    • 6.转发请求数据不会丢失,重定向请求数据会丢失

    10.jsp的动作标签

    转发动作标签: < /jsp:forward>

    11.动态包含和静态包含的区别

    动态包含: < /jsp:include>

    • 两个jsp页面会独立翻译成java文件然后编译执行。

    • 在运行时,将目标页面的视图显示到本页面中来。

    • 动态包含不会真实的引入代码,而是引入视图。

    静态包含:<%@include file="相对路径或者内部路径"%>

    • 将目标页面的代码全部引入本页面。

    • 然后只翻译本页面为java文件,最后编译执行。

    • 静态包含会真实的引入代码。

  • 相关阅读:
    了解事件冒泡
    《c++程序设计》谭浩强课后习题答案 第二章
    详解Spark运行模式(local+standalone+yarn)
    文件的上传&下载
    std::future, std::async, std::promise
    Java——Spring的控制反转(一文详解IOC)
    05_对象性能模式
    扫盲低代码——构建的基本原理
    MySql数据库应该这样优化
    股票python量化交易020-双均线策略(上)
  • 原文地址:https://blog.csdn.net/lmdbhf/article/details/127664218