实训36 2018.05.19

JSP技术:

  jsp脚本:

    <% java代码 %> 内部的java代码翻译到service方法内部

    <%=java变量或表达式> 被翻译成service方法内部的out.print()

    <%! java代码%> 被翻译成servlet成员的内容

  jsp注释:(不同的注释可见范围不同)

    html注释:<!--注释内容--> 可见范围:jsp源码、翻译后的servlet、页面显示的html源码

    java注释://单行注释,/*多行注释*/ 可见范围:jsp源码、翻译后的servlet

    jsp注释:<%--注释内容--%> 可见范围:jsp源码

  jsp运行原理:

    (本质:servlet)

    jsp在第一次被访问时会被web容器翻译成servlet,再执行。

    过程:第一次访问-->helloServlet.jsp-->helloServlet_jsp.java-->编译运行

  jsp指令:

    page指令——属性最多的指令:

      属性最多的一个指令,根据不同的属性,指导整个页面特性

      格式:<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>

      常用属性如下:

        language:jsp脚本中可以嵌入的语言种类

        pageEncoding:当前jsp文件的本身编码---内部可以包含contentType

        contentType:response.setContentType(text/html;charset=UTF-8)(解决response的中文乱码问题)

        session:是否jsp在翻译时自动创建session

        import:导入java的包

        errorPage:当当前页面出错后跳转到哪个页面【可以通过配置web.xml配置错误的跳转页面】

        isErrorPage:当前页面是一个处理错误的页面

    include指令:

      页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中

      格式:<%@ include file="被包含的文件地址"%>

    taglib指令:

      在jsp页面中引入标签库(jstl标签库、struts2标签库)

      格式:<%@ taglib uri="标签库地址" prefix="前缀"%>

  jsp内置对象(隐式对象):

  

名称

类型

描述

out

javax.servlet.jsp.JspWriter

用于页面输出

request

javax.servlet.http.HttpServletRequest

得到用户请求信息,

response

javax.servlet.http.HttpServletResponse

服务器向客户端的回应信息

config

javax.servlet.ServletConfig

服务器配置,可以取得初始化参数

session

javax.servlet.http.HttpSession

用来保存用户的信息

application

javax.servlet.ServletContext

所有用户的共享信息

page

java.lang.Object

指当前页面转换后的Servlet类的实例(在普通类中的this)

pageContext

javax.servlet.jsp.PageContext

JSP的页面容器

exception

java.lang.Throwable

表示JSP页面所发生的异常,在错误页中才起作用

    (1)out对象:

      out的类型:JspWriter

      out作用就是想客户端输出内容----out.write()

      out缓冲区默认8kb 可以设置成0 代表关闭out缓冲区 内容直接写到respons缓冲   器(@指令中有buffer属性,可以设置 buffer=”8kb”或“0kb”)

     (2)pageContext对象

      jsp页面的上下文对象,作用如下:

        page对象与pageContext对象不同

          pageContext是一个域对象:

            setAttribute(String name,Object obj)

            getAttribute(String name)

            removeAttrbute(String name)

          pageContext可以向指定的其他域中存取数据:

            setAttribute(String name,Object obj,int scope)

            getAttribute(String name,int scope)

            removeAttrbute(String name,int scope)

            findAttribute(String name)

            ---依次从pageContext域,request域,session域,application域中获  取属性,在某个域中获取后将不在向后寻找

   jsp标签(动作):

    1)页面包含(动态包含):<jsp:include page="被包含的页面"/>

    2)请求转发:<jsp:forward page="要转发的资源" />

    静态包含与动态包含的区别:

       产生的Java文件数量不同。静态包含只产生一个java文件,所有的静态包含文件都保存在这个java文件中;而动态包含中,包含的和被包含的文件都会产生java文件(有几个产生几个)。

四大作用域的总结:

  page域:当前jsp页面范围

  request域:一次请求

  session域:一次会话

  application域:整个web应用

猜你喜欢

转载自www.cnblogs.com/goxxiv/p/9059315.html