zoukankan      html  css  js  c++  java
  • JSP基础

    1.什么是JSP?

      JSP的全名是 java server page 即Java服务器端的页面,是一种能够动态生成网页数据的技术。它特点是html和java程序并存,在jsp页面第一次被访问时,服务器会将jsp文件转译成Servlet。

    2.JSP的实现原理

      jsp本质上还是Servlet。在第一被访问时,会被服务器转译成Servlet。以Tomcat为例,在Tomcat的配置文件web.xml中有以下这么一段代码

    <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    </servlet>
    <servlet-mapping>
          <servlet-name>jsp</servlet-name>
         <url-pattern>*.jsp</url-pattern>
         <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>

    当访问以".jsp"或".jspx"为后缀的页面时,Tomcat就会去调用一个Servlet (org.apache.jasper.servlet.JspServlet),这个Servlet被称为JSP引擎,用来将jsp中的内容转译成Servlet。转译后的Servlet类文件被存放在work文件夹中。

    3.为什么要使用JSP

      Servlet在需要动态改变页面内容时较为麻烦,需要将html代码通过ServletResponse对象字符串拼接的方式输出给浏览器,代码编写困难。而JSP可以将html和java代码整合起来,服务器会帮我们转成Servlet,代码编写简单。但相对的JSP在java逻辑处理方面比较麻烦,而Servlet正好可以弥补这一缺点,所一般采用 jsp+servlet+javabean。

    4.jsp页面组成(A)

    jsp 页面包括以下内容:

    1.静态内容(html代码)
    2.注释
      <!-- html注释 -->数据不显示在页面中,jsp引擎还是会编译
      <%-- jsp注释 --%> jsp引擎还是会编译
    3.脚本(java代码,位于方法中)
      <% java代码 %>
      转译后代码位于_jspService()方法中(不能定义方法、变量为局部变量)

    4.声明(也是java代码,位于类中)
      <%! java代码 %>
      转译后代码位于serlvet的类中(可以定义方法。变量为全局变量)

    5.表达式(在页面中输出)
      <%= 变量或方法 %>
      输出变量的值或调用方法并输出返回值

    6.指令

    <%@ 指令名 属性=值 %>
    page指令
      pageEncoding 设置页面编码类型
      contentType 设置内容的类型及编码
      import 导入某个包/类
      session 表示是否在访问页面时,创建session对象,默认值为true
      isELIgnored 表示是否忽略EL的解析
      isErrorPage 表示该页面是处理异常的页面。
    include指令
      file 引入一个jsp页面在当前页面中,相当于将两个jsp页面整合成一个Servlet,两个页面中不允许出现重复的变量名


    taglib指令 导入标签库
      uri  标签库位置
      prefix 标签库前缀

    5.动作语法

      jsp:forward 请求转发,使用该标签时注意标签里不能有任意字符,除非需要传参,可以使用<jsp:param>标签传参
      jsp:include 动态导入,导入一个服务器内部jsp页面

    6.静态导入和动态导入

      静态导入:
      <%@ include file="logo.jsp" %>
        – 是在servlet引擎转译时,就把此文件内容包含了进去(两个文件的源代码整合到一起,全部放到_jspService方法中),所以只生成了一个servlet,所以两个页面不能有同名的变量。
        – 运行效率高一点点。耦合性较高,不够灵活。

      动态导入:
      <jsp:include page=“logo.jsp”></jsp:include>
        – 是在servlet引擎转译后,请求的此页面,所以共生成了两个servlet,所以可以有同名变量。
        – 生成两个servlet,相当于两个类之间的调用,耦合性较低,比较灵活。

    7.九大内置对象

    jsp九大内置对象:4+2+3
    四大作用域:
      pageContext --> javax.servlet.jsp.PageContext
        代表当前页面,作用域:一个页面
      request --> HttpServletRequest
        来自客户端的请求,作用域:一次请求中所有Servlet
      session --> HttpSession
        代表一次会话,作用域:一次会话中所有Servlet
      application --> ServletContext
        代表当前web站点,作用域:当前项目中所有Servlet

    两个输出
      out --> javax.servlet.jsp.JspWriter
        可以直接向客户端写一个由程序动态生成HTML文件
      response --> HttpServletResponse
        对客户端的响应

    三个打酱油的
      page --> Object
        配置信息,很少使用
      config --> ServletConfig
        当前页面对象,基本不用
      exception --> Throwable
        异常对象,根本不用

  • 相关阅读:
    Java自学-数组 创建数组
    Java自学-控制流程 结束外部循环
    Java自学-控制流程 break
    Java自学-控制流程 for
    Java自学-控制流程 continue
    Java自学-控制流程 switch
    Java自学-控制流程 If
    计算机组成原理之流水线处理器
    计算机组成原理之算术逻辑单元
    计算机组成原理之指令系统
  • 原文地址:https://www.cnblogs.com/gaojinshun/p/10877468.html
Copyright © 2011-2022 走看看