JSP详解
1.1.1 为什么需要JSP
静态网页的显示内容是保持不变的静态网页既不能实现与用户的交互又不利于系统的扩展。所以需要一种动态网页技术实现动态网页。使用动态网页不仅可以动态输出网页内容 同用户进行交互 而且可以对网页内容进行在线更新。
那么使用什么样的技术可以实现动态网页呢一起回顾一下如图1.1中所展示的内容。
图1 1 B/S技术的特点
在B/S结构中浏览器端与服务器端采用请求/响应模式进行交互这个过程可以分解为如下几步。
1客户端接受用户的输入。一个用户在IE中输入用户名、密码发送对系统的访问请求。
2客户端向应用服务器端发送请求。客户端把请求消息包含用户名、密码等信息发送到应用服务器端等待服务器端的响应。
3处理数据。应用服务器端通常使用服务器端脚本语言如JSP等来访问数据库查询该用户有无访问权限 并获得查询结果。
4发送响应。应用服务器端向客户端发送响应消息一般是动态生成的HTML页面 并由用户的浏览器端解释HTML文件呈现用户界面。
原来实现动态网页的关键在于运行在应用服务器端的服务器端脚本语言它可以根
据不同客户端的请求输出相应的HTML页面 然后应用服务器再把这个HTML页面返回给浏览器作为客户端的响应。
由Sun倡导的JSP就是一种动态网页技术它编写简单适应平台宽广非常适合构造基于B/S结构的动态网页。
现在就有一个实际的问题需要去解决看下面的问题。
如何在浏览器上动态输出当前日期
由于涉及到当前日期的动态输出 因此无法通过静态HTML完成这个效果。现在试一试JSP 看看是否可行 如示例1所示。
示例1
<%@p age lan guage="java" imp ort="java util*,java te xt *"cont entTyp e="t ext/html;chars et=GBK"%>
<ht ml>
<h e ad>
<title>输出当前日期</title>
</h e ad>
<b o dy>
你好今天是
<%
Simp leD at eF ormat format er=new Si mp leD at eF ormat("yyyy年MM月dd日");
String strCurrentT ime=format er format(new D at e());out p rint ln(strCurrentT ime);
%>
</b o dy>
</ht ml>
示例1的运行结果如图1.2所示。
图1 2 示例1的运行结果
2/18
1.1.2 什么是JSP
Java服务器页面Java Server Pages JSP技术是指在HTML中嵌入Java脚本语言然后由应用服务器中的JSP引擎来编译和执行之后再将生成的整个页面返回给客户端 如图1.3所示。
1.1.3 JSP的页面组成
JSP页面里有什么元素呢前面已经谈到 JSP是通过在HTML中嵌入Java脚本语言来响应页面动态请求的。从示例1中也不难看出JSP页面包含HTML标签和Java脚本语言。如果把它们细分 JSP页面由静态内容、指令、表达式、 小脚本、声明、标准动作、注释等元素构成。
下面通过示例2来展示几个比较常用的JSP页面元素。
示例2
<%@p age lan guage="java" imp ort="java util*,java text *"contentTyp e="text/html;chars et=GBK"%><ht ml>
<h e ad>
<title>输出当前日期</title>
</h e ad>
<!--这是HTM L注释(客户端可以看到源代码 -->
<%--这是JSP注释(客户端不可以看到源代码) --%>
<b o dy>
你好今天是
<%
//使用预定格式将日期转换为字符串
Si mpleD ate Format formate r=new S i mpleD ate Format("yyyy年MM月dd日");
String strCurrentTime=formater.format(new Date());
%>
<%=strCurrentTime%>
3/18
</b o dy>
</ht ml>
在浏览器上示例2的运行结果如图1.4所示。
图1 4 在浏览器上观看示例2的运行结果
示例2产生的网页源代码如图1.5所示。
图1 5 查看示例2产生的网页源代码
在示例2中一共展示了五种页面元素包含指令、小脚本格式、表达式、注释以及静态内容。下面一一加以介绍。
1 指令
JSP指令有很多 以后的章节会详细讲到这里只需要明白JSP中哪些内容是JSP指令即可。 JSP指令一般以“<%@”开始 以“%>”结束。在示例2中属于JSP指令的代码片断是
<%@ page language="java" import="java.util.*,java.text.*" contentType= "text/html;charset=GBK"%>
2小脚本
小脚本可以包含任意的Java片断 编写方法就是将Jav a程序片断插入到<%%>标记
4/18
中。在示例2中属于小脚本的代码片断是
<%
//使用预定格式将日期转换为字符串
Si mpleD ate Format formate r=new S i mpleD ate Format("yyyy年MM月dd日");
String strCurrentTime=formater.format(new Date());
%>
3表达式
当需要在页面中获取一个Java变量或者表达式值时使用表达式格式是非常方便的。其基本语法是 <%=J av a表达式%>。在示例2中 属于表达式的代码片断是<%=strCurrentTime%>
4注释
在编写程序的时候每个程序员都要养成给出注释的好习惯合理、详细的注释有利于代码后期的维护和阅读。在JSP文件的编写过程中共有三种注释方法。
HTM L的注释方法其使用格式是 <!-- html注释-->。其中的注释内容在客户端浏览里是看不见的如图1.4所示。但是查看源代码时客户端可以看到这些注释内容 如图1.5所示。这种注释方法是不安全的而且会加大网络的传输负担。
JSP注释标记其使用格式是 <%-- JSP注释--%>。在客户端通过查看源代码是看不到注释中的内容的 如图1.5所示 安全性比较高。
在JSP脚本中使用注释。脚本就是嵌入到<%和%>标记之间的程序代码 使用的语言是Java 因此在脚本中进行注释和在Java类中进行注释的方法一样。其使用格式是 <%//单行注释%> 、 <% /*多行注释*/ %>。
在示例2中使用到了这三种注释方法对应的代码片断是
<!--这是HTML注释(客户端可以看到源代码 -->
<%--这是JSP注释(客户端不可以看到源代码) --%>
<%
//使用预定格式将日期转换为字符串
%>
5静态内容
5/18
静态内容是JSP页面中的静态文本 它基本上是HTML文本 与Java和JSP语法无关。在示例2中非粗体部分都属于静态内容。
本章中只要初步了解以上这五种页面元素就可以了在后续的章节和课程中还会对它们进行更深入的讲解和应用 并会对声明和标准动作有详细的讲解。
在对JSP有了简单的了解之后下面创建第一个JSP页面进一步了解JSP技术。在运行JSP页面时需要安装JSP服务器本书实例中使用Tomcat 6.0。 Tomcat服务器是当今使用广泛的JSP服务器它运行稳定性能可靠是学习和中小企业的最佳选择。
1.2.1 安装To mc a t服务器
首先可以从To mc at官网下载To mc at 6.0服务器的安装文件。安装To mc at服务的步骤如下。
1单击下载后的可执行文件。
2在弹出的窗口中单击Next按钮 如图1.6所示。
图1 6 开始安装Tomcat
3 出现授权界面 单击I Agree按钮。
4在弹出的界面中选择需要安装的组件可以选择Full然后单击Next按钮如图1.7所示。
6/18
图1 7 选择需要安装的组件
5选择安装的目录 然后单击Next按钮如图1.8所示。
图1 8 选择Tomcat的安装目录
6配置To mc at输入一个管理用户名和密码。注意 必须记住这个密码 因为在以后的管理中需要使用这个密码。单击Next按钮如图1.9所示。
7/18
图1 9 配置T o mc at的管理员和密码
7选择JDK的安装位置如C:\Program Files\Java\jdk1.6.0_01 然后单击Next按钮。8单击In s t a ll按钮。
9安装完成后单击Finish按钮。
下面测试Tomcat服务的安装是否成功。执行%TOMCAT_HOME%\bin\tomcat6w.exe在弹出的界面中点击Start按钮启动To mc at服务器如图1.10所示。
图1 10 启动Tomcat服务器
然后打开浏览器在地址栏输入http://localhost:8080/如果出现如图1.11所示的界面则表示To mc at服务器安装成功。
8/18
图1 1 1 测试Tomcat服务器安装是否成功
1.2.2 创建Web项目
在创建JSP之前首先创建一个Web项目 在第一学期学习Logic Java的时候 已经了解了在MyEclipse里如何创建Java项目接下来学习在MyEclipse里如何创建Web项目。
在MyEclipse中创建Web项目共涉及以下三个步骤。
1创建新项目如图1.12所示。
2在弹出的对话框中选择Web Project如图1.13所示。
9/18
ReadyDedis是一家2018年成立的国外VPS商家,由印度人开设,主要提供VPS和独立服务器租用等,可选数据中心包括美国洛杉矶、西雅图、亚特兰大、纽约、拉斯维加斯、杰克逊维尔、印度和德国等。目前,商家针对全部VPS主机提供新年5折优惠码,优惠后最低套餐1GB内存每月仅需2美元起,所有VPS均为1Gbps端口不限流量方式。下面列出几款主机配置信息。CPU:1core内存:1GB硬盘:25GB ...
Megalayer 商家算是新晋的服务商,商家才开始的时候主要是以香港、美国独立服务器。后来有新增菲律宾机房,包括有VPS云服务器、独立服务器、站群服务器等产品。线路上有CN2优化带宽、全向带宽和国际带宽,这里有看到商家的特价方案有增加至9个,之前是四个的。在这篇文章中,我来整理看看。第一、香港服务器系列这里香港服务器会根据带宽的不同区别。我这里将香港机房的都整理到一个系列里。核心内存硬盘IP带宽...
Contabo是一家运营了20多年的欧洲老牌主机商,之前主要是运营德国数据中心,Contabo在今年4月份增设新加坡数据中心,近期同时新增了美国纽约和西雅图数据中心。全球布局基本完成,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。Contabo的之前国外主机测评网站有多次介绍,他们家的特点就是性价比高,而且这个高不是一般的高,是...