J2EE实验报告.docx
《J2EE实验报告.docx》由会员分享,可在线阅读,更多相关《J2EE实验报告.docx(61页珍藏版)》请在冰豆网上搜索。
J2EE实验报告
本科实验报告
课程名称:
JavaEE编程技术
实验项目:
实验地点:
迎西校区4502机房
专业班级:
软件工程学号:
学生姓名:
指导教师:
2012年5月
实验一Web应用程序开发方法
一、实验目的
1.熟悉NetBeans开发环境;
2.学会建立JSP文件;
3.学会创建JavaBean;
4.掌握在JSP中调用JavaBean的方法;
5.学会使用集成开发环境发布Web应用程序。
二、实验内容
该实验用来使同学了解使用NetBeansIDE来开发Web应用的基本方法。
同学将学习如何创建一个简单的Web应用,将其部署到服务器,并在浏览器中进行浏览。
这个应用使用JavaServerPages™(JSP)技术作为用户输入的界面处理,要求输入用户的姓名。
然后使用JavaBeans™组件技术在HTTP会话期间持久化输入的姓名,最后在另一个JSP页面显示用户的输入。
∙安装开发环境及软件
∙创建一个Web应用工程
∙创建与编辑Web应用源文件
o创建Java包与Java源文件
o生成Getter与Setter方法
o编辑默认的JSP文件
o创建一个JSP文件
∙构建并运行Web应用
三、实验仪器设备
∙NetBeansIDE7.1.2,及其Web与JavaEE支持
∙JavaSEDevelopmentKit™
四、操作方法与实验步骤
创建一个Web应用工程
1.从主菜单选择File>NewProject(Ctrl-Shift-N),并在工程分类中选择Web,选择WebApplication,然后单击Next。
2.第二步,在工程名输入框里输入工程名HelloWeb。
注意上下文(Context)路径(例如,服务路径)变为了/HelloWeb。
3.规定工程路径到计算机上的任何目录。
在本教程中,这个参考目录为$PROJECTHOME.
4.选择一个想要部署该应用的服务器。
您在IDE中注册过的服务器在此将被列出。
单击Next。
5.选择作为MainProject选项并单击Finish。
NetBeansIDE将创建$PROJECTHOME/HelloWeb工程目录。
这个工程目录包含了所有的工程源文件以及元数据文件。
例如工程的Ant构建脚本。
然后,HelloWeb工程将在IDE中打开。
在welcome页面中,即index.jsp,将在源代码编辑器(SourceEditor)中打开。
您可以在Files视图窗口中看到工程文件的结构(Ctrl-2),工程的逻辑结构将在Project视图窗口中出现(Ctrl-1):
创建与编辑Web应用源文件
创建并编辑源文件是IDE提供的最重要的功能。
毕竟,这可能是程序员在工作中花费大多数时间的地方。
NetBeansIDE提供了很多的工具让程序员能够以自己的风格作开发。
创建Java包与Java源文件
1.在Projects窗口中,展开源代码包结点。
请注意源代码包结点目前只包含了一个默认的包结点。
2.右键单击源代码包结点并选择New>JavaClass。
在类名输入框中输入NameHandler并在源代码包输入框中输入org.me.hello。
单击Finish。
此时源文件NameHandler.java将在源代码编辑器中打开。
3.在源代码编辑器中,为NameHandler声明一个String类型的变量:
Stringname;
4.为该类添加构造方法:
publicNameHandler()
5.在构造方法NameHandler()中添加如下代码:
name=null;
生成Getter与Setter方法
1.在源代码编辑器中右击name字段并选择Refactor(重构)>EncapsulateFields。
封装字段对话框将打开,列出了name字段。
注意,该字段的可见性是默认的private,而访问器(Accessors)的可见性为public,这说明了该类变量的默认访问与修改方式是private的,无论getter与setter方法是否被分别提供为public或private。
2.单击Refactor。
name字段的Getter与Setter方法将被自动生成。
类变量的默认访问将变为private当getter与setter方法被以public方式提供之后。
现在,这个Java类应该是这样的:
packageorg.me.hello;
/**
*
*@authornbuser
*/
publicclassNameHandler{
privateStringname;
/**CreatesanewinstanceofNameHandler*/
publicNameHandler(){
name=null;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
编辑默认的JSP文件
1.重新在源代码编辑器中打开index.jsp文件。
2.打开Palette(Ctrl-Shift-8)窗口,它将出现在源代码编辑器的右边,展开HTMLForms并拖拽一个Form项到源代码编辑器中
标签后。
然后一个Form将出现:
输入如下值:
oAction:
response.jsp
oMethod:
GET
oName:
NameInputForm
单击OK。
此时,一个HTML表单已经添加到了index.jsp文件中。
3.再拖一个TextInput项到标签之前,然后输入如下值:
oName:
name
oType:
text
单击OK。
此时,一个HTML框被添加到了
标签之前,然后输入如下值:
oLabel:
OK
oType:
submit
单击OK。
此时,又一个HTML按钮被添加到了
创建一个JSP文件
1.在Projects视图窗口中,右击HelloWeb工程结点并选择New>JSP,JSP文件创建向导将打开。
命名这个文件为response,单击Finish。
此时,一个response.jsp文件结点将显示在Projects视图窗口中,位于index.jsp之下,并在源代码编辑器中打开这个新建的文件。
2.在源代码编辑器右边的Palette窗口中,展开JSP并拖一个UseBean项到
标签之下。
在InsertUseBean对话框中输入如下的值:
oID:
mybean
oClass:
org.me.hello.NameHandler
oScope:
session
单击OK。
此时,useBean>标签已被添加到了
标签下。
3.再从Palette中拖一个SetBeanProperty项到
标签之前并单击OK。
编辑setProperty>标签如下所示:
setPropertyname="mybean"property="name"/>
4.更改在
标签之间的文本,如下:
Hello,!
5.最后,从Palette中拖一个GetBeanProperty项到
标签后。
在InsertGetBeanProperty对话框中输入如下值:
oBeanName:
mybean
oPropertyName:
name
单击OK。
此时,一个getProperty>标签已被添加到
标签之间了。
6.在源代码编辑器中右击,并选择Format(Alt-Shift-F)去整理一下您的代码格式。
现在,response.jsp文件应该是这样的:
useBeanid="mybean"scope="session"class="org.me.hello.NameHandler"/>
setPropertyname="mybean"property="name"/>
Hello,getPropertyname="mybean"property="name"/>!
构建并运行Web应用
NetBeansIDE使用Ant构建脚本去构建与运行Web应用。
IDE基于在新建工程向导时的选择生成构建脚本。
1.在Projects视图窗口中,右击HelloWeb工程结点并选择Run(F6)。
NetBeansIDE构建这个Web应用并部署它到您在创建工程时指定的服务器上。
index.jsp页面将在您的默认浏览器中打开:
2.在文本框中输入名字,然后单击OK。
response.jsp页面显示如下的一个简单问候:
到此,我们结束了一个简单的Web应用开发。
本实验演示如何创建一个简单的Web应用,将其部署到服务器,并在浏览器中进行浏览。
文中也展示了如何在应用中使用JSP与JavaBeans获取用户输入,持久化输入信息,以及输出用户的输入数据。
五、实验心得
本实验在一开始的环境搭建的时候遇到了一些问题,考虑到为了让JDK,Netbeans,Tomcat三者之间更好的兼容运行,下载了JDK1.7,Netbeans7.1.2,Tomcat7.0。
环境配置好后,实验内容的编写中按照指导书的步骤一步步操作就可以,利用Netbeans的代码编写向导编写代码大大的减少了手动编写代码中出现的错误。
通过实验理解一个WEB应用从代码的编写到生成、部署到服务器、运行的过程。
深入的认识了JavaBean。
它就是一个特殊的JAVA类,所有的属性成员都是私有的,创建JavaBean的实现类时系统会自动创建一个无参的构造方法,每个属性都有getXX方法和setXX方法,实现的对象的封装性。
可以在JavaBean中编写事物逻辑,数据操作等代码。
将业务逻辑和表示逻辑分离,更好的实现代码的移植和重用。
在测试的WEB服务的时候遇到问题是Tomcat无法启动,把Netbeans自带的Tomcat删了另外加载的Tomcat也启动不了。
错误是端口占用。
后来果断把Tomcat全删了,用Netbeans自带的GlassFish完美启动而且完美运行。
实验二Web数据库访问
一、实验目的
1.了解MVC模式的基本原理和编程方式;
2.了解DAO模式的基本原理和编程方法;
2.掌握使用JDBC访问数据库的一般方法;
3.掌握MySql数据库的基本操作。
二、实验内容
(一)、MVC模式
MVC模式是最近几年被推荐为JEE的设计平台,他主要将输入、处理和输出分开。
MVC即,
M(Modle):
主要是业务逻辑的处理,接受视图请求的数据,返回最终的处理结果。
V(View):
表示用户交互界面,对于Web应用来说,可以是HTML界面,也可能是XHTML、XML、Applet
C(Controller):
从用户接受请求,将模式与视图结合在一起,共同完成用户的请求。
可以给你一段简单的代码:
mvc_login.htm
输入姓名:
mvcdemo.jsp
MVCDEMO
<%=request.getAttribute("name")%>
mvc_success.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
输入成功!
!
!
欢迎:
<%=request.getAttribute("name")%>光临!
!
!
mvc_failure.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
输入失败!
!
!
重新登陆
MVCCheck.java
packagecn.mldn.lxh.bean;
publicclassMVCCheck
{
privateStringname;
publicvoidsetName(Stringname)
{
this.name=name;
}
publicStringgetName()
{
returnthis.name;
}
//验证
publicbooleanisValidate()
{
if(this.name==null||"".equals(this.name))
{
returnfalse;
}
else
{
returntrue;
}
}
};
MVCServlet.java
packagecn.mldn.lxh.servlet;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importcn.mldn.lxh.bean.MVCCheck;
publicclassMVCServletextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletException
{
this.doPost(req,resp);
}
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletException
{
Stringname=req.getParameter("uname");
MVCCheckmc=newMVCCheck();
//将请求内容设置到mc对象之中
mc.setName(name);
Stringpath=null;
if(mc.isValidate())
{
//保存名字在request范围之中
req.setAttribute("name",mc.getName());
path="mvc_success.jsp";
}
else
{
path="mvc_failure.jsp";
}
//进行跳转
req.getRequestDispatcher(path).forward(req,resp);
}
};
/*
mvc
cn.mldn.lxh.servlet.MVCServlet
mvc
/mvcdemo.mldn
*/
要求:
创建项目,建立上面的文件,调试并运行程序,记录运行结果。
输入姓名:
当什么都没有输入的时候(包括空格也没有),运行结果:
(二)MVC+DAO模式实现留言功能
三、操作方法与实验步骤
1.获得MVCDaoNote项目文件。
2.在NetBeans下打开项目如图所示。
3.安装MySQL数据库管理系统,并设置口令为123456。
4.进入MySQL数据库命令行方式的客户端。
5.创建note数据库,输入命令:
mysql>createdatabasenote;
mysql>usenote;
并运行。
6.建立表note和person。
注意:
note表的id字段设置为自增的,否则代码报错。
把文件note.sql拷贝到d:
根目录下。
note.sql的内容如下:
--创建表
--用户表(登陆)、留言表
--删除表
DROPTABLEperson;
DROPTABLEnote;
--删除序列
--DROPSEQUENCEnote_sequ;
--创建序列
--CREATESEQUENCEnote_sequ;
--创建person表
CREATETABLEperson
(
idvarchar(20)notnullprimarykey,
namevarchar(20),
passwordvarchar(20)
);
--创建留言表
CREATETABLEnote
(
idintauto_incrementnotnullprimarykey,--sequence
titlevarchar(20)notnull,
authorvarchar(20)notnull,
contentvarchar(50)notnull
);
--插入测试数据
INSERTINTOpersonVALUES('LXH','李兴华','zzzzzz');
INSERTINTOpersonVALUES('MLDN','魔乐','mmmmmm');
insertintorpersonvalues('gbl','gaobaolu','123456');
--事务提交
commit;
输入命令:
mysql>sourced:
/note.sql;
mysql>showtables;
7.检查数据库连接代码看是否和环境一致。
8.调试运行项目,记录运行结果。
9.修改项目部分代码,查看修改结果,思考是否和自己的想象一致。
10.体会MVC和DAO模式的好处,写下自己的感受。
用户登录:
登陆成功:
添加留言信息:
四、实验心得:
本实验内容是用MVC设计模式实现的一个留言板,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
MVC模式的目的就是实现Web系统的职能分工。
Model层实现系统中的业务逻辑,业务逻辑是独立的,通常可以用JavaBean或EJB来实现。
View层用于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
在web开发中servlet控制器接受用户的请求(实际上是容器接受HTTP请求,产生请求对象和响应对象),通过调用封装在可重用组件的模型(普通的java类),获取业务处理结果,将结果写入请求对象,并转发给视图(jsp).视图向客户提供动态页面。
通过本实验了解MVC的架构工作原理,读懂留言板的的工作原理,在WEB应用中各个模块之间是通过什么实现。
实验三EJB编程
一、实验目的和要求
1.掌握EJB编程的基本方法;
二、实验内容和原理
(1).使用会话bean(无状态,有状态)
(2).使用实体bean(cmp,bmp)
(3).消息驱动bean
三、主要仪器设备
主要软件:
NetBeansIDE6.0,及其Web与JavaEE支持
JavaSEDevelopmentKit™
Glassfish3.1
四、操作方法与实验步骤
1.创建javaEE企业应用程序NewsApp
根据提示同时创建ejb模块和web模块
2.对ejb模块进行编码
(1)创建持久性单元
右键ebj模块,选择“其他”。
下一步(选择持久性提供器、数据源、Java事务API等)
创建好的persistence.xml是
(2)创建实体类NewsEntity
右键ebj模块,选择“其他”。
下一步:
点击完成。
在文件中添加2个字段并且插入getter和setter
(3)创建消息驱动bean
右键ebj模块,选择“其他”。
下一步:
点击“添加”按钮
点击确定。
正确的视图是:
点击“完成”创建的java类的代码
在其中加入下面的代码:
右击,选择添加实体管理器
实际添加了如下的代码:
@PersistenceContext(unitName="NewsApp-ejbPU")
privateEntityManagerem;
将persist方法名该为s