HeadFirst jsp 08 无脚本JSP
web页面设计人员真的必须懂 java ? web页面人员可以很快学习 EL 语言.
目前不知道 EL 应用前景如何, 但是我们香港系统没有使用 EL.
include 指令
include指令告诉容器, 复制包含文件中的所有内容, 再把它粘贴到这个文件中, 而且就放在这里…
标准页眉文件(“Header.jsp”) 我们希望在我们的web应用的每个页面中都显示html内容, 我们希望每个jsp都显示这个页眉.
Header.jsp
<html>
<body>
<img src="data:images/web-services.jpg"><br>
<em><strong>we know how to make SOAP</strong></em><br>
</body>
</html>
web 应用中的一个 jsp (contract.jsp)
<html>
<body>
<%@ include file="Header.jsp"%>
<br>
<em>We can help</em>
</body>
</html>
<jsp:include>标准动作, 标准动作看上去和include指令是一样的, 内部原理不同, 如果使用include指令, 这与你打开jsp页面, 并粘贴上”Header.jsp”的内容没有两样, 换句话说就好像你把页眉文件的代码重复放在其他JSP中一样
<jsp:include>完全不同, 它不是从 “Header.jsp”复制源代码, include标准动作会再运行时插入”Header.jsp”的响应.
利用 include指令, 容器要做很多工作, 不过这些工作只是针对第一个请求才需要做, 从第二个请求开始, 就再没有额外的运行时开销了.
个人推荐这种 include 指令
另外, include的位置是敏感的, 即指令的代码位置就会代表着这个指令的插入位置.
另外, 我们为页眉建立了一个页面, Header.jsp, 它本身是一个很正常的jsp, 有自己的开始和结束html和body标记, 然后又建立了contact.jsp,
这个jsp 也有正确的开始和结束标记, 被包含文件中的所有内容都会粘贴到有 include 指令的页面中, 也就是说, html 与 body 等标记重复了.
正确的做法:
把被包含文件中的开始和结束标记去掉, 这样一来, 被包含文件本身确实不能再生成合法的HTML页面了; 它们现在必须被包含在一个有声明了html 和 body 标记的更大的页面中.
Header.jspf, 注意这个扩展名是 jspf 是对jsp 片段的约定
<img src="data:images/web=services.jpg"><br>
<em><strong>We know hwo to make SOAP suck less. </strong></em><br>
Contact.jsp
<html><body>
<%@ include file="Header.jspf" %><br>
<%@ include file="Footer.html" %>
</body></html>
注意这个include指令的位置.
使用<jsp: param>定制包含的内容, 把子标题信息作为新的请求参数交给被包含的页面.
Header.jspf 中增加 <em><strong>${param.subTitle}</strong></em>
<jsp: forward> 标准动作
<% if (request.getParameter(“userName”) == null ) {%>
<jsp:forward page=”Handleit.jsp”>
<%}%>
HeadFirst jsp 08 无脚本JSP的更多相关文章
- 【Head First Servlets and JSP】笔记21:从有脚本到无脚本
可以建立多态的bean引用吗 使用type,但没有class scope属性默认为“page” 从有脚本到无脚本 1.快速搭建一个测试环境:输入用户名,返回“Hello, 用户名” index.htm ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- 《Head First Servlets & JSP》-8-无脚本的JSP
以前servlet和JSP交互的代码 servlet代码示例: JSP代码示例: 若属性不是一个String而是一个Bean呢? 一个简单的JavaBean servlet代码示例: JSP代码示例: ...
- 基于JQuery+JSP的无数据库无刷新多人在线聊天室
JQuery是一款非常强大的javascript插件,本文就针对Ajax前台和JSP后台来实现一个无刷新的多人在线聊天室,该实现的数据全部存储在服务端内存里,没有用到数据库,本文会提供所有源程序,需要 ...
- JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象
Day38 JSP JSP的运行过程具体如下: (1)客户端发出请求,请求访问JSP文件. (2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果 ...
- 下列哪个为JSP的小脚本的标签?(选择1项)
下列哪个为JSP的小脚本的标签?(选择1项) A.<% %> B.<@ %> C.<%! %> D.<%– %> 解答:A
- JSP+Servlet 无数据库模拟登录过程
程序目录结构: index.jsp: <%@ page language="java" contentType="text/html; charset=utf-8& ...
- 《Head First Servlets & JSP》-7-使用JSP
学习的知识点 JSP,最后会变成一个servlet JSP最终或变成一个完整的servlet在Web应用中运行,只不过这个servlet类会由容器写好. JSP中的scriptlet 所谓script ...
- 11、Jsp加强/EL表达式/jsp标签
1 Jsp基础回顾 Jsp基础 1)Jsp的执行过程 tomcat服务器完成:jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法 to ...
随机推荐
- unity3d GameCenter的使用
原地址:http://blog.sina.com.cn/s/blog_6b3661a901013zmh.html 因为开发的游戏需要支持GameCenter,老大把这活交给我来搞,于是俺就百度Goog ...
- Python 创建元组tuple
创建tupletuple是另一种有序的列表,中文翻译为“ 元组 ”.tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了.同样是表示班里同学的名称,用tuple表示如下:&g ...
- Java Callable 与 Future
- ubuntu16.4安装后做的事情
1.安装搜狗拼音输入法 http://pinyin.sogou.com/linux/help.php 2.安装谷歌浏览器 http://jingyan.baidu.com/article/335530 ...
- OAuth2.0官方文档中文翻译
http://page.renren.com/699032478/note/708597990 (一)背景知识 OAuth 2.0很可能是下一代的“用户验证和授权”标准,目前在国内还没有很靠谱的技术资 ...
- Entity Framework插入中文数据到MySQL乱码问题
1.MYSQL: 保证所有的的列都是UTF8格式. 2.在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8
- Android异步任务处理框架AsyncTask源代码分析
[转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 引言 在平时项目开发中难免会遇到异步耗时的任务(比方最常见的网络请求).遇到这样的问题.我 ...
- Maven的个性化定制
用Maven的小伙伴都知道,Maven的宗旨是约定优于配置(Convention Over Configuration). 在宗旨的前提下Maven也提供了个性化定制的Profile,让我们看看使用方 ...
- QSettings 使用实例 当需要在程序关闭时保存”状态“信息
用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位置,一些别的设置,还有一个经常用的,就是recent files,等等这些都可以通过Qsettings来实现. 我们知 ...
- Error-Project facet Java version 1.8 is not supported
最近导入最新的Strtus2.5.10.1 Demo时出现了这个错误 解决方案如下: 选中工程——右键——Properties 然后依次展开找到如图所示内容,将1.8改成1.7即可. 原因:工程默认配 ...