码迷,mamicode.com
首页 > Web开发 > 详细

JSP

时间:2018-10-17 00:58:40      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:线程   指定   文件的   依次   自己的   商品   表达式   指令   el表达式   

JSP

JSP简介

  • 什么是JSP
    • JSP全名为Java Server Pages
    • 中文名叫java服务器页面
    • 它是在传统的页面HTML文件(.htm,.html)中插入Java程序段和JSP标记
    • 后缀名为(*.jsp).
    • 其根本是一个简化的Servlet设计
  • 为什么要有JSP
    • 直接使用Html文件是没办法输出Java当中的信息
    • 使用servlet来去输出一个网页是非常麻烦的
    • 于是就出现了jsp,又能写html,又能写Java代码
  • JSP的工作原理
    • 设置JSP创建时的编码 -
      技术分享图片

    • 本质就是一个servlet
    • jsp在第一次被访问时会被Web容器编译成servlet
      • 第一次访问
      • index.jsp
      • index_jsp.java -
        技术分享图片

      • 编译成index_jsp.class运行 -
        技术分享图片

      • 可以在Tomcat的Work目录中可以找到
      • 下次访问时,会看到里面得到内容没有发生变化,如果变化了,从新翻译加载
      • 整个过程是全局web.xml当中有一个叫

        技术分享图片

        • 技术分享图片

        • 翻译过程就是jspServlet做的

  • JSP的组成部分
    • 静态数据,如HTML
    • JSP脚本元素和变量
    • JSP指令,如include指令
    • JSP标签动作

JSP脚本元素和变量

  • 在JSP当中写Java代码
    • <%java代码%> - 内部的java代码翻译到service的内部
    • <%=java变量或表达式> - 会被翻译成service方法内部out.print()
    • <%!java代码> - 会被翻译成servlet的成员的内容
  • JSP注释
    • HTML注释: - 可见范围jsp源码 翻译后的servlet,页面中看不到
    • Java注释://单行注释/多行注释/ - 可见范围 jsp源码 翻译后的servlet,页面中看不到
    • Jsp注释:<%--注释内容--%> - 可见范围 jsp源码可见

JSP指令

  • 什么是指令
    • JSP指令用于设置整个JSP页面的相关信息
    • 以及用于JSP页面与其他容器之间的通信
  • 有哪些指令
    • page指令
      • 用于设定整个JSP页面的属性和相关功能
      • page指令共有11个属性
        • contentType - contentType属性指定JSP页面MIME和编码格式
        • pageEncoding - pageEncoding属性来指定JSP文件的编码格式
        • import - 在JSP中引入Java的包和类,多个包之间以逗号隔开
        • session
          • 指定当前页面是否能获得当前用户的session对象
          • 缺省是true
          • 如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误
        • errorPage
          • 如果当前页面发生异常
          • 网页会重定向到errorPage所指定的页面进行处理
        • isErrorPage - 允许指定的JSP页面为错误处理页面
        • language属性
          • 指定页面中使用的脚本语言种类
          • 目前只支持java
        • extends
          • 用于指定该JSP生成的servlet继承自哪个父类
          • 必须指定包名加类名
        • buffer
          • 用来设置输出流缓冲区
          • 缓冲区的作用就是为了提高IO性能
          • 也就是说减少write的次数
        • autoFlush - 用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区
        • isThreadSafe
          • 缺省值为true
          • 指定该JSP文件是否支持多线程访问
        • info - 用来设置该jsp文件的介绍信息
        • isELIgnored - 用来标示是否支持EL表达式
      • 多个属性之间使用空格隔开
    • include指令
      • 作用
        • 表示在JSP编译时插入一个包含文件或者代码文件
        • include指令所包含的文件名不能是一个变量url,只能是静态文件名 -
          技术分享图片
      • 静态包含 - 将两个jsp页面连接到一起,然后再翻译成servlet
    • taglib指令
      • 作用 - 声明JSP文件使用了标签库
      • 有哪些标签库
        • JSP标准标签库
        • 第三方标签库
        • 自定义标签库

标签动作

  • 页面包含
    • 技术分享图片
      技术分享图片
    • 被包含 - 各自翻译自己的页面,然后再引入
  • 请求转发 - 技术分享图片

隐式对象

  • jsp被翻译成servlet之后,service方法中有9个对象定义并且初始化完毕 -
    技术分享图片

  • 可以直接使用这9个对象
    • out
      • out的类型:JSPWrite
      • out作用就是向客户端输出内容 out.write()
      • out缓冲区默认8kb
      • 可以设置0 代表关闭out缓冲区内容直接写到response缓冲区
      • out写的内容写到out缓冲区当中
      • 最后再把out缓冲区当中的内容合并到response缓冲区当中
    • request - 得到用户请求信息对象
    • response - 服务器向客户端的响应对象
    • config - 服务器配置,可以取得初始化参数
    • session - 用来保存用户会话得到信息
    • application - 所有用户的共享信息,就是servletContext
    • page - 指当前页面转换后的Servlet类的实例
    • pageContext
      • jsp页面的上下文对象
      • 是一个域对象
        • setAttribute(String name,Object obj)
        • getAttribute(String name)
        • removeAttribute(String name)
      • 可以向指定的其它域中存取数据
        • setAttribute(String name,Object obj,int scope) : setAttribute(“name”,"lk",PageContext.REQUEST_SCOPE);
        • getAttribute(String name,int scope) : getAttribute("lk",PageContext.REQUEST_SCOPE)
        • removeAttrbute(String name,int scope)
        • findAttribute(String name)
          • 自动到所有的域当中找数据
          • 从小到大的范围搜索数据
          • 依次从pageContext域,request域,session域,application域中获取属性
          • 在某个域中获取后将不在向后寻找
      • 可以获取其他8大隐式对象
        • pageContext.getRequest()
        • pageContext.getSession()
    • exception
      • 表示JSP页面所发生的异常,在错误页中才起作用
      • 只有是错误页的时候,才会有改对象

商品列表

  • 需求
  • 步骤
  • 转发到jsp

此处为从零玩转java之无web服务器课堂笔记,方便复习.

最后推荐一个博客主 蚂蚁小强:https://www.cnblogs.com/myxq666/

技术分享图片

  • 全栈视频学习网站:撩课学院(www.itlike.com)

JSP

标签:线程   指定   文件的   依次   自己的   商品   表达式   指令   el表达式   

原文地址:https://www.cnblogs.com/zhou-shi-yuan-ISO8859-1/p/9795530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!