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

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接收
     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
     true

C.6 动作

useBean\setProperty\getProperty



first name:

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

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



//include动作:

     

forward动作:

     

其他:

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

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

  3. Servlet的缺点:

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

备注

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

另外,如果喜欢我的文章,可以扫码、直接搜索"第四单元"关注我的微信公众号。我会定期发布原创文章。

《Spring MVC学习指南》读书笔记--附录C JavaServer Pages_第1张图片
微信公众号small size.png

你可能感兴趣的:(《Spring MVC学习指南》读书笔记--附录C JavaServer Pages)