JSP

作者: 廖马儿 | 来源:发表于2017-02-09 14:40 被阅读65次

    1.jsp = html + java(使用特殊标签tag引入)的动态资源的技术。

    jsp就是servlet。虽然作用一样,可是使用场景不一样。

    使用jsp开发的web应用是跨平台的,既能够在linux下运行,也能在其他操作心痛运行。

    可以把jsp页面想象为html页面,它的地位相当于html页面。jsp在tomcat中当做html访问。

    Jsp特点:
    1))jsp运行:
    必须交给服务器运行。
    work目录:tomcat服务器存放Jsp运行时的临时文件。

    2)jsp既可以写html代码也可以写java代码
    (html页面不能写java代码,而jsp页面可以写java代码)

    2.jsp放在WebRoot下,servlet 放在src下面。

    3.JSP(Java Server Page) 和 Servelet 是Java EE 的两个基本成员。二者本质相同,jsp最终也是要被编译成Servlet之后才能运行。

    4.web应用和web.xml文件

    6D8A92BE-43CE-4BE0-B3D5-4DC903A829AD.png

    src文件夹:存放java源文件
    WebRoot: Web应用的根目录
    META-INF: 系统自动生成,存放系统描述信息
    WEB-INF:该目录中内容不能对外发布,里面的内容,外部不能访问。
    lib文件夹:存放以jar/zip形式表现的库文件
    web.xml:Web应用的初始化配置文件。

    5.jsp的四种基本语法

    a. jsp注释: <%-- 注释内容 --%>
    b. jsp声明: <%! 申明部分 %>
    声明部分可以使用private, public等访问控制符修饰,但是不能使用abstract
    c. 输出jsp表达式: <%= 表达式 %>
    d. jsp脚本: <% 脚本 %>
    在脚本部分可以申明变量,但是不能使用访问控制符来修饰。

    1. jsp的7个动作指令

    1)forward

    <jsp:forward page="result.jsp">
        <jsp:param name="aa" value="bb" />
    </jsp:forward>
    

    使用forward指令后,浏览器地址不会发生变化,并且不会丢失请求的参数。

    1. include

      <jsp:include page="result.jsp">
      <jsp:param name="aa" value="bb"/>
      </jsp:include>
      动态Include导入和上面的静态Include导入的方法不同之处:

    • 静态导入时将2个页面融合为一个servlet
    • 静态导入时候编译指令会起作用
    • 动态包含还可以增加额外的参数

    include和forward很相似,区别在于Include是局部的引入


    学习目标:

    1. 掌握B/S编程技能(html, js, jsp)
    2. OO思想(面向对象思想)编写后台业务代码
    3. 具备基本的调试B/S系统的能力
    4. 熟练掌握JDBC和集合编写数据库访问程序

    掌握B/S开发的基本概念:

    1. 动态网页 vs 静态网页
    2. B/S程序 vs C/S程序
    3. B/S开发设计的技术内容

    开发jsp动态网站的基本步骤:
    1)掌握web系统的工作目录
    2)创建按web工程与html,js文件
    3)实现web工程的部署与运行
    4)进行web系统的调试与排错

    部署Web项目

    http://www.thinksaas.cn/topics/0/350/350000.html

    Intellij IDEA 创建Web项目,并且在Tomcat中部署运行。

    6.语法

    1)jsp的模板

    jsp页面中的html代码就是jsp模板。
    2)jsp的表达式

    语法:<%= 变量或者表达式 %>   作用:可以向浏览器输出信息
    表达式的原理就是翻译成 `out.print("内容")`,通过该方法向浏览器写出内容。表达式后面不需要加分号。
    

    3)jsp的脚本

    语法:<% java代码 %>
    作用:执行Java代码。穿插html代码。
    注意:a.原理吧脚本中Java代码原封不动拷贝到_jspService方法中执行。
    
    <!-- 穿插html代码 -->
    <% for (int i = 0; i < 5; i ++){%>
    <h2>标题<%= i %></h2>
    <% } %>
    

    4)jsp的声明

    语法:<%!   变量或者方法 %>
    脚本中不能声明方法。
    jsp的声明中不能重复定义翻译好的一些方法。
    注意:
    变量翻译成成员变量,方法翻译成成员方法。
    
    <!-- jsp声明 -->
    <%!
        String name = "聊么人";
        public String getName() {
            return name;
        }
    %>
    

    5)jsp的注释

    语法:<%-- jsp注释 --%>
    html的注释不能注释jsp的内容,应该用jsp注释方法注释。
    

    6)jsp的指令:一共有三个指令。

    a) include 指令:也叫静态的包含指令。
    
    语法:`<%@include file="common/header.jsp" %>`
    作用:包含其他页面。在当前页面包含其他页面。
    原理:把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并成翻译成一个java源文件,再编译运行。这种包含叫作静态包含(袁爱民包含)。
    如果使用静态包含,被包含的页面中就不需要再出现全局的html标签了。
    
    b) page 指令
    
    作用:告诉tomcat服务器如何翻译jsp文件。
    
    <%@ page contentType="text/html;charset=UTF-8" -->这个charset表示服务器发送浏览器的数据类型和内容编码
         language="java"  --> 告诉服务器使用什么动态语言来翻译jsp
         pageEncoding="utf-8"  --> 告诉服务器使用什么编码翻译jsp文件。
         import="java.util.*"  --> 告诉服务器java文件使用了什么包
         buffer="8kb" --> 缓冲内存大小
         errorPage="error.jsp"
    %>
    c) taglib 指令
    

    7.jsp的执行过程

    8.为什么Jsp就是servlet?

    jsp翻译的java文件,间接集成了HttpServlet这个类。

    servlet生命周期:
    1)构造方法(第1次访问才要做的)
    2)Init方法(第1次访问才要做的)
    3)service方法
    4)destroy方法
    jsp的生命周期:
    1)翻译:jsp->java文件
    2)编译:java文件->class文件(servlet程序)
    3)构造方法
    4)init方法
    5)service方法
    6)destroy方法

    图片.png

    servlet的技术可以用在jsp技术中。
    jsp的技术并不是全部适用于servlet程序。

    9.异常相关的:

    errorPage:指定当前jsp页面的错误处理页面。
    isErrorPage:是否是错误页面
    
    500.jsp
    404.html
    

    10.jsp的内置对象(重点)

    内置对象:
    在jsp开发中,会频繁使用到一些对象:
    HttpSession,ServletContext,HttpServletRequest.
    如果我们每次要使用这些对象去,都去创建这些兑现干就显得非常麻烦。

    session可以直接使用。
    在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些创建好的对象就叫内置对象。

    JSP有9大内置对象:

    内置对象名    类型
    request        HttpServletRequest
    response     HttpServletResponse
    config          ServletConfig
    application  ServletContext
    session        HttpSession
    exception    Throwable
    page            Object(this)
    out               JspWriter 
    pageContext  PageContext
    

    1)Out对象:

    out对象类型,JspWriter类,相当于带缓存的PrintWriter.

    jsp页面的缓存机制:

    什么情况缓存区内容会向外写出:
    1)缓存区满了
    2)刷新缓存区
    3)关闭缓冲区
    4)执行完jsp页面

    图片.png

    PrintWriter一写就写到浏览器中了。
    2)pageContext对象

    pageContext对象的类型是PageContext,叫作jsp的上下文
    1)可以获取其他八个内置对象
    2)可以从四个域中获取数据:

    pageContext.getAttribute("name", 域范围常量)
    

    3)自动在四个域中搜索数据

    jsp的四个域对象:

    pageContext: page域
    request:request域
    session:session域
    application:context域

    1)域对象作用:
    保存数据 和 获取数据, 用于数据共享
    2)域对象方法:
    setAttribute()
    getAttribute()
    removeAttribute()
    3)域对象作用范围:
    page域:只能在jsp页面中使用
    request域:只能在同一个请求中使用
    session域:只能在同一个会话(session对象)中使用
    context:只能在同一个web应用中使用。

    JSP 页中 requestScope是什么意思?该怎么用?

    表示变量的作用域,一共4种。pageScope: 表示变量只能在本页面使用。requestScope:表示变量能在本次请求中使用。sessionScope:表示变量能在本次会话中使用。applicationScope:表示变量能在整个应用程序中使用。

    ${requestScope.message} 
    

    相关文章

      网友评论

        本文标题:JSP

        本文链接:https://www.haomeiwen.com/subject/kgtkittx.html