美文网首页
jsp基础知识学习

jsp基础知识学习

作者: 水瓶And双子 | 来源:发表于2019-03-19 20:35 被阅读0次

    1. jsp基础知识学习

    1.1. jsp三种注释

    1. html注释
    2. java注释// 或者 /* */
    3. jsp注释<%-- --%>

    1.2. jsp脚本

    1. <%java代码%> 该内部的java代码翻译到service方法内部。
    2. <%=java变量和表达式%> 会翻译成service方法内部out.print()
    3. <%!java代码%> 会被翻译成servlet成员的内容。

    1.3. jsp指令学习

    1. page指令,属性最多,不过了解即可。
    2. 要用到include指令,这样做大大减少了代码量,并且改一处全部都会改。
    <%@ include file="header.jsp"%>
    
    1. taglib指令引入标签库
    <!--在jsp页面中引入标签库(jstl标签库,struts2标签库)-->
    <!--格式:-->
    <%@taglib uri="标签地址库" pretix="前缀"%>
    <前缀:xxx></前缀:xxx>
    

    1.4. web.xml配置错误页面

    <error-page>
        <error-code>404</error-code><!-- 当出现404错误信息时会进入error.jsp页面 -->
        <location>/error.jsp</location>
    </error-page>
    

    1.5. jsp九大内置/隐式对象

    ​ request、response、config、out、exception、page、application、pageContext、session。所谓的内置对象就是jsp已经定义好了,直接可以用。

    1.5.1. out对象

    • out的类型是JspWriter
    • out的作用是向客户端输出内容--out.write()。

    jsp页面的三种输出方式:html、jsp内置对象调用输出、java输出

    031901.png

    但是三者输出的顺序有些问题,可以看出c先输出,之后abd再输出。原因:

    031902.png

    从图中可以看出其他三种的输出都是先放到write缓冲区中然后再放到response缓冲区中,而c直接进入了response缓冲区,故最先输出。out的缓冲区为buffer在page指令中可以设置大小,默认为8kb。如果设置为0kb那么输出直接到response缓冲区中。

    1.5.2. pageContext对象

    • pageContext对象是一个域对象。
    • pageContext域对象有setAttribute(),getAttribute()等方法,还可以往其他域写内容。
    031903.png
    • pageContext域对象的findAttribute("name")可以查找键,查找方式是先从小的域找再从大的域找。

    page域<request域<session域<application域。

    • pageContext域对象可以获得其他8大隐式对象
    pageContext.getOut();
    pageContext.getRequest()
    

    2. 四大域对象总结

    • page域

      当前jsp页面范围,若有两个jsp页面,第二个页面调用第一个页面就不行。

    • request域

      一次请求,作用范围就是一次请求当中,请求关闭,request域也被清空。

    • session域

      一次会话,作用范围属于当前客户端连接服务器的这个会话都属于这个范围,但是换了客户端就不行了。使用时要添加路径,否则会给服务器带来压力。

    • application域

      整个web应用,可以获取整个web应用里面的键值。

    3. 面试题---静态包含和动态包含

    031904.png

    静态包含:

    <%@ include file=”包含页面”%>
    

    动态包含:

    <jsp:include page=" " flush="true"/>
    
    • 静态包含先将两个jsp组合成一个jsp文件然后生成java文件然后再编译生成.class文件
    • 动态包含是一个jsp页面先生成java文件,然后再编译生成.class文件,然后再调取另一个jsp,再将其编译运行。
    • 静态包含一般用于加载进页面显示后就再也不变的东西,比如页眉,背景,标题。
    • 动态包含适用于加载经常变化的,要求显示最新版本内容的东西比如提交时间戳等

    4. 请求转发

    <jsp:forward page="要转发的资源" />
    

    这是转发,url地址不会改变。

    • servlet主要是对数据进行处理,jsp主要用来将得到的数据显示到页面的,那么什么是连接servlet和jsp的关键点呢?就是转发技术,在Servlet转发,jsp通过域对象接收。这是一个重要思想。

    相关文章

      网友评论

          本文标题:jsp基础知识学习

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