1 / 35

JavaServer Pages (JSP) 网页程序设计 (1)

JavaServer Pages (JSP) 网页程序设计 (1). 内容. 什么是 JSP JSP 文件结构 JSP 语法 : 脚本元素 使用规则和最佳编程实践. 静态网页和动态网页. 静态网页 — 只有 html 标记构成的网页 — 呈现给每一个访问者的内容都是一样的 动态网页 — 网页: html 标记 + 可以执行的程序 — 可以实现动态交互 — 对于不同的访问者可以呈现出不同的内容. 什么是 JavaServer Page ( JSP ) ?. JSP 是一种 动态页面的生成技术 — 由 HTML 代码和嵌入其中的 Java 代码组成

jin
Download Presentation

JavaServer Pages (JSP) 网页程序设计 (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JavaServer Pages (JSP)网页程序设计(1)

  2. 内容 • 什么是JSP • JSP文件结构 • JSP语法: 脚本元素 • 使用规则和最佳编程实践

  3. 静态网页和动态网页 • 静态网页 —只有html标记构成的网页 —呈现给每一个访问者的内容都是一样的 • 动态网页 —网页:html标记+ 可以执行的程序 —可以实现动态交互 —对于不同的访问者可以呈现出不同的内容

  4. 什么是JavaServer Page (JSP) ? • JSP 是一种动态页面的生成技术 —由HTML代码和嵌入其中的Java代码组成 —动态内容由JAVA代码产生的 • JSP 是服务器端的脚本语言 — 在JSP页面被客户端请求以后,服务器对这些Java代码进行处理,然 后将生成的HTML页面返回给客户端的浏览器。

  5. JSP 例: <html> <body> Hello World! <br> Current time is <%= new java.util.Date() %> </body> </html>

  6. 结果

  7. 理解服务器端执行 • JSP文件必须先部署到Web服务器中,然后通过HTTP的方式访问。 • JSP文件内所有<% %>内代码是被Web服务器解释执行的。

  8. 理解服务器端执行 案例名称:理解服务器端执行 程序名称:4-01.jsp <%@ page language="java" contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% Date dnow = new Date(); int dhours = dnow.getHours(); int dminutes = dnow.getMinutes(); int dseconds = dnow.getSeconds(); out.print("服务器时间:" + dhours + ":" + dminutes + ":" + dseconds); %> <SCRIPT LANGUAGE="JavaScript"> var dnow = new Date(); dhours = dnow.getHours(); dminutes = dnow.getMinutes(); dseconds = dnow.getSeconds(); document.write("<br>浏览器时间:" + dhours + ":" + dminutes + ":" + dseconds); </SCRIPT>

  9. 理解服务器端执行 最常见的误解——忘记JSP是服务器端技术 • JSP完全在服务器上运行 • 它并不会改变客户程序(浏览器)所能够处理的内容

  10. JSP页面的部署 • Tomcat 中JSP的目录  • $CATALINA_HOME\webapps\<文档根目录>\ • 警告 • 前面介绍的有关CLASSPATH,安装目录等的规则依旧适用于JSP页面使用的常规Java类。

  11. JSP文件结构 JSP标记 Java程序段

  12. 静态内容(客户端执行) • 动态内容(服务器端执行) JSP内容结构 html标记 CSS样式文件 JavaScript语句 JSP JSP元素 Java程序段 • 便于静态页面设计人员和动态页面程序员分工协作 • 静态内容:用于界面设计,由页面设计人员完成 • 动态内容:用于业务逻辑的实现,由程序员完成

  13. JSP 页面 静态内容 动态内容 Web 开发工具 Macromedia Dreamweaver Netbeans、Eclipse ..... 页面设计人员 JSP 程序员

  14. <!-- 这是注释,客户端可以查看到 --> <%-- 这也是注释,客户端不能查看到 --%> HTML注释 JSP注释 脚本元素 <%! 方法和变量声明 %> 声明 表达式 脚本片断 <%=Java表达式 %> <% Java 代码 %> page指令 taglib指令 include指令 以“<%@ ” 开始,以“%> ” 结束。比如: <%@page pageEncoding=“gbk"%> 指令 JSP元素 <jsp:useBean> <jsp:forward> …….. <jsp:include> 以“<jsp: 标记名 >” 开始, 以“</jsp:标记名> ” 结束 比如:<jsp:include page=" Filename" /> 动作 JSP语法一览图

  15. HTML注释 JSP注释 • 语法: <!--注释内容--> • 特点 — 注释内容发送到客户端浏览器 — 可以在注释中嵌入JSP表达式 — 例子: <!-- 现在时刻 : <%=(new java.util.Date()) %>--> • 语法:<%-- 注释--%> • 特点 —不会被发送到客户端浏览器 — 类似Java中的注释, 完全被JSP编译器忽略,真正的注释

  16. 注释举例(comments.jsp)

  17. 在IE中查看源代码 注释:运行结果

  18. 在JSP中调用Java代码: JSP 脚本元素 脚本元素 的 3种形式。作用:在JSP中调用Java代码

  19. JSP声明 • 格式 • <%!方法、变量和类的声明代码 %> • 功能 - 声明你在JSP程序中用到的变量和方法和类 • 示例 • <%! private int someField = 5; %> • <%! private void someMethod(...) {...} %> • 结果 • 声明不能使用内置对象 • 声明通常与表达式和脚码片断一起使用

  20. JSP表达式( Expression) • 格式 • <%= 表达式 %> • 示例 • 当前时间:<%= new java.util.Date() %> • 客户主机名:<%= request.getRemoteHost() %> • 结果 • 表达式被求值,转换成字符串,将按照它在JSP页面中出现的位置插入到HTML页面中。 • 求值是在页面被请求后执行,因此可以访问到请求的所有信息

  21. JSP脚本片段 (scriptlet) • 格式 • <% Java Code %> • 示例 • <% String queryData = request.getQueryString();out.println("Attached GET data: " + queryData); %> • <% response.setContentType("text/plain"); %>

  22. JSP声明:示例

  23. JSP声明:结果

  24. 脚本元素举例

  25. 示例: 根据用户请求定制页面的背景色 • 发送请求时,需要向JSP页面传递一个变量,该变量的值指定背景色 • JSP页面获取变量的值,用来设置页面背景 需要解决: 传递参数:在URL后面使用name-value 对: http://localhost:8080/testjsp/BGColor.jsp?bgColor=yellow 获取参数的值:  从request内置对象获取 String color = request.getParameter(“bgColor”);

  26. 示例: 根据用户请求定制页面的背景色 http://localhost:8080/testjsp/BGColor.jsp?bgColor=yellow

  27. 代码

  28. JSP声明使用规则 规则1:使用单独的JAVA类而非JSP声明定义绝大多数的方法 实用类:RanUtilities.java

  29. import java 类在JSP中使用

  30. 设计策略:限制JSP页面内的Java代码 • 有两种选择: • 将25行Java代码直接放在JSP页面中 • 将这25行代码放在单独的Java类中,在JSP页面中用一行代码调用它 • 为什么第二种选择更好? • 方便开发、调试、测试在Java开发环境(编辑器或IDE)中编写单独的类,而非在HTML环境中。 • 重用。多个页面都可以使用同一个类。

  31. 核心方法 • JSP页面中JAVA代码应该有所限制 • 至少使用一些辅助类,然后在JSP中调用它们 • 经验丰富之后,应该考虑使用bean、MVC和定制标签

  32. 小结 • JSP表达式 • 格式:<%= expression %> • 封装到out.print中,并插入到_jspService • JSP scriptlet • 格式:<% code %> • 逐字地插入到servlet的_jspService方法中 • JSP声明 • 格式:<%! code %> • 逐字地插入到servlet类的定义体中 • 限制直接放在页面中的Java代码 • 考虑使用辅助类、bean、servlet/JSP的组合(MVC)、JSP表达式语言、定制标签。

  33. 任务 • 熟练掌握Web应用的目录结构 • 熟练掌握Web应用的创建和部署的步骤 • 运用JSP 脚本元素编程:教材例 • 掌握向JSP传递参数的方法 • 掌握 import java 类在JSP中使用 任务: — 编写一个java类 实现Fibonacci数列,要求提供一个方法,以数列的维数为参数,以数组返回Fibanacci数列 — 在JSP页面中显示Fibonacci数列 —向JSP传递数列的维数

More Related