严华 实验一Word文档下载推荐.docx
《严华 实验一Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《严华 实验一Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
voter_name
投票人的名字
voter_company
投票人所在公司
voter_country
投票人所在国家
ip_address
投票人IP地址
vote_time
datetime
投票时间
表result存放候选公司的名字和投票累计数
候选公司名,初始数据:
SunMicroSystem
Oracle
IBM
Microsoft
vote_num
Int(4)
投票累计数,初值0
2.Web程序前后台都先用JSP,采用内置对象或用值对象传递数据;
3.然后修改程序后台响应用Servlet;
4.进一步用JSP+Servlet+JavaBean模式;
5.数据库连接先采用直接JDBC方法,再用JDBC连接池;
6.访问数据库的语句对象先用createStatement(),然后用prepareStatement();
实验步骤
该实验分为两大步进行。
第一步:
调试和阅读本指导书先给出的程序,理解程序结构和基本的原理。
给定的参考程序前后台均用JSP的方法,且获取参数用内置对象request,JDBC采用直接连接方法。
第二步:
同学们在此基础上改造程序完成指定实验内容。
参考程序如下:
1.前台界面votejsp.jsp
从列表框中选择你喜欢的公司,填入你的姓名、所在的公司和国家;
也可查看当前投票情况。
<
%@pagecontentType="
text/html;
charset=GBK"
%>
%@pagelanguage="
java"
import="
java.sql.*"
html>
head>
title>
投票系统<
/title>
/head>
bodybgcolor="
#ffffff"
>
<
scriptlanguage="
javascript"
functionvalidate_form()
{validity=true;
if(!
check_empty(document.submitt.candidate.value))
{validity=false;
alert('
请选择一个候选公司!
'
);
document.submitt.candidate.focus();
returnvalidity;
}
check_empty(document.submitt.voter.value))
alert('
请输入您的姓名'
document.submitt.voter.focus();
check_empty(pany.value))
请输入您所在公司的名称'
pany.focus();
returnvalidity;
}
check_empty(document.submitt.country.value))
请输入您所在的国家的名称'
)
document.submitt.country.focus();
}
}//funend
functioncheck_empty(text)
{returntext.length>
0;
}
/script>
h2align="
center"
fontcolor="
#0000FF"
这是一个简单的投票系统
/font>
/h2>
hr>
formname="
submitt"
action="
result.jsp"
method="
post"
onsubmit="
returnvalidate_form()"
>
divalign="
center>
strong>
选出你最喜爱的公司:
/strong>
br>
/center>
/div>
selectname="
candidate"
size=1>
optionvalue="
"
/option>
optionvalue='
SunMicroSystem'
太阳公司<
Oracle'
Oracle<
IBM'
IBM<
Microsoft'
微软<
/select>
p>
#FF0000"
b>
请认真准确的填写您的个人资料<
/b>
姓&
nbsp;
&
名:
inputtype="
text"
name="
voter"
size="
20"
maxlength="
50"
所在公司:
company"
size=20maxlength="
所在国家:
country"
fontsize="
+1"
submit"
value="
确定投票"
reset"
全部重填"
/form>
ahref="
show.jsp"
target=_blank>
察看当前选举情况<
/a>
/body>
/html>
2.后台响应result.jsp
用内置对象request提取表单参数,为被选择的候选公司增加1票(更新result表),将投票人的信息存入voter表。
java.util.*"
import="
pageEncoding="
GBK"
%!
StringMS_Driver="
com.microsoft.jdbc.sqlserver.SQLServerDriver"
;
StringMS_CON="
jdbc:
microsoft:
sqlserver:
//askeda:
1433;
databaseName=vote_result"
StringUser="
sa"
StringPassword="
54321"
Connectionconnect=null;
Statementstmt=null;
ResultSetrs=null;
Stringcandidate,voterName,voterCompany,voterCountry,ipAdress;
java.util.DatevoteTime;
%//向voter表插入投票人的信息
request.setCharacterEncoding("
//解决中文乱码
candidate=request.getParameter("
voterName=request.getParameter("
voterCompany=request.getParameter("
voterCountry=request.getParameter("
ipAdress=request.getRemoteAddr();
voteTime=newjava.util.Date();
Stringvoter_sql;
voter_sql="
insertintovoter(candidate,voter_name,voter_company,voter_country,"
voter_sql=voter_sql+"
ip_address,vote_time)values('
+candidate+"
'
+voterName;
+voterCompany+"
+voterCountry+"
+ipAdress;
+voteTime.toLocaleString()+"
)"
try{Class.forName(MS_Driver);
}catch(Exceptione){System.err.println("
驱动问题"
try{connect=DriverManager.getConnection(MS_CON,User,Password);
stmt=connect.createStatement();
}catch(SQLExceptionex){System.err.println("
连接问题"
try{stmt.executeUpdate(voter_sql);
插入问题"
%//修改被选中候选人的票数
Stringresult_sql;
result_sql="
updateresultsetvote_num=vote_num+1where"
result_sql=result_sql+"
candidate='
try{stmt.executeUpdate(result_sql);
}catch(Exceptione2){System.err.println("
修改问题"
body>
Palign=center>
FONTsize=5>
谢谢你<
%=voterName%>
对<
%=candidate%>
支持<
/FONT>
/P>
DIValign=center>
查看当前投票情况<
votejsp.jsp"
返回投票<
/DIV>
3.显示当前投票结果的界面show.jsp
查询result表显示候选公司的得票情况,查询voter表显示投票人的信息。
%
bgcolor="
#FFFFFF"
h1>
当前票数统计<
/h1>
tablewidth="
60%"
border="
1"
trbgcolor="
#CCCCFF"
tdwidth="
51%"
#FF0033"
候选公司名<
/td>
49%"
当前票数<
/tr>
StringcompanyName;
intvoteNum;
%>
%//查询result表,返回各候选公司的当前得票数
rs=stmt.executeQuery("
select*fromresultorderbycandidatedesc"
try{while(rs.next())
{companyName=rs.getString("
voteNum=rs.getInt("
vote_num"
tr>
bgcolor="
%=companyName%>
%=voteNum%>
%}rs.close();
}catch(Exceptionexc){System.err.println("
结果集错误"
/table>
hralign="
h2>
投票人的详细资料<
80%"
#FFCCCC"
td>
投票的公司<
投票人姓名<
投票人所在公司<
#0000fFF"
投票人所在国家<
投票人的IP地址<
投票时间<
%rs=stmt.executeQuery("
select*fromvoterorderbyvote_timedesc"
{candidate=rs.getString("
voterName=rs.getString("
voter_name"
voterCompany=rs.getString("
voter_company"
voterCountry=rs.getString("
voter_country"
ipAdress=rs.getString("
ip_address"
voteTime=rs.getDate("
vote_time"
#00FCCCC"
%=voterCompany%>
%=voterCountry%>
%=ipAdress%>
%=voteTime%>
%}
}catch(Exceptionexc2){System.err.println("
try{rs.close();
connect.close();
/p>
实验环境
Windows7,Myeclipse10
实验结果与
分析
1.数据库建立
2.调试和结果
2.1确定投票
2.2查看投票情况
修改数据库连接语句如下:
com.mysql.jdbc.Driver"
mysql:
//localhost:
3306/vote_result"
root"
123456"
实验收获:
通过本次实验,我了解了开发环境的搭建,熟悉了开发环境,更重要的是知道了java连接sql数据库的方法。
实验过程中遇到的问题:
开始使用jdk7.0,tomcat7.0.11的运行启动出错,后来把tomacat7.0.11换为tomcat6.0.29,正常启动了
教师评语
注:
可根据实际情况加页