Jsp入门

作者: Mon7ey | 来源:发表于2017-11-20 14:08 被阅读8次

引入

Jsp:用Java语言和(Html语言)开发动态资源的技术,Jsp就是Servlet.

Jsp的特点

  1. Jsp只能交由tomcat服务器调用

     Jsp运行时会产生临时文件,这些文件会存放在tomcat服务器work目录下
    
  2. Jsp页面可以写html代码,也可以写Java代码.

     html页面不能写java代码,而Jsp页面可以写Java代码
    

Jsp的执行过程

  1. 通过浏览器访问到xxx.jsp页面,tomcat扫描到访问的文件是.jsp文件后,在%tomcat%work文件夹下把xxx.jsp文件翻译为后缀为.java的java源文件.
  2. tomcat服务器把java源文件编译为xxxclass字节码文件.
  3. tomcat服务器通过xxx.class文件,构造xxx对象
  4. tomcat服务器调用xxx类中的方法,返回内容显示到浏览器

第一次访问jsp流程:  1.2.3.4
第n次访问jsp:  4

注意:

  • jsp文件被修改或Jsp临时文件被删除了后,要重新走第一步和第二步
Jsp的声明周期
  1. 翻译: Jsp → java文件
  2. 编译: java文件 → class文件
  3. 生成类,调用构造方法(第1次访问)
  4. init方法(第1次访问) : _jspInit();
  5. service方法 : _jspService();
  6. destroy方法 : _jspDestroy();

Jsp语法

Jsp模板

Jsp页面中的Html代码就是Jsp的模板

Jsp表达式

语法: <%=变量 或 表达式%>
作用: 向浏览器输出变量的值或计算结果

Jsp脚本

语法: <% java 代码 %>
作用:

  1. 执行java代码


    image.png
  2. 可以穿插html代码使用


    image.png
Jsp声明

语法: <% 变量或方法 %>
作用: 声明jsp的变量或方法

Jsp注释

语法: <%-- jsp注释 --%>

Jsp三大指令(常用)

include 指令
作用: 用于当前页面包含其他页面
语法: <%@include file="common/header.jsp"%>
原理: 将被包含页面的内容合并翻译为一个java的源文件,再编译源文件,这种包含叫做"静态包含"或"源码包含"
注意: 如果使用静态包含,被包含页面中不需要出现全局的html标签(<head>、<body>)

page 指令
作用:告诉Tomcat服务器如何翻译Jsp文件
语法:

    <%@ page
              language = "java"        // 告诉服务器使用什么语言翻译Jsp文件(只能翻译java)
              import = "java.util.*,java.text.*"    // 告诉服务器java文件使用了什么包(多个包用","(逗号)分割)
              pageEncoding = "utf-8"    // 告诉服务器使用什么编码翻译Jsp文件
              contentType = "text/html; charset="utf-8"    // 服务器发送给浏览器的数据类型和内容编码
              errorPage = "error.jsp"    // 指定当前Jsp页面的错误处理页面
              isErrorPage = "false"    // 指定当前页面为错误处理页面
              buffer = "8kb"    // jsp页面的缓存区大小
              session = "true"    // 是否开启session功能, true可以使用session内置,反之不能用
              isELIgnored = "false"    // 是否忽略EL表达式
    %>

taglib 指令

Jsp的内置对象(重点)

什么是内置对象

在Jsp开发中,会频繁使用到一些对象,例如HttpSession、ServletContext、HttpServletRequest等....如果开发者每次使用时都去手动创建或获取这些对象就会显得非常麻烦,所以Sun公司在设计Jsp时,在Jsp页面加载完毕之后就会自动帮助开发者创建好这些对象,开发者只需要直接使用这些对象调用方法即可,这些创建好的对象就叫做"内置对象"

Jsp中共有9大内置对象,分别是:

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

out对象类型,JspWriter类,相当于带缓存的PrintWriter(缓冲区的默认大小 : 8KB)

  • PrintWriter.write(内容); 直接向浏览器写出内容.
  • JspWriter.writer(内容); 向jsp缓冲区写出内容

当满足一下条件之一,缓冲区内容写出:

  1. 缓冲区满
  2. 刷新缓冲区 out.flush();
  3. 关闭缓冲区
  4. jsp页面执行完毕
pageContext对象

pageContext对象的类型是PageContext,叫jsp的上下文对象,作用是:

  1. 可以获取其他八个内置对象
  2. 是一个域对象,用于保存数据和获取数据,用于共享数据
  • 保存数据

      // 默认情况下,保存到page域
      pageContext.setAttribute("name");
      // 可以向四个域对象保存数据
      pageContext.setAttribute("name",域范围常量)
    
  • 获取数据

      // 默认情况下,从page域获取
      pageContext.getAttribute("name")
      // 可以从四个域中获取数据
      pageContext.getAttribute("name",域范围常量)
    
  • 域范围常量:

      PageContext.PAGE_SCOPE
      PageContext.REQUEST_SCOPE
      PageContext..SESSION_SCOPE
      PageContext.APPLICATION_SCOPE
    
  • 自动在四个域中搜索数据

      pageContext.findAttribute("name");
      顺序: page域 -> request域 -> session域- > context域(application域)
    
Jsp中的四个域对象

四个域对象:

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

  1. 域对象作用:

     保存数据  和 获取数据 ,用于数据共享。
    
  2. 域对象方法:

     setAttribute("name",Object) 保存数据
     getAttribute("name")  获取数据
     removeAttribute("name") 清除数据
    
  3. 域对象作用范围:

     page域: 只能在当前jsp页面中使用(当前页面)
     request域: 只能在同一个请求中使用(转发)
     session域: 只能在同一个会话(session对象)中使用(私有的)
     context域: 只能在同一个web应用中使用。(全局的)
    

相关文章

  • JSP技术

    1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...

  • 学习参考文章

    JSP入门及MyEclipse的使用

  • Jsp入门实战上

    前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入...

  • Day16--Cookie&Session&JSP

    会话技术 Cookie JSP:入门学习 Session

  • Jsp入门须知

    jsp入门 jsp老弟是啥? jsp全称是Java Server Pages,是Java所提供的一门用于开发动态W...

  • JavaWeb学习记录-Jsp登录注册功能完整示例

    HelloJsp Jsp入门学习工程,实现jsp注册登录功能 源代码下载:https://github.com/t...

  • JSP入门

    web开发相应技术 前端技术 html css js 动态语言技术 Java jsp php 数据库技术 orac...

  • jsp入门

    ${pageContext.request.contextPath} // 在JSP页面动态获得项目名 类型 ...

  • JSP入门

    JSP的基本语法:1.JSP声明语法。2、JSP程序脚本。3、JSP脚本注释。4、JSP内容输出表达式。5、JSP...

  • JSP入门

    JSP概述 JSP( Java Server Page),它和servlet技术一样,都是SUN公司定义的一种用于...

网友评论

      本文标题:Jsp入门

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