美文网首页关于Java Web的一切Java学习笔记
《Spring MVC学习指南》读书笔记--附录C JavaSe

《Spring MVC学习指南》读书笔记--附录C JavaSe

作者: 第四单元 | 来源:发表于2017-04-11 14:54 被阅读13次

    C.1 JSP概述

    当一个JSP页面第一次被请求时,容器会生成一个java类。该类实现JspPage或其子接口HttpJspPage。而JspPage是javax.servlet.Servlet的子接口。所以每一个JSP页面实现类都是一个servlet。

    C.2 注释

    <%-- --%> JSP注释
    <!-- --> HTML注释
    

    C.3 内置对象

    这些对象不用实例化,直接就可以使用。

    request     --     javax.servlet.http.HttpServletRequest
    response     --     HttpServletResponse
    out     --     javax.servlet.jsp.JspWriter (功能上和Response.get)
    session     --     javax.servlet.http.HttpSession
    application     --     javax.servlet.ServletContext
    config     --     javax.servlet.ServletConfig
    pageContext     --     javax.servlet.jsp.PageContext
    page     --     javax.servlet.jsp.HttpJspPage
    exception     --     java.lang.Throwable
    

    一些方法:

         //获取request中header名字集合,可用Enumeration<String>接收
         request.getHeaderNames() 
         //获取header参数的具体值 
         request.getHeader(String header)     
         response.getBufferSize()
         session.getId()
         config.getServletName()
         application.getServletInfo()
    

    C.4 指令

    指令知识JSP转换器如何翻译JSP页面为Servlet,其中最重要的是page和include指令。

    C.4.1 page指令

    语法格式:

    <%@ page attribute1="value1" attribute2="value2" ...%>
    

    page属性列表:

    • import 导入java类
    • session 是否加入会话管理
    • buffer 定义out的缓冲大小
    • autoFlush 为True表示缓冲区满时自动写入输出流
    • isThreadSafe 线程安全级别,不推荐使用
    • info
    • errorPage 定义错误处理页面
    • isErrorPage 标识本页是一个错误处理页面
    • language 值为java

    C.4.2 include指令

    <%@ include file="url"%>
    JSP转换器处理include指令时,将指令替换为指令所包含文件的内容。
    .jspf文件、html文件等常被include

    C.5脚本元素

    一个脚本程序是以<%开始以%>结束的java代码块。
    定义在一个脚本的变量,可以在后续的脚本程序中使用。

    C.5.1 表达式

    以<%=开始,以%>结束。会被jsp容器执行。实际上会用out对象打印出结果。
    如:
    Today is <%=java.util.Calendar.getInstance().getTime()%>
    无需分号结尾.

    C.5.2 声明

    声明在JSP页面中使用的方法和变量。以<%!开始,并以%>结束。
    (声明方法是包括方法体的)
    可以通过声明来重写类的(JSP页面生成的servlet类)init和destroy方法。

    <%!
      public void jspInit(){
           System.out.println("index.jsp jspInit...");
      }
      public void jspDestroy(){
           System.out.println("index.jsp jspDestroy...");
      }
    %>
    

    C.5.3 禁用脚本元素

    “随着JSP 2.0对表达式语言的加强,推荐的实践是:在JSP页面中用EL访问服务器端对象且不写JAVA代码。”(?)

    <jsp-property-group>
         <url-pattern>*.jsp</url-pattern>
         <scripting-invalid>true</scripting-invalid >
    </jsp-property-group>
    

    C.6 动作

    useBean\setProperty\getProperty

    <jsp:useBean id="employee" class="entity.Employee"></jsp:useBean>
    <jsp:setProperty property="firstName" name="employee" value="chen"/>
    first name:<jsp:getProperty property="firstName" name="employee"/>
    

    include动作与include指令的区别:
    对于include指令,资源引入发生在页面转换时,即当JSP容器转换页面生成Servlet时。
    而include动作,资源引入发生在请求页面时,故可以传递参数。
    还有其他……未完善

    forward动作
    转向其他资源:

    <jsp:forward page="useBeanTest.jsp">
        <jsp:param name="" value=""/>
    </jsp:forward>
    

    C.7 错误处理

    可将一个JSP页面定义为错误处理页面,只需设置<%@page isErrorPage="true"%>
    设置一个页面的错误处理页面:<%@page errorPage="errorHandler.jsp"%>
    这样当该jsp页面抛出异常时,便会跳转到错误页面处理,当网页url不变,输出为页面处理程序的输出,
    不再会输出难以理解的信息。

    C.8 小结

    JSP隐身对象: (九大对象)

    • out
    • session
    • request
    • response
    • exception
    • application
    • page
    • config
    • pageContext

    3大语法元素:

    1. 指令:
      <%@page attribute="value"%>
      <%@ include file="url"%>
    2. 脚本元素
      <% %>脚本
      <%= %>表达式
      <%! %>声明
    3. 动作
    //bean
    <jsp:useBean name="" class=""></jsp:useBean>
    <jsp:setProperty name="" property="" vlaue=""/>
    <jsp:getProperty name="" property=""/>
    
    //include动作:
    <jsp:include page="">
         <jsp:param name="" value=""/>
    </jsp:include>
    
    forward动作:
    <jsp:forward page="">
         <jsp:param name="" value="">
    </jsp.forward>
    

    其他:

    1. 新增加JSP页面后,并不需要重启Tomcat服务器。

    2. 解决JSP页面中文乱码问题:
      <%@page contentType="text/html;charset=utf-8"%>

    3. Servlet的缺点:

    • html是由以字符串形式输出的。这使得处理response响应非常繁琐。
    • 页面形式的一点变化都要重新编译

    备注

    第一次用MarkDown写文章,确实强大,排版很方便、很美观。棒棒哒!

    相关文章

      网友评论

        本文标题:《Spring MVC学习指南》读书笔记--附录C JavaSe

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