J2EE实验报告.docx
《J2EE实验报告.docx》由会员分享,可在线阅读,更多相关《J2EE实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
![J2EE实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/24/2bf2052a-6a64-4ffb-a56b-78756885daf3/2bf2052a-6a64-4ffb-a56b-78756885daf31.gif)
J2EE实验报告
华北电力大学
实验报告
|
|
实验名称基于J2EE架构的小型应用系统的设计与实现
课程名称J2EE开发平台及程序设计
|
|
专业班级:
学生姓名:
学号:
成绩:
指导教师:
王蓝婧实验日期:
2014年11月
一、实验目的及要求
学生在了解Java语言的基础上了解并掌握J2EE的构架及相关技术,重点掌握核心技术中最基本的Servlet、JSP、Javabean、JDBC,初步具有基于J2EE平台的软件开发能力。
1.设计并实现简单的聊天室:
1)要求使用JSP或者servlet,使用session控制2)至少3个页面3)使用application对象或者servletcontext保存聊天信息4)能进行用户登录验证5)能显示在线用户名及数量6)供多个用户同时聊天
2.学有余力同学,可设计并实现小型应用系统,如网上书店等
1)设计数据库表:
1)user类2)图书信息表book
2)要求使用JSP、Javabean和JDBC实现所设计系统
a)数据库表的设计并录入数据
b)提供用户登录及验证
c)图书目录的列出、查询
d)将所选中图书加入购物车、并显示购物车
e)要求用户信息及图书信息必须保存在数据库中
f)提供用户注册、图书管理(选作)
二、所用仪器、设备
PC机,基于windowxp或者windowsserver平台,使用JDK+Netbeans+MySQL为开发工具。
三、实验原理
PC机,基于windowxp或者windowsserver平台,使用JDK+Netbeans+MySQL为开发工具
1、
(1)实验原理图
login.jsp
↓
judge.jsp
↓↓
Successs.jsp
Fail.jsp
↓
chatroom.jsp
↓
say.jsp
(2)表示层有:
login.jsp显示登录页面;fail.jsp显示登录失败页面;chatsuccess.jsp登录成功页面
及聊天室页面说话框
聊天显示框
控制逻辑层:
login.jsp进行登录,judge.jsp进行判断,成功进入chatsuccess.jsp点击按钮,跳转到chatroom.jsp,说话时跳到say.jsp,如果登录失败,跳到Fail.jsp
数据层:
程序中用到了cookie、session以及application,cookie用来保存用户的会话信息,显示登录次数,session用来防止匿名用户登录,application用来记录聊天信息。
(3)用到了Servlet的:
全都是由JSP换成Servlet之后再执行的。
(4)数据设计:
使用数据库。
(5)跳转关系:
login.jsp进行登录,judge.jsp进行判断,成功进入chatsuccess.jsp点击按钮,跳转到chatroom.jsp,说话时跳到say.jsp,如果登录失败,跳到Fail.jsp
(6)会话管理技术及内置对象在程序中的应用:
程序中用到了cookie,session以及application。
四、实验代码
登录代码,以及判断代码已经有前面的实验完成。
下面只扩关于登录到聊天室之后的部分。
通过judge.jsp判断后跳转到chatsuccess.jsp页面,显示登录成功,并cookie跟踪用户显示用户第几次登录。
代码为
<%Stringname1=session.getAttribute("Uname").toString();
Stringpassword1=session.getAttribute("Password").toString();
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connectionconn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/chat","root","javaee");
Stringsql="select*fromuserwhereusername='"+name1+"'";
Statements=conn.createStatement();
ResultSetrs=s.executeQuery(sql);
rs.next();
Stringname=rs.getString("username");
Stringpsw=rs.getString("password");
if(name1.equals(name)&&password1.equals(psw)){%>
欢迎!
<%=name1%>您已成功登录
<%
Cookiecookie=null;
Cookie[]cookies=request.getCookies();
if(cookies!
=null){
booleanflag=false;
for(inti=0;(iflag);i++){
if(cookies[i].getName().equals("VisitTime")){
Stringv=cookies[i].getValue();
intvalue=Integer.parseInt(v)+1;
cookies[i].setValue(Integer.toString(value));
response.addCookie(cookies[i]);
flag=true;
cookie=cookies[i];
}
}
}
if(cookie==null){
intmaxAge=10000;
cookie=newCookie("VisitTime","1");
cookie.setPath(request.getContextPath());
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
%>
欢迎您第<%=cookie.getValue()%>次访问本页面
登录成功后转到chatroom界面,在说话时跳转到say.jsp处理聊天信息
<%java.util.Datenow=newjava.util.Date();
DateFormatd3=DateFormat.getTimeInstance();
Stringstr3=d3.format(now);
out.println(str3+"");
out.println(vn+":
");
ArrayListal_say=newArrayList();
al_say=(ArrayList)application.getAttribute("say");
for(intsays=0;says{%>
<%=al_say.get(says)%>
<%
ArrayListal_say=newArrayList();
al_say=(ArrayList)application.getAttribute("say");
for(intsays=0;says%>
<%=al_say.get(says)%>