日期:2014-05-16 浏览次数:20477 次
6.1 JSP 简介
6.1.1 JSP的需求和优点
生成内容与表示相分离:
虽然JSP的实质是Servlet,但与Servlet相比,内容生成与表示相分离是JSP的一个优点,这是Servlet无法解决的。
Servlet用out.println()一句一句地输出,比如下面的一段简单程序
Java代码
1.Out.println(“html”);…………………?
Out.println(“html”);…………………
??? 当整个网页内容非常多且复杂的时候,就会有很多out.println()输出HTML标记。这样写起程序来会很烦和容易出错。JSP则很好地解决了这个问题,JSP将内容的动态生成与静态表示很好地分离了开来。例如,在JSP代码中,HTML标记都由静态内容来表示,而不用Java代码去输出,这样就将HTML标记和Java程序动态输出的内容分开了。这样就可以有利于美工去美化网页,而不必去关注Java代码,也有助于Java 编程人员不必关注于网页的美化,而只关注于自己的Java代码。
强调可重用组件:
可重用组件是一个程序,它可以为多个子程序(如JavaBean)使用。Web程序员可以共享和交换JavaBean。JavaBean使得可以在JSP页面中执行复杂的功能。例如,JavaBean Calender可以用于显示当前日期和时间。Web应用程序的所有网页都可以使用此JavaBean Calender。基于此组件的方法有助于重用现有程序和加速开发过程。
JSP还在JSP文件中使用其他JSP或HTML文件,这些文件被视为远程资源。JSP提供include指令,通过该指令可以在JSP页面中插入远程资源的内容。Include指令将文件内容替换。
简化页面开发:
JSP使得对脚本怨言不是很了解的Web开发人员也可以设计页面。例如,jsp:useBean标签用于指定在JSP页面中使用的JavaBean。程序员可以使用JSP提供的标准标签来生成动态内容。
JSP提供的标准标签分别如下:
— 访问和实例化JavaBean组件
— 设置或检索Bean属性
— 下载Applet
— 执行其他功能,如检索服务器上的表中难于编码且耗时的行
如果JSP中的现有标准标签不能用于执行所需的功能,则程序员可以创建标签,这些标签称为自定义标签。使用JSP的taglib指令可以创建自定义标签。
JSP允许使用开发工具,如Macromedia Dreamweaver 和 Eclipse。使用这些工具可以简化和加速Web开发过程。
6.1.2 对JSP的误解??
6.1.3 JSP的基本语法JSP页面里有什么元素呢?基本的JSP页面包含HTML标签和JSP标签。
Java代码
1.<%@ page import="java.util.*"%>???
2.<%@ page contentType%>???
3.<%@ page import="java.io.*,java.sql.*"%>???
4.<html><head><title>JSP</title></head><body>???
5.<!-- HTML注释,此注释内容会发送到客户端 -->???
6.? <%!??????????????????????????????????????????? <%???
7.???????? // 全局变量、类、方法????????????????????? // 可以使用JAVA的单行注释???
8.??????? // 不加!表示局部变量?????????????????????? /*???
9.??????? int i = 0 ;????????????????????????????????????????????? 多行注释???
10.?? %>?????????????????????????????????????????????????????? */???
11.? <%=++i%>???????????????????????????????? %>???
12.<%=new Date()%>???
13.<%--? JSP中使用的注释???
14.接收传递过来的参数,并进行打印输出???
15.使用如下方法:???
16.? request.getParameter("参数名称") ;???
17.? 此方法返回String类型???
18.? getParameter方法定义:???
19.? public String getParameter("参数") ;???
20.--%>???
21.<%???
22.// 接收参数???
23.String name = request.getParameter("uname") ;???
24.%>???
25.<h1><%=name%></h1>???
26.<h1><%=request.getParameter("uname")%></h1>???
27.</body></html>??
28.?
29.<%@page contentType="text/html; charset=GBK"???
30.language="java" import="java.util.Calendar"%>??
31.<%!??
32.String getHello(String name) {??
33.return "Hi," + name + "!";??
34.}??
35.%>??
36.<%Calendar now = Calendar.getInstance();%>??
37.<html>??
38.<head>??
39.<title>JSP 页面构成</title>??
40.</head>??
41.<body>??
42.<h1 align="center">JSP页面构成</h1>??
43.?
44.<%=getHello("朋友")%><%if (now.get(Calendar.AM_PM) == Calendar.AM) {%>??
45.早上好!??
46.<%} else {%>??
47.下午好!??
48.<%}%>??
49.<br>??
50.<br>??
51.<jsp:include flush="false" page="welcome.jsp">??
52.<jsp:param name="str" value="参数"/>??
53.</jsp:include>??
54.</body>??
55.</html>?
<%@ page import="java.util.*"%>
<%@ page contentType%>
<%@ page import="java.io.*,java.sql.*"%>
<html><head><title>JSP</title></head><body>
<!-- HTML注释,此注释内容会发送到客户端 -->
? <%!??????????????????????????????????????????? <%
???????? // 全局变量、类、方法????????????????????? // 可以使用JAVA的单行注释
??????? // 不加!表示局部变量?????????????????????? /*
??????? int i = 0 ;????????????????????????????????????????????? 多行注释
?? %>??????????