JSP原理及执行过程

  1. 流程图分析

  • 用户发起请求,用户通过浏览器访问jsp页面,浏览器将HTTP协议的请求部分发送到服务端.
  • 服务端获取请求部分,分析请求,发现本次的请求的的是jsp页面,jsp引擎按照内部规定,将jsp页面转换为一个servlet文件,并生成java文件,index_jsp.java,

    转换后的java文件中有init,service,destroy方法,在service方法中,将HTML标签原封不动输出到浏览器中,碰到java代码,复制到service方法中

JSP如何出现

如果开发中直接使用servlet对客户端响应,是难以维护的,因为它把html标签全部写到java文件中,更改一个小的部件,就要修改servlet文件.

JSP语法

  1. JSP脚本段

    1. 存放定义型的语句
    <%! %>
    1. 普通的Java语句
    <%  %>
    1. 可以计算出结果的表达式
    <%= %>
  2. JSP的注释

    <%-- JSP的注释 --%>
    • 注意:JSP中实现注释,优先使用JSP注释,效率高,转换为servlet的时候,不需要处理
  3. JSP指令

    1. 指令格式

      <%@ 指令名称 属性名1=”属性值1” 属性名2=”属性值2”  属性名3=”属性值3” %>
    2. 指令的分类(3个)

      • page:告诉JSP引擎如何将当前JSP转换为Servlet

        • import="cn.itcast.domain.Product 导入其他JAVA对象
        • language="java": 如果JSP中出现脚本,采用的语言类型,目前仅支持JAVA
        • contentType="text/html;charset=UTF-8":告诉浏览器,本次响应内容类型和编码
        • pageEncoding="UTF-8" :告诉JSP引擎,当前页面采用的编码格式
        • autoFlush="true": 是否自动刷新
        • buffer="8kb": response缓存区大小
        • session="true": 如果获取不到sessionid是否创建session
        • errorPage="error.jsp": 当前页面发生错误之后,处理错误页面
        • isErrorPage="true":当前页面是错误页面
      • include:包含其它文件
      • taglib:引用其它的标签库
    3. 内置对象(9个)

      • application
      • config
        • JSP相当于servlet可以为servlet配置参数,也可以为JSP配置参数
      • out
        • 2个out不是同一个对象,response对应的out优先级高
        • JSP中默认使用内置的out对象
      • request
      • response
      • session
      • exception
        • 需要将当前页面的page指令下设置isErrorPage="true"才能使用
        • 作用:开发阶段,通过JSP中获取exception中的信息判断JSP出错异常信息
      • pageContext
        • 获取其它8个内置对象
        • 当作域对象使用
        • 操作其它域对象
        • pageContext.findAttribute(name)
        • pageContext>request>session>application
      • page
        • 代表this(当前访问的servlet)
    4. JSP域对象

      • pageContext
      • request
      • session
      • application
    5. JSP动作

      <jsp:forward page=""></jsp:forward>
      <jsp:include page=""></jsp:include>

JavaWeb之JSP入门的更多相关文章

  1. JAVAWEB的基本入门(JSP、Tomcat)>从零开始学JAVA系列

    目录 JAVAWEB的基本入门(JSP.Tomcat) 使用idea创建web项目的两种方式 1.直接创建一个web项目(这样创建好的项目可以直接运行) 2.创建一个普通的java项目并配置web模块 ...

  2. JSP入门必读

    JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML    HTML擅长显示一个静 ...

  3. 九、JSP入门(1)

    JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...

  4. day11(jsp入门&Cookie&HttpSession&一次性图片校验码)

    day11 JSP入门   1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. ...

  5. JavaWeb之Servlet入门(二)

    1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...

  6. Jsp入门学习笔记

    #Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...

  7. JSP入门:介绍什么是JSP和Servlet(转)

    转自:http://developer.51cto.com/art/200907/134506.htm JSP入门:什么是jsp? JSP(Java Server Pages)是由Sun Micros ...

  8. Javaweb之Jsp

    1. JSP是什么? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. 2. JSP带 ...

  9. javaweb 与jsp页面的交互流程 (初次接触时写)

    javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...

随机推荐

  1. 手把手教你怎么用ArcgisOnline发布地图服务

    Arcgis推出了Arcgis Online,但是大家都不知道这是个什么东西,怎么用这个东西,今天这篇文章手把手的教你如何使用Arcgisonline发布地图服务. 一.ArcgisOnline简介 ...

  2. Getting started with Android and Kotlin (译文)

    原文链接 http://kotlinlang.org/docs/tutorials/kotlin-android.html 写在前面 Kotlin 是一个基于 JVM 的新的编程语言,由 JetBra ...

  3. 命令行工具jdb调试Java程序

    一直在gdb 下调试c/c++程序. 突然要写个java程序,又不是很喜欢使用eclipse,那怎么调试程序呢.你还可以使用 jdb. 它是jdk 内置的一个java debug工具.类似与 gdb. ...

  4. Arcgis Desktop连接GIS Servers报错“Proxy server got bad address from remote server ...”

    今天打开Arcgis Desktop时突然发现连接GIS Servers报错“Proxy server got bad address from remote server ...” 网上查找到解决方 ...

  5. next.js 简单使用

    1. 介绍 一个react.js 服务器端渲染开源项目(不只是服务器端渲染,直接也可以生成纯静态站点) 类似的解决方案有好多,比如react.js 自身的服务器渲染方案(但是使用起来就是比较怪异) g ...

  6. 1、Flume基础扫盲

    1.概述 Flume是一个分布式.可靠的和高可用的海量日志采集.聚合和传输的系统.支持在系统中定制种类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的 ...

  7. 数据的持久性存储(二)——CoreData(附Demo)

    CoreData是一款稳定.功能全面的持久性工具.(本文参考iphone开发3所写,比较简要,需详细了解可以参考iphone开发3) 首先创建一个新的项目CoraData,记得勾选Use Core D ...

  8. java练习,,,从键盘输入次数,输出最大值,和

    总结:你的关注,是我的动力 package com.b; import java.util.Scanner; public class YUIO { public static void main(S ...

  9. 模块的分类以及time与date time 模块 radom模块

    1.标准库,或者内置模块,python解释器自带的,比如sys,os模块 2.开源模块,或者叫第三方模块,python就强大在这里. 3.自定义模块. 标准库: 1.时间模块time与datetime ...

  10. Oracle redo与undo

    Undo and redo Oracle最重要的两部分数据,undo 与redo,redo(重做信息)是oracle在线(或归档)重做日志文件中记录的信息,可以利用redo重放事务信息,undo(撤销 ...