【Java Web】JSP总结

JSP 结构

网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。容器负责截获对JSP页面的请求。本教程使用内嵌JSP容器的Apache来支持JSP开发。

JSP容器与Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于JSP网页的特殊元素。

下图显示了JSP容器和JSP文件在Web应用中所处的位置。

JSP处理

以下步骤表明了Web服务器是如何使用JSP来创建网页的:

  • 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
  • Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
  • JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
  • JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
  • Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
  • Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
  • 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

基础

  • JSP中用<% %>包裹起来的Java代码会被添加到Servlet中的service方法中。所以用<% %>包裹起来的Java代码中不能声明带有访问控制符的变量和方法。
  • JSP中用<%! %>包裹起来的Java代码不会被添加到service方法中。所以可以被用来声明成员变量和方法以及静态代码块。
  • JSP中用<%= %>包裹起来的Java代码称之为表达式代码块,其表达式的结果会被显示到网页上。

JSP内置对象

名字 类型
out JspWriter
request HttpServletRequest
response HttpServletResponse
session HttpSession
pageContext PageContext
application ServletContext
config ServletConfig
page Object(this)
exception Throwable

JSP四大域

名字
pageContext 只在当前页面生存,一旦当前页面关闭他也就死了
request 只在本次请求中生存,可以进行页面的跳转,但一旦刷新他就死了
session 只在本次会话中生存,可以进行页面的刷新,但是一旦关闭浏览器他就死了
application 只在本次活动中生存,只要服务器不关闭,他就不会死,一旦服务器关闭了或者重启他就死了

它们都有这样的两个方法:

  • setAttribute(“属性名”,“属性值”);

  • getAttribute(“属性名”);—>返回 属性值

JSP指令

Page指令

Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。

Page指令的语法格式:

<%@ page attribute="value" %>

等价的XML格式:


属性

下表列出与Page指令相关的属性:

属性 描述
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的 缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式
isScriptingEnabled 确定脚本元素能否被使用

JSP动作

语法 描述
jsp:include 在页面被请求的时候引入一个文件。
jsp:forward 把请求转到一个新的页面。

你可能感兴趣的:(——JavaWeb,Java)