目录
J2EE上机实验报告........................................................................ 1
实验二、一个简单基于servlet的web应用程序...................... 1
1、实验内容................................................................................. 1
2、关键代码................................................................................. 1
HelloWorld/web.xml............................................................................................. 1
HelloWorld/HelloWorldServlet.java......................................................................... 1
3、实验结果截图.......................................................................... 2
实验三、体验JSP转译阶段的规则............................................. 3
1、实验内容................................................................................. 3
2、关键代码................................................................................. 3
Trans/index.jsp.................................................................................................... 3
Trans/trainsformain.jsp......................................................................................... 3
Trans/error.jsp..................................................................................................... 5
Trans/included.jsp................................................................................................ 6
Trans/causeError.jsp............................................................................................. 7
3、实验结果截图.......................................................................... 7
实验四、JavaBean和数据库元数据编程.................................... 8
1、实验内容................................................................................. 8
2、关键代码................................................................................. 9
testJDBC/connectDB.java..................................................................................... 9
testJDBC/database.jsp....................................................................................... 11
3、实验结果截图........................................................................ 13
实验体会........................................................................................ 13
J2EE上机实验报告
实验二、一个简单基于servlet的web应用程序
1、实验内容
创建第一个web应用程序HelloWorld,包含一个servlet名为“HelloWorldServlet”,为该servlet设置二个初始化参数,参数名分别为name和student_no,参数值分别为“学生姓名”和“学号”(每个同学使用自己的姓名和学号)。运行该servlet,输出格式为
学号为*********的***同学,你好!
这是一个简单的servlet程序
2、关键代码
HelloWorld/web.xml
……
<init-param>
<param-name>name</param-name>
<param-value>侍路登</param-value>
</init-param>
<init-param>
<param-name>student_no</param-name>
<param-value>0706550124</param-value>
</init-param>
……
HelloWorld/HelloWorldServlet.java
……
String name, student_no;
……
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print("学号为 " + student_no + " 的 " + name + " 同学,你好!");
out.print("<br>");
out.print("这是一个简单的servlet程序");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
……
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
publicvoid init() throws ServletException {
// Put your code here
name = this.getInitParameter("name");
student_no = this.getInitParameter("student_no");
}
3、实验结果截图
实验三、体验JSP转译阶段的规则
1、实验内容
编写transformation.jsp页面包含课堂ppt上出现的所有的JSP元素,执行该jsp文件(从客户端请求该页面),并在%CATALINA_HOME%\work\Catalina\localhost\app_name\ 下找到该文件转换得到的transformation_jsp.java文件,及transformation_jsp.class文件(其中app_name为该jsp文件所在的应用程序名称)。请对比jsp文件与对应的java文件,指出各种元素如何进行转换的。
2、关键代码
Trans/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<title>我的作业的起始页</title>
</head>
<body>
<jsp:forward page="transformation.jsp"/>
</body>
</html>
Trans/trainsformain.jsp
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" errorPage="error.jsp"%>
<html>
<head>
<title>transformation.jsp起始页</title>
<style type="text/css">
<!--
.STYLE1 {
font-family: "楷体";
font-weight: bold;
font-size: 20px;
}
-->
</style>
</head>
<body>
<!-- 测试注释 -->
<p><span class="STYLE1">测试注释:</span></p>
<!-- 这是HTML的注释 -->
<%-- 这是JSP隐藏注释的注释 --%>
<br/>
<!-- 测试include指令: -->
<p><span class="STYLE1">测试include指令:</span></p>
<%@include file="head.jsp"%>
<br/>
<!-- 测试声明 -->
<p><span class="STYLE1">测试声明:</span></p>
<%!
String getDate()
{
String str;
str = new java.util.Date().toString();
return str;
}
%>
<br/>
<!-- 测试表达式 -->
<p><span class="STYLE1">测试表达式:</span></p>
<%=getDate()%>
<br/>
<!-- 测试jsp:include动作元素 -->
<p><span class="STYLE1">测试jsp:include动作元素:</span></p>
<jsp:include page="included.jsp"/>
<br/>
<!-- 测试jsp:usebean -->
<p><span class="STYLE1">测试jsp:usebean:</span></p>
<jsp:useBean id="testbean" class="mypackage.testBean" scope="page"/>
使用jsp:setProperty设置属性:。。。
<br/>
<jsp:setProperty property="test" name="testbean" value="我是testBean的一个属性"/>
使用testbean.getTest()方法取得属性:<%=testbean.getTest()%>
<br/>
使用jsp:getProperty取得属性:<jsp:getProperty property="test" name="testbean"/>
<br/>
<!-- 测试errorpage -->
<p><span class="STYLE1">测试errorpage:</span></p>
<input type="button" name="test_errorpage" value="点击测试errorpage"
onclick="window.location.href='causeError.jsp'"/>
</body>
</html>
Trans/error.jsp
<%@ page language="java" import="java.util.*" import="java.io.*" pageEncoding="gb2312"%>
<%@ page isErrorPage="true" %>
<html>
<head>
<title>出错页面</title>
<style type="text/css">
<!--
.STYLE1 {
font-family: "楷体";
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<table width="192" border="0" align="center">
<tr>
<td width="186" align="center"><p class="STYLE1">出错啦!</p> </td>
</tr>
<tr>
<td align="center">我是出错处理页面^U^</td>
</tr>
</table>
<div id="timeout" align="center"> </div>
<script language="javascript">
var totalTime = 5;
function showLeftTime()
{
timeout.innerHTML=totalTime+"秒后将自动转到主页面。请稍后...";
totalTime--;
if(totalTime==0)
{
window.location.href="transformation.jsp";
return;
}
setTimeout("showLeftTime()", 1000);
}
showLeftTime();
</script>
</body>
</html>
Trans/included.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" contentType="text/html;charset=gb2312"%>
<html>
<body>
我在included.jsp中,被包含,用于测试 jsp:include 动作元素
</body>
</html>
Trans/causeError.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030" errorPage="error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<jsp:getProperty property="test" name="xxx"/> <br/><br/>
</body>
</html>
3、实验结果截图
实验四、JavaBean和数据库元数据编程
1、实验内容
编写一个访问MySql数据库的JavaBean,并编写database.jsp调用该javabean建立对数据库的连接,进行数据库元数据编程,database.jsp中采用如下输出形式给出该数据源的一些限制情况。要求database.jsp中不出现包含数据库访问的代码。
2、关键代码
testJDBC/connectDB.java
package beansrc;
import java.sql.*;
publicclass connectDB
{
private Connection conn;
private String url;
private DatabaseMetaData dbmd;
private String drivername;
private String databaseproduct_name;
privateint maxLen;
privateint maxcharliteralLength;
privateint maxColumnsInTable;
privateint maxRowsize;
privateint maxConnections;
privateint maxTablesInSelect;
public connectDB() throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
url="jdbc:mysql://localhost:3306/" +
"testjdbc?useUnicode=true&characterEncoding=UTF-8";
conn = DriverManager.getConnection(url, "root", "root");
dbmd = conn.getMetaData();
drivername = dbmd.getDriverName();
databaseproduct_name = dbmd.getDatabaseProductName();
maxLen = dbmd.getMaxIndexLength();
maxcharliteralLength = dbmd.getMaxCharLiteralLength();
maxColumnsInTable = dbmd.getMaxColumnsInTable();
maxRowsize = dbmd.getMaxRowSize();
maxConnections = dbmd.getMaxConnections();
maxTablesInSelect = dbmd.getMaxTablesInSelect();
}
public String getDriverName()
{
return drivername;
}
public String getDatabaseproduct_name()
{
return databaseproduct_name;
}
public String getUrl()
{
return url;
}
publicint getMaxLen()
{
return maxLen;
}
publicint getMaxcharliteralLength()
{
return maxcharliteralLength;
}
publicint getMaxColumnsInTable()
{
return maxColumnsInTable;
}
publicint getMaxrowSize()
{
return maxRowsize;
}
publicint getMaxconnections()
{
return maxConnections;
}
publicint getMaxTablesInselect()
{
return maxTablesInSelect;
}
}
testJDBC/database.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="connectDBBean" class="beansrc.connectDB" scope="page"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test the JDBC</title>
<style type="text/css">
<!--
.STYLE1 {
font-family: "楷体";
font-weight: bold;
font-size: 20px;
}
-->
</style>
</head>
<body>
<table width="41%" height="155" border="0" align="center" bordercolor="#FFFFFF">
<tr>
<td><table width="108%" border="1" bordercolor="#000000" style="border:#B7CBFF 1px; font-size:15px">
<tr>
<td colspan="2" align="center"><p class="STYLE1">数据源的一些限制情况</p></td>
</tr>
<tr>
<td width="36%" align="center">驱动名称</td>
<td width="64%" align="center" bgcolor="#FFFFFF"><%=connectDBBean.getDriverName()%></td>
</tr>
<tr>
<td align="center">数据库的产品名称</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getDatabaseproduct_name()%></td>
</tr>
<tr>
<td align="center">数据库连接的URL</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getUrl()%></td>
</tr>
<tr>
<td align="center">maxLen:</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxLen()%></td>
</tr>
<tr>
<td align="center">maxCharLiteralLen:</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxcharliteralLength()%></td>
</tr>
<tr>
<td align="center">maxColumnsInTable:</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxColumnsInTable()%></td>
</tr>
<tr>
<td align="center">maxRowSize: </td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxrowSize()%></td>
</tr>
<tr>
<td align="center">maxConnections:</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxconnections()%></td>
</tr>
<tr>
<td align="center">maxTablesInSelect:</td>
<td align="center" bgcolor="#FFFFFF"><%=connectDBBean.getMaxTablesInselect()%></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
3、实验结果截图
实验体会
经过几次上机实践,我对动态网页的制作有了一定的了解,并掌握了相关知识。感觉J2EE需要掌握的东西挺多的,有的也挺复杂的。
凡事“知其所以然”很重要,理解了原理,对掌握一种技术很关键。如果不能理解本质的东西,哪怕你在一台机器上弄好的东西,到另一台机器上也许你就不知所措了。
还有,对自己平时常用的集成开发环境一定要很熟悉,所谓“玩转IDE”。
总之,伴随着四次上机的结束,J2EE课程也到了尾声。四次课程上机实践让我知道了J2EE是怎么一回事,对“传说中”的JavaBean、JavaScript、JSP、JDBC、Servlet等等有了一个清晰的概念,也掌握了一些基础知识,这为以后进一步学习打下了基础。