JSP笔记

 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 语法

脚本程序
<% 代码片段 %>

<jsp:scriptlet>
   代码片段
</jsp:scriptlet>


中文编码问题
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%
>

JSP声明
<%! declaration; [ declaration; ]+ ... %>

<jsp:declaration>
   代码片段
</jsp:declaration>

<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>


 JSP表达式
<%= 表达式 %>
同样,您也可以编写与之等价的XML语句:
<jsp:expression>
   表达式
</jsp:expression>

今天的日期是: <%= (new java.util.Date()).toLocaleString()%>

JSP注释
<%-- 该部分注释在网页中不会被显示--%>


 JSP指令
<%@ directive attribute="value" %>

指令描述
<%@ page ... %>定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>包含其他文件
<%@ taglib ... %>引入标签库的定义,可以是自定义标签

 JSP行为
<jsp:action_name attribute="value" />

jsp:include用于在当前页面中包含静态或动态资源
jsp:useBean寻找和初始化一个JavaBean组件
jsp:setProperty设置 JavaBean组件的值
jsp:getProperty将 JavaBean组件的值插入到 output中
jsp:forward从一个JSP文件向另一个文件传递一个包含用户请求的request对象
jsp:plugin用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element动态创建一个XML元素
jsp:attribute定义动态创建的XML元素的属性
jsp:body定义动态创建的XML元素的主体
jsp:text用于封装模板数据

JSP隐含对象

JSP支持九个自动定义的变量,江湖人称隐含对象。这九个隐含对象的简介见下表:

requestHttpServletRequest类的实例
responseHttpServletResponse类的实例
outPrintWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
exceptionexception 类的对象,代表发生错误的 JSP 页面中对应的异常对象

JSP 指令

指令描述
<%@ page ... %>定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>包含其他文件
<%@ taglib ... %>引入标签库的定义

Page指令
<%@ page attribute="value" %>
Page指令为容器提供当前页面的使用说明。

Include指令
<%@ include file="文件相对 url 地址" %>

Taglib指令
<%@ taglib uri="uri" prefix="prefixOfTag" %>

 JSP 动作元素

https://www.runoob.com/jsp/jsp-actions.html

语法描述
jsp:include在页面被请求的时候引入一个文件。
jsp:useBean寻找或者实例化一个JavaBean。
jsp:setProperty设置JavaBean的属性。
jsp:getProperty输出某个JavaBean的属性。
jsp:forward把请求转到一个新的页面。
jsp:plugin根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element定义动态XML元素
jsp:attribute设置动态定义的XML元素属性。
jsp:body设置动态定义的XML元素内容。
jsp:text在JSP页面和文档中使用写入文本的模板

 各元素用法

<jsp:include page="相对 URL 地址" flush="true" />

<jsp:useBean id="name" class="package.class" />

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName" property="someProperty" .../>

<jsp:useBean id="myName" ... >
...
   <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>


<jsp:forward page="相对 URL 地址" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值