javaEE衡量生活质量课程设计报告Word文档格式.doc
《javaEE衡量生活质量课程设计报告Word文档格式.doc》由会员分享,可在线阅读,更多相关《javaEE衡量生活质量课程设计报告Word文档格式.doc(16页珍藏版)》请在冰点文库上搜索。
登陆窗口
密码
no
yes
操作界面
计算
删除
插入
查询
图1—3(jsp页面构造)
Jsp页面传递参数
调用servlet类
参数
计算方法servlet
删除方法servlet
查询方法servlet
插入方法servlet
删除方法dao类
查询方法dao类
插入方法dao类
计算方法dao类
图1—4(Java类功能调用)
4.2Jsp页面设计
4.2.1登录界面
图1—4(登录界面)
代码如下:
<
body>
<
formaction="
login"
method="
post"
>
center>
欢迎登陆生活质量衡量系统!
/center>
用户名称:
inputtype="
text"
name="
username"
value="
"
br>
用户密码:
password"
userpsw"
submit"
登录"
reset"
重写"
/form>
/body>
4.2.2登录成功界面
图1—5(登录成功查询界面)
<
servlet/ListAllThingServlet"
登陆成功!
点击获得详细的信息~~<
inputtype="
name="
value="
显示所有信息"
/>
4.2.3查询结果界面
图1—6(查询结果界面)
4.3Java方法设计
4.3.1Servlet类
(1)密码验证的Servlet类的代码如下:
publicclassLoginServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
Stringusername=(String)request.getParameter("
);
Stringuserpsw=(String)request.getParameter("
System.out.println(username);
Stringforward="
;
if(username.equals("
123"
)&
&
userpsw.equals("
)){
forward="
/success.jsp"
}else{
/error.jsp"
}
(2)显示所有信息的servlet类代码设计如下:
publicclassListAllThingServletextendsHttpServlet{
doPost(request,response);
ThingDAOthingDAO=newThingDAO();
Listlist=thingDAO.getAllThing();
request.setAttribute("
allthing"
list);
request.getRequestDispatcher("
/showAllThing.jsp"
).forward(request,response);
}
(3)控制增删改操作的servlet类代码设计如下:
插入支出情况代码:
publicclassSaveOutServletextendsHttpServlet{
doublex=0.0;
doubley=0.0;
x=Double.parseDouble(request.getParameter("
eating"
));
y=Double.parseDouble(request.getParameter("
others"
Stringtimes=(String)request.getParameter("
times"
ThingDAOthingDAO=newThingDAO();
try
{
thingDAO.saveUser(x,y,times);
}
catch(Exceptione)
e.printStackTrace();
删除支出情况代码:
publicclassDeleteOutServletextendsHttpServlet{
doublex=0.0;
x=Double.parseDouble(request.getParameter("
ThingDAOthingDAO=newThingDAO();
try
{
thingDAO.deleteUser(x);
}
catch(Exceptione)
e.printStackTrace();
衡量生活质量代码:
publicclassCaculateextendsHttpServlet{
doPost(request,response);
Stringtime1=request.getParameter("
time1"
Stringtime2=request.getParameter("
time2"
ThingDAOthingDAO=newThingDAO();
try
{
Stringresulte=thingDAO.caculate(time1,time2);
request.setAttribute("
resulte1"
resulte);
request.getRequestDispatcher("
/caculateresulte.jsp"
).forward(request,response);
}
catch(Exceptione)
e.printStackTrace();
4.3.2Dao类
(1)显示所有支出情况的Dao类代码设计如下:
publicclassThingDAO{
publicListgetAllThing(){
Connectioncon=DBConnection.getConnection();
Listlist=newArrayList();
try{
Statementps=con.createStatement();
//Statement("
select*frommoneying"
ResultSetrs=ps.executeQuery("
while(rs.next()){
Thingthing=newThing();
thing.setEating(rs.getDouble
(1));
thing.setOthers(rs.getDouble
(2));
thing.setTimes(rs.getString(3));
list.add(thing);
}
returnlist;
}catch(SQLExceptione){
finally{
if(con!
=null){
try{
con.close();
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
(2)添加,删除和统计生活质量的Dao类代码设计如下:
publicbooleansaveUser(doublem,doublen,Stringq)throwsException{
Connectioncon=DBConnection.getConnection();
StringlistSQL="
insertintomoneyingvalues(?
?
)"
PreparedStatementpstmt=con.prepareStatement(listSQL);
try{
pstmt.setDouble(1,m);
pstmt.setDouble(2,n);
pstmt.setString(3,q);
pstmt.executeUpdate();
mit();
returntrue;
}catch(SQLExceptione){
con.rollback();
e.printStackTrace();
}finally{
con.close();
returnfalse;
publicbooleandeleteUser(doublex)throwsException{
Connectioncon=DBConnection.getConnection();
PreparedStatementpstmt=con.prepareStatement("
deletefrommoneyingwhereeating=?
try{
pstmt.setDouble(1,x);
pstmt.executeUpdate();
mit();
returntrue;
}catch(SQLExceptione){
con.rollback();
e.printStackTrace();
}finally{
con.close();
}
returnfalse;
}
publicStringcaculate(Stringx1,Stringx2)//计算式温饱还是小康生活水平
inti=0;
intj=0;
StringSQL1="
selectidfrommoneyingwheretimes=x1"
StringSQL2="
selectidfrommoneyingwheretimes=x2"
try
{
PreparedStatementpsmt1=con.prepareStatement(SQL1);
PreparedStatementpsmt2=con.prepareStatement(SQL2);
ResultSetrs1=psmt1.executeQuery();
ResultSetrs2=psmt1.executeQuery();
if(rs1.next())
i=rs1.getInt(4);
if(rs2.next())
j=rs2.getInt(4);
catch(SQLExceptione)
doubleeatingtotal=0.0;
doubletotal=0.0;
intk=0;
for(k=i;
k<
=j;
k++)
StringSQL3="
seclecteating,othersfrommoneyingwhereid=k"
PreparedStatementpsmt3=con.prepareStatement(SQL3);
ResultSetrs3=psmt3.executeQuery();
eatingtotal=eatingtotal+rs3.getDouble
(1);
total=total+rs3.getDouble
(1)+rs3.getDouble
(2);
catch(SQLExceptione)
{
if(eatingtotal/total<
0.2)
return"
xiaokang"
elseif(eatingtotal/total>
0.5)
return"
pinkun"
else{
return"
wenbao"
4.3.3数据库连接类
数据库连接代码如下:
publicclassDBConnection{
publicstaticConnectiongetConnection(){
finalStringdriverName="
com.microsoft.jdbc.sqlserver.SQLServerDriver"
finalStringurl="
jdbc:
microsoft:
sqlserver:
//localhost:
1433;
databasename=mydb"
Class.forName(driverName);
}catch(ClassNotFoundExceptione){
}try{
Connectioncon=DriverManager.getConnection(url,"
sa"
"
con.setAutoCommit(false);
returncon;
}returnnull;
5总结与展望
通过本次课程设计自己JavaWeb编程加深了理解,对MVC模型的工作原理和工作过程有了更深刻的理解,对struts2模型及其工作过程也有了比从前更深的认识,对于如何配置web.xml和struts.xml文件也加深了记忆,Filterdispatcher过滤器的作用自己也进一步加深了印象。
这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。
我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。
事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。
开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意义。
所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。
我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。
通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。
参考文献
[1]范立峰,林果园.JavaWeb程序设计教程.第1版,北京:
人民邮电出版社,2010
成绩评定
成绩教师签字
18/16