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. 解决AndroidStudio导入项目在 Building gradle project info 一直卡住

    Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果.gradle官网虽然可以访问,但是速度连蜗牛都赶不上.. ...

  2. 深度学习(六十二)SqueezeNet网络设计思想笔记

  3. 如何快速上手.net下单元测试工具NUnit?

    NUnit基本使用 准备知识: 读此博文需要了解单元测试基本概念及NUnit的的安装. 传送门:单元测试之道(使用NUnit) 1.常见的错误 当学习一个新东西时,先学习错误,是最快的方式. 1.1 ...

  4. MyBatis典型的错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    XXXmapper.java(接口) XXXmapper.xml(结果集映射) //此两个文件要在统一包下,且xml中的namespace是唯一的,为了区分须写成 该xml的全路径

  5. 使用JspSmart文件上传

    index.html [html] view plaincopy     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transition ...

  6. 迭代器.NET实现—IEnumerable和IEnumerator (foreach实现)

    能用foreach遍历访问的对象需要实现什么接口或声明什么方法的类型? 答案:能用foreach遍历访问的对象必须是集合或数组对象,而这些都是靠实现超级接口IEnumerable或被声明 GetEnu ...

  7. matlab中的开方sqrt用牛顿迭代法实现的代码

    function kaifang = KAIFANG(a)g0=a/2;g1=(g0+a./g0)/2;for i=0 : 299g0=g1;g1=(g0+a./g0)/2;endkaifang = ...

  8. 洛谷 P1312 Mayan游戏

    题解:搜索+模拟 剪枝: 最优性剪枝:x从小到大,y从小到大,第一次搜到的就是字典序最小 的最优解. 最优性剪枝:把一个格子和左边格子交换,和左边格子和右边格 子交换是等价的,显然让左边格子和右边交换 ...

  9. Django: TemplateDoesNotExist (rest_framework/api.html)

    需要在站点前面的INSTALLED_APP里面加上rest_framework

  10. css处理最后一个li

    .relatebar li{width:98px;height:146px;padding:5px;float:left;border-left:1px solid #ccc;} .relatebar ...