JSP介绍

  1. 由SUN公司提供的动态web资源的开发技术,看起来非常像html,但是可以再JSP页面中写JAVA代码,所以JSP是一种动态web资源开发技术

  JSP本质上就是一个Servlet !!!

 

  2. JSP技术的由来

  JSP的出现是为了解决Servlet在响应时不适合向外输出页面的问题

  (1)Servlet本质上是一段java代码,非常适合处理逻辑,但是处理的结果不太适合由Servlet向外输出(不适合输出完整的html页面)

  (2)HTML是用于开发网页的一门技术,可以用来展示数据。但是HTML开发出来的页面本质上就是一个文档(静态资源),无法展示动态数据。

  (3)JSP非常适合编写HTML代码,是和作为相应页面向外输出,同时JSP里可以写java代码,也可以展示动态的数据。

  (4)所以JSP的出现既可以解决Servlet不适合向外相应一个完整的页面又可以解决html无法展示动态数据的问题

  (5)JSP在第一次访问时,会被翻译成一个Servlet,对JSP访问后看到的页面,其实就是翻译后的Servlet在向外输出 !!!

  

  3. JSP表达式

  格式: <%= 表达式 %>  其中可以书写常量、变量、表达式。

  JSP表达式在翻译后的Servlet中是执行表达式的值再原样输出到浏览器,例如:

  (1)在JSP页面编写内容如下:

  <%= "hell ..."%>

  (2)在翻译后的Servlet中翻译如下

  out.print("hello ...");

 

  4. JSP的脚本片段

    <%
        for (int i = 0; i < 5; i++) {
            out.write("HTLLO JSP <br/>");
        }
    %>


    <%
        for (int i = 0; i < 5; i++) {
    %>
    hello jsp
    <br />
    <%
        }
    %>

 

 

5.JSP指令

  JSP指令格式<%@ 指令名称 若干属性声明... %>

    不会直接产生输出,用来指挥JSP解析引擎如何来翻译当前JSP页面中其他部分的内容(除指令以外的其他内容,例如模板元素、jsp表达式)

  5.1 page指令

    用来声明单签JSP页面的节本属性的,page指令可以写在JSP页面任意位置,但是为了可读性考虑,一般情况下最好放在JSP页面的最前面

    格式<%@ page ...%>

    (1)<%@ page  language="java"%>  指定当前JSP使用的开发语言是java

    (2)<%@ page  pageEncoding="utf-8" %>  用来通知JSP解析引擎使用指定的编码来翻译JSP。如果放置JSP乱码,要保证JSP文件保存时的编码和pageEncoding指定的编码保持一致。

    (3)<%@ page  session="true"%>  用来指定当前页面是否使用session,如果设置为true,则翻译过来的servlet中将会有对session对象的引用,于是可以直接在JSP中使用session隐式对象。但这将导致一旦访问JSP就会调用request.getSession()方法,可能导致不必要的空间浪费。如果确定JSP中不需要session可以设定为false

    (4)<%@ page  errorPage="filepath" %>  为当前JSP页面指定友好的错误提示页面,即当前JSP如果抛出了异常,将会跳转到errorPage属性指定的页面。

    扩展:如果整个WEB应用中有很多JSP都需要指定错误提示页面,如果挨个为每一个JSP通过errorPage来指定,非常的繁琐,所以推荐在web.xml文件中为整个网站的异常统一配置友好错误提示页面,配置如下

  <error-page>
      <error-code>500</error-code>
      <location>/error/500.jsp</location>
  </error-page>
  <error-page>
      <error-code>404</error-code>
      <location>/error/404.jsp</location>
  </error-page>

 

6. include 指令

  可以实现页面包含的效果

  格式:<%@ include  file=" "%>

 

7. taglib 指令

  用来引入JSTL标签库或者其他的标签库

 

8.JSP的九大隐式对象

  8.1JSP翻译引擎在将JSP翻译成servlet的过程中,在servlet里预定义了九个对象,因此我们可以再JSP页面中直接使用这九个对象。

  page  this  表示当前Servlet实例

  request  ServletRequest  表示http请求的对象

  response  ServletResponse  表示http响应的对象

  config  ServletConfig  表示Servlet在web.xml文件中配置信息的对象

  application  ServletContext  表示真个web应用的对象

  session  HttpSession  会话技术,保存会话信息的对象

  exception          表示异常信息的对象

  out            等价于response.getWriter()   

  pageContext        表示当前JSP运行环境的对象 

 

  8.2pageContext 是一个域对象

    setAttribute(String name,Object value)  添加一个域属性

    getAttribute(String name)  根据指定的属性名获取属性值

    removeAttribute(String name)   根据指定的属性名删除一个属性

  三大特征:

    生命周期:当访问JSP开始时创建pageContext对象,当访问JSP结束时销毁pageContext对象

    作用范围:整个JSP页面

    主要功能:在整个JSP页面中实现数据的共享

 

posted @ 2019-08-25 13:36  我爱si搬砖  阅读(604)  评论(0编辑  收藏  举报