一、实验目的
1. 理解JSP元素的概念
2. 理解JSP 页面中生成静态内容和动态内容的机制
3. 理解JSP 页面的服务请求通过servlet执行机制
二、实验要求
1. 掌握Servlet的实现方法。
2. 掌握JSP页面的创建。
三、实验内容
(一)Java Web Server开发环境的配置
1. JWS1.1开发环境安装在"C:\JavaWebServer1.1\"目录下。
2. 设置环境变量CLASSPATH(如果在autoexec.bat中没有进行设置)。进入命令行(MS-DOS)方式,进行如下设置:SET CLASSPATH=C:\JavaWebServer1.1\Lib\jws.jar; %CLASSPATH%
3. 启动JavaWebServer:进入命令行(MS-DOS)方式,将当前目录设置为"C:\JavaWebServer1.1\Bin",运行httpd.exe。C:\JavaWebServer1.1\Bin>httpd.exe
4. 显示缺省主页:在浏览器上输入以下URL: http://localhost:8080/
(二)Java Servlet程序开发过程
1. 进入命令行(MS-DOS)方式。
2. 设置环境变量CLASSPATH(如果在"c:\autoexec.bat"中没有进行设置)。SET CLASSPATH=C:\JavaWebServer1.1\Lib\jws.jar;%CLASSPATH%
3. 启动Java Web Server: C:\JavaWebServer1.1\Bin>httpd.exe
4. 在编辑软件中键入下面的程序,文件名为"SimpleServlet.java",设该文件保存在"D:\Java\"目录中:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet{
int connections; //用于记数
public void init(ServletConfig conf) throws ServletException{
super.init(conf);
nections=0;
}
public void service(HttpServletRequest req, HttpServletResponseres) throws ServletException,IOException{ //获得一个浏览器连接的链路,用于发送输出结果
ServletOutputStream out=res.getOutputStream();
res.setContentType("text/html");//设置应答内容的MIME类型
out.println("<HTML><HEAD><TITLE>Servlets</TITLE></HEAD>");
out.println("<body>Say hello to Java Servlet Programming,");
String str=req.getParameter("userName");
if(str!=null){
out.println(str);
out.println("<p>number:");
connections++;
out.println(Integer.toString(connections));
out.println("</body></html>");
out.close(); //关闭输出流
}
}
5. 进入命令行(MS-DOS)方式,运行Java编译器: D:\Java>javac SimpleServlet.java
6. 将生成的class文件保存在"C:\JavaWebServer1.1\servlets\"目录中。
7. 运行:
在浏览器中输入下面的URL地址: http://localhost:8080/servlet/SimpleServlet?userName=aaa 在浏览器中可以看到输出的结果如下:
Say hello to Java Servlet Programming, aaa
number: 1
如果再次访问该Servlet,返回的结果中的第二句会变成:
number: 2
(三)Java Server Web Development Kit 1.0.1开发环境
1. JSWDK 1.0.1开发环境安装在"C:\jswdk-1.0.1\"目录下。
2. 设置环境变量(如果在"C:\jswdk-1.0.1\startserver.bat"中没有进行设置):进入命令行(MS-DOS)方式,进行如下设置: SET JAVA_HOME=C:\JDK1.2.1。目的是确定startserver.bat中的 set sysJars=%JAVA_HOME%\lib\tools.jar。否则,JSP页面执行时,可能会出现错误"Error: 500 sun/tools/javac/Main"。这是因为找不到类sun/tools/javac/Main。
3. DOS窗口的属性设置:打开当前DOS窗口的属性窗口,选择"内存"页签,把"初始环境"旁边的下拉式列表从"自动"改成一个大于等于2816的数字。否则,在执行startserver.bat时,在MS-DOS窗口中可能出现错误"Out of environment space",这是因为Windows给环境变量分配的空间太小了。
4. 启动Java Server Web Development Kit:进入命令行(MS-DOS)方式,将当前目录设为"C:\jswdk-1.0.1",然后运行startserver.bat: C:\jswdk-1.0.1> startserver.bat
5. 显示缺省主页:在浏览器上输入以下URL:http://localhost:8080/
6. 停止Java Server Web Development Kit:进入命令行(MS-DOS)方式,将当前目录设为"C:\jswdk-1.0.1",然后运行stopserver.bat:C:\jswdk-1.0.1>stopserver.bat
(四)掌握JSP页面开发过程
1. 进入命令行(MS-DOS)方式。
2. 设置环境变量(如果在"C:\jswdk-1.0.1\startserver.bat"中没有进行设置)。
SET JAVA_HOME=C:\JDK1.2.1
3. MS-DOS窗口的属性设置: 打开当前MS-DOS窗口的属性窗口,选择"内存"页签,把"初始环境"旁边的下拉式列表从"自动"改成一个大于等于2816的数字。
4. 启动Java Server Web Development Kit:C:\jswdk-1.0.1>startserver.bat
5. 使用编辑软件键入下面的程序,文件名为"temp.jsp",将其保存在"C:\jswdk-1.0.1\example\jsp\"目录中:
<HTML>
<HEAD>
<TITLE>JSP Date Demo Page</TITLE>
</HEAD>
<BODY>
<H1>JSP Date Demo Page</H1>
The current date is
<%
java.util.Date date = new java.util.Date();
out.println(date);
%>.
<br>expression syle
<%=date%>
</BODY>
</HTML>
6. 运行:
在浏览器中输入下面的URL地址:http://localhost:8080/example/jsp/temp.jsp
在浏览器中可以看到输出的结果如下: JSP Date Demo Page
The current date is Sat Nov 18 03:01:06 CST 2000 .
expression syle Sat Nov 18 03:01:06 CST 2000
(五)开发Java Servlet程序
使用Java Server Web Development Kit 1.0.1开发环境开发Java Servlet程序
1. 进入命令行(MS-DOS)方式。
2. 设置环境变量JAVA_HOME(如果在"C:\jswdk-1.0.1\startserver.bat"中没有进行设置)。
SET JAVA_HOME=C:\JDK1.2.1
3. 设置环境变量CLASSPATH。
SET CLASSPATH =c:\jswdk-1.0.1\lib\servlet.jar;%CLASSPATH%
4. MS-DOS窗口的属性设置:打开当前MS-DOS窗口的属性窗口,选择"内存"页签,把"初始环境"旁边的下拉式列表从"自动"改成一个大于等于2816的数字。
5. 启动Java Server Web Development Kit:C:\jswdk-1.0.1>startserver.bat
6. 在编辑软件中键入下面的程序,文件名为"SimpleServlet.java",设该文件保存在"D:\Java"目录中:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet{
int connections; //用于记数
public void init(ServletConfig conf) throws
ServletException{
super.init(conf);
connections=0;
}
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException{
//获得一个浏览器连接的链路,用于发送输出结果
ServletOutputStream
out=res.getOutputStream();
res.setContentType("text/html");//设置应答内容的MIME类型
out.println("<HTML><HEAD><TITLE>Servlets</TITLE></HEAD>");
out.println("<body>Say hello to Java Servlet Programming,");
String str=req.getParameter("userName");
if(str!=null)
out.println(str);
out.println("<p>number:");
connections++;
out.println(Integer.toString(connections));
out.println("</body></html>");
out.close(); //关闭输出流
}
}
7. 进入命令行(MS-DOS)方式,运行Java编译器:D:\Java>javac SimpleServlet.java
8. 将生成的class文件保存在"C:\jswdk-1.0.1\examples\Web-inf\servlets\"目录中。
9. 运行:在浏览器中输入下面的URL地址:
http://localhost:8080/examples/servlet/SimpleServlet?userName=aaa
在浏览器中可以看到输出的结果如下:
Say hello to Java Servlet Programming, aaa
number: 1
如果再次访问该Servlet,返回的结果中的第二句会变成:
number: 2
四、思考题
1. 在"C:\JavaWebServer1.1\system\doc"目录下有Java Web Server的HTML格式的随机文档。API文档被安装在"C:\JavaWebServer1.1\system\doc\apidoc\pachages.html"中。请自行阅读相关示例和文件,进一步掌握相关知识。
2. 在"C:\jswdk-1.0.1\examples"目录中有大量的可供修改的示例。在"C:\jswdk-1.0.1\目录中,有FAQ.html和README.html两个文件。请自行阅读相关示例和文件,进一步掌握相关知识。
3. 如何将Servlet/JSP技术与JDBC技术以及Applet结合起来,编写Web数据库应用程序。