java EE 实验报告(桂电)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java EE实验报告
院系:计算机科学与工程学院
专业:计算机科学与技术
2014年6月20号
一Java EE 开发环境
一、实验目的
1、掌握常用的Java EE 集成开发环境的使用。
2、通过在Java EE 开发环境中创建和运行一些实例项目,熟悉Java EE 的基本开发、部署
和运行的过程。
为后续实验打下基础。
二、实验内容
1、打开实验室计算机上的NetBeans 开发工具,将至少一个源自教材或实验指导书上的实例项目导入到开发环境中编译、部署和运行。
2、创建一个简单的“WEB 项目”,在其中创建至少一个自己的JSP 页面文件,该页面文件的功能是,通过在页面文件中嵌入Java 代码,并通过代码显示自己的学号和姓名,将其作为项目首页,进行部署、运行和演示。
三、实验步骤
因NetBeans 针对Java EE 开发的版本在集成相关服务器方面比较齐全,容易安装部署,并且理论课教材上的实例项目也以NetBeans 作为平台,所以实验环境选用NetBeans 平台。
打开实验室计算机上的NetBeans6.8,选择菜单的“文件”——>“新建项目…”——>“Java Web”——>“Web 应用程序”,然后给项目取一个名字,一路默认下去(同时注意观察NetBeans 每一步做出了什么设置),最后一步选择“完成”。
会发现在NetBeans 左边的“项目”窗口中生成了所创建的项目。
展开项目下面的“Web 页”,系统已默认生成一个名为index.jsp 的页面文件。
双击index.jsp 将其打开,观察其内容。
然后右键单击项目名,单击“生成”项以生成项目。
观察NetBeans 在生成项目的过程中产生的提示信息。
项目若无问题,会提示“成功生成”。
在“生成”成功之后,右键单击项目名,选择“运行”项来运行项目,在运行之前,NetBeans 会部署项目并提示一些部署信息,注意观察了解。
在成功运行之后,NetBeans 会
自动开启一个浏览器页面,页面会显示一个“Hello World!”的提示。
四:实验代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<body>
<% out.print(1100310106);%>
<% out.print("陈守创");%>
</body>
</body>
</html>
实验结果如下
五:实验改得
通过本次实验,初次认识了jave ee的使用及Netbean软件的基本操作,对html, jsp的编译和执行有了相关的了解感觉还是比较简单,没想象中那么难,对今后的学习有了一定的信心。
实验二Servlet 基础
一、实验目的
1、理解Servlet 的作用、生命周期及相应接口所包含的方法。
2、掌握通过继承HttpServlet 类来创建Servlet 的方法。
二、实验内容
自己编写Servlet,能够接收客户端输入的两个整数,并将这两个数相加的结果显示出来。
另外能通过扩充该servlet 的功能或创建新的servlet 来演示发
四、实验步骤
创建Web 应用项目。
右键单击项目名,选择“新建”——>“HTML”来生成提交数据的HTML 页面login.html,页面运行后显示如下图所示的一个输入页面,将用户登录时输入的要加的数一和数二
通过表单提交到后台的servlet 处理。
该HTML 页面代码如下:
1 <h1 align="center"> <b>输入两个数</b></h1>
<form action="getpostdata" method ="post">
<p> </p>
<table width="60%" border="3" align="center">
<tr bgcolor="#FFFFCC">
<td align="center" width="43%"> <div align="center">数1:</div></td>
<td width="57%"> <div align="left">
<input type="text" name="num1">
</div></td>
</tr>
<tr bgcolor="#CCFF99">
<td align="center" width="43%"> <div align="center">数2:</div></td>
<td width="57%"> <div align="left">
<input type="text" name="num2">
</div></td>
</tr>
<tr bgcolor="#CCFF99">
<td align="center" width="43%"> <div align="center">结果:</div></td>
<td width="57%"> <div align="left">
<input type="text" name="result">
</div></td>
</tr>
</table>
<p align="center">
<input type="reset" name="Reset" value="重置">
<input type="submit" name="Submit2" value="提交">
</p>
2计算结果的jsp代码如下
PrintWriter out = response.getWriter();
tring a= request.getParameter("num1");
String b= request.getParameter("num2");
int i=Integer.parseInt(a);
int j=Integer.parseInt(b);
int sum=0;
sum=i+j;
String as=Integer.toString(sum);
out.println("和为"+as);
实验结果如下:
五:实验心得
本次实验主要学习了登录页面的相关制作和按钮的处理过程,对html, jsp的功能和相关使用有了更深的认识,熟悉了相关的数据处理过程,学到了不少的相关知识。
实验三Servlet 会话及Servlet 协作
一、实验目的
1、掌握会话的概念和作用。
2、掌握Cookie、URL 重写和HttpSession 对象等常见会话跟踪技术。
3、会使用RequestDispatcher 对象实现Servlet 间协作。
二、实验内容
设计一个进行乘法运算的页面,生成两个运算数让用户填写相乘结果并提交。
当用户填写和提交的结果正确时,显示“计算正确”的提示信息页面。
结果错误时,显示“计算错误”的提示信息页面,以此演示通过RequestDispatcher 对象实现Servlet 之间请求的传递和协作。
三:实验步骤
这个实验和实验二有相关的步骤,主要就是在实验二的基础上添加了对于结果的对错的判断,多了两个随机的一个产生,还有一个结果分析的程序,和两个分别正确和错误的跳转页面,如果正确则显示计算正确,否则提示错误,并显示出正确的答案。
1随机数
<%!int number1, number2;%>
<%
Random a = new Random();
number1 = a.nextInt() % 10;
number2 = a.nextInt() % 10;
%>
<form action="result" method="post">
number: <input type="text" name="NumOne" value="<%=number1%>">
number: <input type="text" name="NumTwo" value="<%=number2%>">
answer: <input type="text" name="result" >
<p></p>
<input type="submit" value="putout">
</form>
2判断对错
PrintWriter out = response.getWriter();
try {
int numOne=Integer.parseInt(request.getParameter("NumOne"));
int numTwo=Integer.parseInt(request.getParameter("NumTwo"));
int result=Integer.parseInt(request.getParameter("result"));
int myResult=numOne+numTwo;
if(result==myResult)
{
RequestDispatcher dispatcher=request.getRequestDispatcher("correct");
dispatcher.forward(request,response);
}
else{
RequestDispatcher dispatcher=request.getRequestDispatcher("incrrect");
dispatcher.forward(request,response);
}
} finally {
out.close();
}
3 正确时
PrintWriter out = response.getWriter();
try {
out.println("<h1>亲,恭喜你答对了!!</h1>");
} finally {
out.close();
}
4 错误时
PrintWriter out = response.getWriter();
try {
int numOne=Integer.parseInt(request.getParameter("NumOne"));
int numTwo=Integer.parseInt(request.getParameter("NumTwo"));
int myResult=numOne+numTwo;
out.println("<h1>亲,对不起,你答错了</h1>");
out.print("正确答案是"+myResult);
} finally {
out.close();
}
实验结果如下:
一打开,就有两个方框,能产生两个随机数,每次刷新都不一样
如果答对的话
如果答错的话
四:实验心得
本次实验主要是有了了随机数函数,还有多了页面的跳转RequestDispatcher dispatcher=request.getRequestDispatcher(项目名)函数,本次实验还在有不少收获的。
实验四JSP 脚本元素、指令和动作组件
一、实验目的
1、掌握JSP 的概念和工作原理。
2、掌握表达式、注释、变量、方法、类等JSP 脚本元素。
3、掌握JSP 中的page 指令及其属性,掌握include 指令,了解taglib 指令。
4、掌握include、forward、param 等动作组件。
二、实验内容
自己编写JSP 页面文件,能够演示至少JSP 脚本元素中的变量、方法和类的使用,能演示JSP 中至少2 种指令和动作组件的使用。
三、实验分析
为了方便,就用了上次的界面和相关的大部分开始代码,但后面的跳转用了相关的动作和组件,其中用户通过界面输入预定好的用户名及密码组合,若输入相应的用户名,密码组合,则跳转到相应的界面,否则返回登录界面。
三、实验代码
界面代码和第二个一样,这里就不重复了,
1.界面代码
<body>
<form action="judge.jsp" method="post">
用户名:<input type="text" name="uesrname">
密码:<input type="password" name="password">
<p></p>
<input type="submit" value="提交">`
<input type="reset" value="重置">
</form>
2 判断跳转
<body>
<%
String username = request.getParameter("uesrname");
String password = request.getParameter("password");
if ((username.equals("1100310106")) && (password.equals("123"))) { %>
<jsp:forward page="catalog.html"></jsp:forward>
<% }
else if ((username.equals("1100310106")) && (password.equals("456"))) { %>
<jsp:forward page="include.jspl"></jsp:forward>
else {
<jsp:forward page=" error.jspl"></jsp:forward>
2catalog.html
<head>
<title>forward 示例</title>
</head>
<body bgcolor="#FFFFFF">
当前推荐图书清单:
<ul>
<li>国画</li>
<li>梅次故事</li>
<li>朝夕之间</li>
</ul>
</body>
</html>
3 include.jsp
<h1>include 动作示例</h1>
<BR>
<!-catalog.html 用前面例子中的->
<jsp:include page="catalog.html" flush="true"/> </BODY>
</HTML>
实验如果如下
密码输入123时
密码输入456时
四:实验心得
这次实验主要学习了JSP 脚本元素,例如:注释、变量、方法、类等,还了解了
JSP 中的page 指令及其属性,include 指令,taglib 指令的基本用法以及include、forward、param 等动作组件的实现,看到自己的代码成功运行出来,还是比较开心的。
实验五JSP 内置对象
、实验目的
1、掌握request、response、out、session、application、config、pagecontext、page 和
exception等九种JSP 内置对象的作用和用法。
2、掌握JSP 内置对象的作用范围。
3、了解表达式语言(EL)。
二、实验内容
自己编写一个或多个不同于例子的JSP 页面文件,能够演示至少 3 个内置对象的使用。
三、实验步骤
本次实验借用实验例题中Select的使用,在点击相应的对象时,分别跳转到不同的页面,达到实验要求,有部分和上次实验相同。
1选择页面程序
<P>选择<Select name="sum">
<Option Selected value="1">request
<Option value="2">response
<Option value="3">page
</Select>
<BR><BR>
<INPUT TYPE="submit" value="提交" name="submit">
2 判断分析跳转
<BODY ><%
String s1=request.getParameter("sum");
if (s1.equals("1")) {
%>
<jsp:forward page="request.jsp"></jsp:forward>
<% }
else if(s1.equals("2")){
%>
<jsp:forward page="reponse.jsp"></jsp:forward>
<% }
%>
else if(s1.equals("3")){
%>
<jsp:forward page="page.jsp"></jsp:forward>
<% }
%>
3request代码
<body>
<%request.setCharacterEncoding("UTF-8");%>
<h1>心目最佳城市投票活动</h1>
<form action="result.jsp" method="post">
亲,请选出你心目中的城市:
<p></p>
<input type="checkbox" name="mycheckbox" value="天津">天津<input type="checkbox" name="mycheckbox" value="桂林">桂林<input type="checkbox" name="mycheckbox" value="北京">北京<input type="checkbox" name="mycheckbox" value="上海">上海<input type="submit" value="提交">
</form>
</body>
4 getParam.jsp
你好,
<%! String Name;%>
<%Name=request.getParameter("UserName");
String stars=new String("你喜欢吃的名星有:");
String[] paramValues = request.getParameterValues("checkbox1"); for(int i=0;i<paramValues.length;i++)stars+=paramValues[i]+" "; %>
5 reponse.jsp
<title>Lomboz JSP</title>
</head>
<body bgcolor="#FFFFFF">
<%
Date today =new Date();
int h= today.getHours();
if(h<12)response.sendRedirect("morning.jsp");
else response.sendRedirect("afternoon.jsp");
%>
6 page.jsp
<title> HTML</title>
</head>
<body bgcolor="#FFFFFF">
<HR>
<h3>All the rights are reserved</h3>
</body>
</html>
实验结果如下
如果选择的是response
如果选择的是page
四、实验心得
本次实验多学了Select,t和checkbox等相关网页中常用的选项选择,其它的基本都是以前滨相关知道,复习了以前学过的jsp的组件和指令的使用方法。
加深了印象。
实验六JavaBean 的使用
一、实验目的
1、掌握JavaBean 的原理和定义。
2、掌握与JavaBean 相关的JSP 动作组件。
3、会在JSP 中使用JavaBean。
二、实验内容
自己编写一个或多个不同于例子的JavaBean 和JSP 页面文件等,能够演示JavaBean 与JSP 相结合的使用。
三、实验分析
实验只要是了解JavaBean 的设计以及如何在JSP 页面中使用JavaBean。
为了方便测试,给其添加了一个通常是不必要的main 方法。
也可以通过请求参数来给JavaBean 的属性赋值。
首先是一个通过表单的形式向request 对象中,本次实验主要是实现从一个选项中选取相应的学生信息,然后读取显示的一个功能。
1 input.jsp
<title>JSP Page</title>
</head>
<body>
<form action="show.jsp" method="post">
<p></p>
请选入学时间:
<select name="time" size="1">
<option value="2011年11月19日">2011年9月</option>
<option value="2011年11月20日">2012年9月</option>
<option value="2011年11月21日">2013年9月</option>
<option value="2011年11月22日">2014年9月</option>
</select>
<p>
性别:
<select name="sex" size="1">
<option value="男">男</option>
<option value="女">女</option>
</select>
<p>
专业:
<select name="major" size="1">
<option value="计算机">计算机</option>
<option value="网络">网络</option>
<option value="会计">会计</option>
</select>
<p>
家庭住址:
<select name="address" size="1">
<option value="桂林">广西桂林</option>
<option value="南京">广西南京</option>
<option value="杭州">江苏杭州</option>
<option value="上海">上海</option>
<option value="玉林">玉林</option>
</select>
<p></p>
<input type="submit" value="确定"> </form>
</body>
2 show.jsp
title>JSP Page</title>
<body>
<jsp:useBean id="myticket" class="rmation" scope="page"/>
<jsp:setProperty name="myticket" property="time" param="time"/>
<jsp:setProperty name="myticket" property="sex" param="sex"/>
<jsp:setProperty name="myticket" property="major" param="major"/>
<jsp:setProperty name="myticket" property="address" param="address"/> 您个人信息:<p></p>
入学时间: <jsp:getProperty name="myticket" property="time"/><p></p> 性别;<jsp:getProperty name="myticket" property="sex"/><p></p>
专业:<jsp:getProperty name="myticket" property="major"/><p></p>
家庭住址:<jsp:getProperty name="myticket" property="address"/><p></p> </body>
3 information.java
public class information{
private String time;
private String sex;
private String major;
private String address;
public information(){}
public void setTime(String time)
{ this.time=time; }
public String getTime()
{
return time;
}
public void setSex(String sex)
{
this.sex=sex;
}
public String getSex(){
return sex;
}
public void setMajor(String major){
this.major=major;
}
public String getMajor()
{
return major;
}
public void setAddress(String address){
this.address=address;
}
public String getAddress()
{
return address;
}
}
实验结果如下
四、实验心得
通过本次JavaBean 与JSP 相结合的使用的完成,对JavaBean,t和jsp的使用和编译,不但复习了以前的相关内容,还将两知识点相结合起来,更加直观的知道了它们的联系和使用,随着实验的进行,差不多对Java EE有了一个基本的认识。
实验七JDBC 数据库编程
一、实验目的
1、掌握JDBC 工作原理。
2、掌握JDBC 编程中Connection、Statement、ResulSet 等几个主要的类的使用。
3、了解连接池的概念和应用。
二、实验内容
自己设计一个数据库。
通过JDBC 来进行数据库的访问,以Access 或SQL Server 等为数据库管理系统,建立一个用于图书管理的简单数据库,书的信息包括索引号、书名、作者、定价、出版社等。
要求具有图书记录的查询、添加、修改、删除和显示等功能。
四、实验分析
在JDBC数据库编程中,重点有3个类需要掌握使用,它们分别是Connection、Statement和ResultSet,另有用于执行预编译语句的PreparedStatement 类和用于调用存储过程的CallableStatement 类,在有需要的时候也要关注和用到。
下面的讲述中给出的一些示例,是纯Java 的,但在Java EE 开发中,其在JSP 或JavaBean 等当中进行JDBC 数据库编程的原理和代码是一样的。
本次实验是通过JDBC来进行数据库的访问,建立一个用于图书管理的简单数据库,图书信息包括索引(index),书名(bookname),作者(author),定价(price),出版社(press)等,要求具有图书记录的查询,添加,修改,删除和显示功能。
1java.sql.Connection conn;
ng.String strConn;
java.sql.Statement sqlStmt; //语句对象
java.sql.ResultSet sqlRst; //结果集对象
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
conn= java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root",""); sqlStmt
=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR _READ_ONLY);
//执行Sql语句
String sqlQuery="select * from student";
sqlRst=sqlStmt.executeQuery (sqlQuery);
%>
<center>顾客信息表</center>
<table border="1" width="100%" bordercolorlight="#CC99FF" cellpadding="2" bordercolordark="#FFFFFF" cellspacing="0">
<tr>
<td align="center"> num</td>
<td align="center">mame</td>
<td align="center">math</td>
<td align="center">english</td>
</tr>
<% while (sqlRst.next()) { //取得下一条记录%>
<tr><!--显示记录-->
<td><%=sqlRst.getString("num")%></td>
<td><%=new String(sqlRst.getString("name").getBytes("iso-8859-1"))%></td> <td><%=sqlRst.getString("math")%></td>
<td><%=sqlRst.getString("english")%></td>
</tr>
<% } %>
</table>
<%
/sqlRst.close();
sqlStmt.close ();
conn.close();
} catch (java.sql.SQLException e){
out.println(e.toString());
五、实验心得
本试验难度比较大,在老师的帮助下以及自己的研究下,还是没完全出来,主要是对于数据库的知识不太熟悉,加上是新的内容,在连接时总是有问题,暂时只实现了查询功能。
但是我还会继续研究,相信自己会继续实现她的全部功能的.
实验八EJB 及WEB 服务
一、实验目的
1、掌握EJB 的概念和作用,了解常见的EJB 容器及其使用。
2、掌握简单的会话EJB、实体EJB 和消息驱动EJB 的开发部署方法。
3、了解Web 服务的概念和技术体系及其目前的一些发展状况,了解Java EE 平台下的Web 服务的实
二、实验内容
自己设计简单的EJB 来进行应用和演示。
并能设计简单的WEB 服务应用程序进行部署和功能演示。
在NetBeans 中设计一个简单的Web 服务来部署运行进行功能演示。
三、实验步骤
(1)开发Bean 实现类。
(2)开发接口文件。
接口文件包括本地接口文件和远程接口文件。
本地接口文件供与EJB 组件在同
一个JVM 的本地客户调用时使用,远程接口文件供着其它JVM 运行的远端客户调用时使用(一个
EJB 仅实现上述接口中的一种,也可以两种接口都实现)。
创建方法和过程为:
点击菜单的“文件”——>“新建项目…”——>“Java EE”——>“企业应用程序”,然后依次
点击下一步按提示完成名为ejbstudy 的项目的创建。
代码如下
1<form method="post" action="check.jsp" onSubmit="return validate(this)">
<table>
<tr>
<td colspan="2">用户登录程序</td>
</tr>
<tr>
<td>用户名ID:</td>
<td><input type="text" name="userid"></td>
</tr>
<td>密码</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登录">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form></span>
2
public static final String DBDRIVER = "com.mysql.jdbc.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/logindemo1?user=root&password=123456" ;
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
boolean flag = false ; // 表示登陆成功或失败的标记
%>
<%
String userid = request.getParameter("userid") ; // 接收表单参数
String password = request.getParameter("password") ; // 接收表单参数
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL) ;
String sql = "SELECT userid,name FROM tuser WHERE userid=? AND password=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,userid) ;
pstmt.setString(2,password) ;
rs = pstmt.executeQuery() ;
if(rs.next()){
// 如果有内容,则此处执行,表示查询出来,合法用户
flag = true ;
}
}catch(Exception e){
}finally{
try{
conn.close() ; // 连接一关闭,所有的操作都将关闭
}catch(Exception e){}
}
%>
<%
if(flag){ // 登陆成功,应该跳转到success.jsp
%>
<jsp:forward page="success.jsp"/>
<%
}else{ // 登陆失败,跳转到failure.jsp
%>
<jsp:forward page="failure.jsp"/>
<%
}
四、实验心得。
本次是最后一次实验,也是最难的一个,虽然研究了很久,也没做出来,但还是学到了不少的东西,随着本次的结束,java ee实验也就结束,回想还是学到了不少的东西,为以后的学习和发展打下了一定的基础.。