JAVA EE编程技术实验报告.docx
《JAVA EE编程技术实验报告.docx》由会员分享,可在线阅读,更多相关《JAVA EE编程技术实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
![JAVA EE编程技术实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/24/5d65033a-0a30-4d58-82f2-f78a0fa73b0d/5d65033a-0a30-4d58-82f2-f78a0fa73b0d1.gif)
JAVAEE编程技术实验报告
J2EE编程技术实验报告书
专业:
指导老师:
学号:
姓名:
实验一JSP网页设计
一、实验目的
掌握J2EEJSP+Servlet+JavaBean开发模式开发JSP网页步骤;
掌握该开发模式实现用户登录页面功能。
二、实验环境
PC系列微机,CPU2G以上,内存1G以上,WindowsXP,MyEclipse6.5以上。
三、实验步骤
1、创建ServletLoginServlet实现登录验证
编写该Servlet实现登录验证并进行配置。
2、创建login.jsp、admin.jsp、user.jsp
这3个jsp的页面采用的JSP+JavaBean开发模式中相同。
3、调试程序是否正常运行
四、实验报告
LoginServlet.java:
packagecom.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.dao.UserDao;
importcom.dao.UserDaoImpl;
importcom.model.User;
publicclassLonginServletextendsHttpServlet{
publicLonginServlet(){
super();
}
publicvoiddestroy(){
super.destroy();
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Stringa="123";
Useruser=newUser();
user.setUsername(request.getParameter("username"));
user.setUserpassword(request.getParameter("password"));
user.setRole(request.getParameter("role"));
UserDaouserdao=newUserDaoImpl();
if(userdao.login(user)){
if(user.getRole().equals("admin")){
request.getRequestDispatcher("Admin.jsp").forward(request,response);
}
else{
request.getRequestDispatcher("User.jsp").forward(request,response);
}
}
else{
request.setAttribute("errormessage","error");
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
publicvoidinit()throwsServletException{
}
}
Login.jsp:
<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'login.jsp'startingpage
登录
<%
if(request.getAttribute("errormessage")!
=null)
{
%>red;font-size:
20px;"><%out.write("账号或密码错误");%><%
}
%>
<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
Admin.jsp:
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
MyJSP'Admin.jsp'startingpageblue>登录成功
用户信息:
用户类型:
ADMIN
用户账号:
<%=request.getParameter("username")%>
用户密码:
<%=request.getParameter("password")%>
五、实验小结
通过这一次实验,我基本掌握了J2EEJSP+Servlet+JavaBean开发模式开发JSP网页步骤;掌握该开发模式实现用户登录页面功能。
做完实验,感觉对于书本上的一些知识有了客观,清晰的认识,真正做到了把理论与实践相结合。
实验二JSP网站设计
一、实验目的
掌握JSP+DAO的网站开发步骤;
理解JSP+DAO网站模式的优缺点。
二、实验环境
PC系列微机,CPU2G以上,内存1G以上,WindowsXP,MyEclipse6.5
三、实验步骤
1、编写POJOUser类
2、编写或使用原来的DBConnection类获得数据库连接
3、创建数据访问抽象层接口UserDAO
4、创建数据访问实现类UserDAOImpl
5、创建登录需要的JSP页面
页面有:
login.jsp、login_do.jsp、admin.jsp、user.jsp。
流程见作业JSP-DAO,修改有关的程序、数据库及名称。
4、实验报告
程序源代码如下:
User.java:
packagecom.model;
publicclassUser{
privateStringusername;
privateStringuserpassword;
privateStringrole;
publicStringgetRole(){
returnrole;
}
publicvoidsetRole(Stringrole){
this.role=role;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetUserpassword(){
returnuserpassword;
}
publicvoidsetUserpassword(Stringuserpassword){
this.userpassword=userpassword;
}
}
UserDAO.java:
packagecom.dao;
importcom.model.User;
publicinterfaceUserDao{
booleanlogin(Useruser);
}
UserDaoImpl.java:
packagecom.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importcom.conn.DBConnection;
importcom.model.User;
publicclassUserDaoImplimplementsUserDao{
publicbooleanlogin(Useruser){
Connectionconn=DBConnection.getConnection();
ResultSetrs=null;
PreparedStatementst=null;
try{
st=conn.prepareStatement("select*from"+user.getRole()+"whereusername=?
anduserpassword=?
");
st.setString(1,user.getUsername());
st.setString(2,user.getUserpassword());
rs=st.executeQuery();
if(rs.next()){
returntrue;
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
}
DBConnection.java:
packagecom.conn;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassDBConnection{
publicstaticConnectiongetConnection()
{
Connectionconn=null;
try{
Class.forName("org.gjt.mm.mysql.Driver");
try{
conn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/test","root","sa");
}catch(SQLExceptione){
e.printStackTrace();
}
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
returnconn;
}
}
5、实验小结
通过第二次实验,对于Servlet的工作原理和Servlet编程基本技能,我已经有了更深刻的认识,不再局限于书本上的理论知识,通过上网查找资料,我也扩充了自己的视野范围。
而对于JSP工作原理JSP脚本元素、指令等,JDBC工作原理,我也初步掌握了,同时我也掌握了基于数据源访问数据库等技术,JSP+DAO的网站开发步骤;
理解了JSP+DAO网站模式的优缺点。
实验三WebService编程实验
一、实验目的
掌握J2EEJSP+servlet+webservice开发模式开发J2EE的web服务;
掌握该开发模式实现用户访问web服务及web服务的业务逻辑功能。
二、实验环境
PC系列微机,CPU2G以上,内存1G以上,WindowsXP,MyEclipse6.5以上。
三、实验步骤
1、创建Iwebservice.java实现J2EE的web业务逻辑的接口。
编写该Iwebservice.java实现web业务逻辑的接口及参数描述。
2、创建webserviceImpl.java实现J2EE的web业务逻辑
编写该webserviceImpl.java实现计算逻辑并将结果写入数据库,返回计算结果和数据库写入成功标记。
3、调试程序是否正常运行
四、实验报告
网站程序源代码:
Iwebservice.java:
packagecom.testservice;
publicinterfaceITestService{
publicStringexample(Stringmessage);
publicStringSort(Stringstr);
}
webserviceImpl.java:
publicclassTestServiceImplimplementsITestService{
publicStringexample(Stringmessage){
returnmessage;
}
publicStringSort(Stringstr){
String[]splits=str.split("");
Integer[]Insplits=newInteger[splits.length];
for(inti=0;iInsplits[i]=Integer.valueOf(splits[i]);
}
Integertemp=0;
temp=Insplits[0];
for(inti=0;ifor(intj=0;jif(Insplits[j]>Insplits[j+1]){
temp=Insplits[j];
Insplits[j]=Insplits[j+1];
Insplits[j+1]=temp;
}
}
Stringresult=newString();
for(inti=0;iresult+=Insplits[i].toString()+"";
}
Connectionconn=DBConnection.getConnection();
try{
PreparedStatementst=conn.prepareStatement("insertintowebservice(sortedstr)values(?
)");
st.setString(1,result);
st.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
return"fail";
}
return"success";
}
}
Sort.java:
publicclassSort{
protectedStringin0;
publicStringgetIn0(){
returnin0;
}
publicvoidsetIn0(Stringvalue){
this.in0=value;
}
}
SortSPonse.Java:
publicclassSortResponse{
protectedStringout;
publicStringgetOut(){
returnout;
}
publicvoidsetOut(Stringvalue){
this.out=value;
}
}
5、实验小结
通过第三次实验,我了解了WEB服务的基本概念,对WEB服务技术的优缺点有了客观上的理解。
通过实验课,我了解了WEB服务的基本步骤。
同时也比较J2EE与.net的web服务开发的相同点与不同点,做到横向与纵向的比较。
实验4.J2EE与EJB数据库编程
一、实验目的
掌握J2EEJSP+servlet+EJB开发模式开发J2EE的EJB组件;
掌握该开发模式实现用户访问EJB及EJB组件功能。
二、实验环境
PC系列微机,CPU2G以上,内存1G以上,WindowsXP,MyEclipse6.5以上。
三、实验步骤
1、创建ejbsession.java实现会话EJB的计算逻辑功能。
编写该ejbsession.java实现EJB业务逻辑功能。
2、创建ejbentity.java实现实体EJB的数据模型。
编写该ejbentity.java实现用户账户的数据模型。
3、创建ejbmessage.java实现用户提交信息触发事件,完成逻辑计算和实体EJB对象的修改。
4、调试程序是否正常运行
四、实验报告
网页程序源代码:
Ejbentity.java:
publicclassEjbentityimplementsStatefulCalculatorRemote{
privateinta=0;
privateintb=0;
publicintadd(){
returna+b;
}
publicvoidsetA(inta){
this.a=a;
}
publicvoidsetB(intb){
this.b=b;
}
publicvoiddestory(){
System.out.println("EJBStatefullCalculator即将销毁");
}
publicvoidcreated(){
System.out.println("EJBStatefullCalculator已经创建完毕");
}
publicvoidpassive(){
System.out.println("EJBStatefullCalculator准备钝化");
}
publicvoidactive(){
System.out.println("EJBStatefullCalculator已经激活");
}
publicvoidremove(){
System.out.println("EJBStatefullCalculator请求容器销毁当前Bean实例");
}
}
Ejbentity.java:
publicclassStudentFacadeimplementsStudentFacadeLocal{
publicstaticfinalStringUSERNAME="username";
publicstaticfinalStringPASSWORD="password";
publicstaticfinalStringAGE="age";
@PersistenceContext
privateEntityManagerentityManager;
publicvoidsave(Studententity){
LogUtil.log("savingStudentinstance",Level.INFO,null);
try{
entityManager.persist(entity);
LogUtil.log("savesuccessful",Level.INFO,null);
}catch(RuntimeExceptionre){
LogUtil.log("savefailed",Level.SEVERE,re);
throwre;
}
}
publicvoiddelete(Studententity){
LogUtil.log("deletingStudentinstance",Level.INFO,null);
try{
entity=entityManager.getReference(Student.class,entity.getId());
entityManager.remove(