第四章 JSP

JSP基本语法

1 JSP中嵌入Java 代码

<% Java code %>

2 JSP中输出

<%= num %>

3 JSP 中的注释

<%--

--%>

4 JSP中生命方法和属性(全局变量)

<%!

private String name;

public String getName();

%>

5 JSP中的if, while, for, return, break语法即为包含在<%%>中的java代码

JSP指令

JSP指令用来声明JSP页面的一些属性,如编码方式、文档类型,JSP指令包含在<%@ 。。。%>中,基本语法为:

<%@ directive {attribute=value}* %>

Page指令:

例如:<%@ page language="java" contentType="text/html"; charset=utf-8"%>,此处的directive(指令)为page,所以此处为page指令

include指令:

用于引入应用程序内的另一个jsp文件或者html文件,基本语法形式为<%@ include file="***.jsp/html" %>.可用于导入页眉页脚等。注意与include行为的区别。include指令是“先包含(将包含的jsp导入到当前的文件中),再运行”,include行为是“先运行,再包含(运行时将include的文件单独执行,将结果放入当前jsp中)”

taglib指令:

JSP支持标签技术,使用标签功能能够实现视图代码的重用,用少量的代码是想很复杂的显示效果,要使用标签功能必须先声明标签库以及标签前缀。taglib用来指明JSP页面中使用的JSP标签库。

taglib有两个属性,uri为类库的地址,prefix为标签的前缀,如:<%@ taaglib uri="http:java.sun.com/jsp/jstl/core" prefix="c" %>

JSP行为

JSP的行为是JSP内置的一组标签,JSP行为是对重用的JSP功能的抽象和封装,包括自定义行为和标准行为。自定义行为就是JSP的自定义标签。JSP行为只需要书写很少量的代码就能用JSP提供的丰富功能。

1 include行为:

用于运行时包含某个文件,如果被包含的是jsp程序,则先执行jsp程序,然后再将执行结果包含进来。语法为:<jsp:include page="***.jsp" flush="true"/>

2 Java Bean相关的行为:

useBean行为,<jsp:useBean id="" class="" scope=""/>,其中id指明java bean的名称,在JSP中可用用该id值引用java bean对象。class代表java bean类的全名。scope代表该java bean对象的范围,可以设置为page、request、session、application。

与其对应的是设置和获取java bean的行为:<jsp:setProperty name="" property="">, <jsp:getProperty name="" property=""/>

3 jsp中嵌入Applet的jsp行为:

<jsp:plugin/>用于在jsp中定义applet,并定义applet的宽度高度等属性,<jsp:params />定义一组一对多的参数, <jsp:param />定义单个的参数, <jsp:fallback />用于定义不支持Applet的替代信息。

4 <jsp:forward>跳转行为:

与servlet中request.getRequestDispatcher("someServlet").forward(request, response)相似,jsp的跳转语法如下为,

<jsp:forward page="/a.jsp">

<jsp:param name="p1" value="v1" />

<jsp:param name="p2" value="v2" />

</jsp:forward>

5 <jsp:directive>行为

<jsp:directive />行为相当于jsp指令,例如:<jsp:directive.page>行为相当于<%@ page%>指令。现在的java web平台倾向于使用jsp行为替代jsp指令,因为jsp行为更清晰。

JSP隐藏对象

jsp内置了9个隐藏对象:out, request, response, config, session, application, page, pageContext and exception.

JSP配置

EL表达式的使用!!!

[Java Web 王者归来]读书笔记3的更多相关文章

  1. [Java Web 王者归来]读书笔记1

    第一章 Java web 开发概述 1 WEB服务器运行时一直在TCP 80(默认端口)监听, 若使用其他端口在url中需要显示标注端口号(例如:8080) 2 WEB服务器:微软的IIS.Apach ...

  2. [Java Web 王者归来]读书笔记2

    第二篇 基础篇 第三章 深入Servlet技术 1 浏览器的request http数据报中包含一些关键信息,如访问方式.所用的http版本.所用的浏览器.当前的页面地址等信息 2 http查询数据方 ...

  3. 《大型网站系统与Java中间件》读书笔记 (中)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: <大型网站系统与Java中间件& ...

  4. 《深入java虚拟机》读书笔记之垃圾收集器与内存分配策略

    前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,或者是对其中不明白的地方做一些注释.主要是方便之后进行 ...

  5. JAVA编程思想读书笔记(五)--多线程

    接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...

  6. JAVA编程思想读书笔记(四)--对象的克隆

    接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...

  7. JAVA编程思想读书笔记(三)--RTTI

    接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...

  8. JAVA编程思想读书笔记(二)--容器

    接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...

  9. 《深入java虚拟机》读书笔记之Java内存区域

    前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟 ...

随机推荐

  1. nginx 支持websocket

    nginx 反向代理websocket nginx配置 请求地址及路径:ws://x.x.x.x/web/springws/websocket.ws 解析 map 指令 上面 nginx.conf 配 ...

  2. 修改eclipse中注释字体而不影响代码字体

    eclipse的注释字体大小如何修改?不改变代码的字体 貌似没有直接的办法,但是可以取个巧: Window --> Preferences --> General --> Appea ...

  3. 【Microsoft Azure 的1024种玩法】四. 利用Azure Virtual machines 打造个人专属云盘,速度吊打某云盘

    [简介] 1.Azure Virtual machines是Azure 提供的多种可缩放按需分配计算资源之一,Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或 ...

  4. N皇后问题解法

    // // Created by Administrator on 2021/8/5. // #ifndef C__TEST01_NQUEENS_HPP #define C__TEST01_NQUEE ...

  5. 规格模式(Specification Pattern)

    本文节选自<设计模式就该这样学> 1 规格模式的定义 规格模式(Specification Pattern)可以认为是组合模式的一种扩展.很多时候程序中的某些条件决定了业务逻辑,这些条件就 ...

  6. es插件安装

    首先安装找到一样版本的地址: Release v7.6.1 · medcl/elasticsearch-analysis-ik (github.com) 下载最上面的编译版 将文件解压到plugins ...

  7. vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You

    这是因为你安装的是2.9的版本用了3.0的命令 解决方法:1.用2.9的命令初始化项目 vue init webpack my-project 2.卸载2.9升级到3.0

  8. 【SCOI2005】繁忙的都市

    Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口 ...

  9. Codeforces 1499G - Graph Coloring(带权并查集+欧拉回路)

    Codeforces 题面传送门 & 洛谷题面传送门 一道非常神仙的题 %%%%%%%%%%%% 首先看到这样的设问,做题数量多一点的同学不难想到这个题.事实上对于此题而言,题面中那个&quo ...

  10. 洛谷 P5518 - [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题(莫比乌斯反演+整除分块)

    洛谷题面传送门 一道究极恶心的毒瘤六合一题,式子推了我满满两面 A4 纸-- 首先我们可以将式子拆成: \[ans=\prod\limits_{i=1}^A\prod\limits_{j=1}^B\p ...