jsp技术实验报告实验6.docx
《jsp技术实验报告实验6.docx》由会员分享,可在线阅读,更多相关《jsp技术实验报告实验6.docx(14页珍藏版)》请在冰豆网上搜索。
jsp技术实验报告实验6
黑龙江大学
实验报告
课程名称
JSP
实验项目名称
JDBC应用
实验时间
(日期及节次)
年月日第节
专业
软件工程
学生所在学院
软件学院
年级
2011级
学号
20113311
姓名
杜常数
指导教师
青巴图
实验室名称
实验成绩
预习情况
操作技术
实验报告
附加:
综合创新能力
实验
综合成绩
教师签字
黑龙江大学教务处
实验名称:
JDBC应用
实验目的
利用JDBC实现好友录程序。
实验类型
设计型
实验环境
编程环境:
myeclipse8
运行环境:
WindowsXP
主要设计思想与算法
在登陆界面填写好表单后点击提交会提交到logincheck.jsp,logincheck.jsp通过request获取表单的内容,再通过数据库查询与用户名相符的记录,如果存在该用户则比较验证密码,如果密码不正确则返回密码错误信息关键代码如下所示:
Stringname=request.getParameter("username");
Stringpassword=request.getParameter("password");
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
Statementst=con.createStatement();
ResultSetrs=st.executeQuery("select*fromuserwherename=\""+name+"\"");
if(rs.next()){
if(rs.getString(3).equals(password)){
Cookiecname=newCookie("username",name);
Cookiecpsw=newCookie("userpsw",password);
if(request.getParameter("savename")!
=null){//保存用户名
cname.setMaxAge(30*24*60*60);
if(request.getParameter("savepsw")!
=null){//保存用户密码
cpsw.setMaxAge(30*24*60*60);
}//if
else{
cpsw.setMaxAge(0);
}
}//if
else{//否则用户名密码都不保存
cname.setMaxAge(0);
cpsw.setMaxAge(0);
}//else
response.addCookie(cname);
response.addCookie(cpsw);
session.setAttribute("user",name);
response.sendRedirect("index.jsp");
}//if(rs.getString(3)
else{
request.setAttribute("passwordError",newString("用户密码错误!
"));
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
else{
request.setAttribute("nameError",newString("该用户不存在!
"));
request.getRequestDispatcher("login.jsp").forward(request,response);
}
显示所有好友信息的页面allfriend.jsp,首先判断session中是否有用户的信息,如果有则从数据库中查询相应的好友信息,如果没有说明尚未登录,则直接跳转到login.jsp页面具体代码如下所示:
<%
Stringuser=(String)session.getAttribute("user");
if(user==null)
response.sendRedirect("login.jsp");
intrsCount=0,allNum,pageNum;//rsCount记录所有的好友个数,allNum记录页数,pageNum记录当前是第几页(从1开始)
Stringtemp;
temp=request.getParameter("pageNum");
if(temp==null)
pageNum=1;
else
pageNum=Integer.parseInt(temp);
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
Statementst=con.createStatement();
ResultSetrs;
temp=request.getParameter("count");
if(temp==null){
rs=st.executeQuery("selectcount(*)frommyfriendwhereuseridin(selectuseridfromuserwherename=\""+user+"\")");
rs.next();
rsCount=rs.getInt
(1);
}
else
rsCount=Integer.parseInt(temp);
if(rsCount==0){
out.print("您没有可显示好友。
");
out.print("返回首页");
return;
}
allNum=(int)(rsCount/50);//allNum所有页数一页显示50条记录
if(rsCount%50!
=0)
allNum++;
rs=st.executeQuery("select*frommyfriendwhereuseridin(selectuseridfromuserwherename=\""+user+"\")");
%>
在所有好友页面做到分页显示的方法如下所示:
<%
if(pageNum!
=1){//第一页上一页的显示
out.print("pageNum=1&count="+rsCount+">第一页");
out.print("pageNum="+(pageNum-1)+"&count="+rsCount+">上一页");
}
else{
out.print("第一页");
out.print("上一页");
}
if(pageNum-2>1){//前面省略号的显示
out.print("...");
}
for(i=-2;i<=2;i++){//向前向后各显示两项
if((pageNum+i)<1)
continue;
if((pageNum+i)>allNum)
break;
elseif(i==0)
out.print(""+pageNum);
else
out.print("pageNum="+(pageNum+i)+"&count="+rsCount+">"+(pageNum+i)+"");
}
if(pageNum+2out.print("...");
if(pageNumout.print("pageNum="+(pageNum+1)+"&count="+rsCount+">下一页");
out.print("pageNum="+allNum+"&count="+rsCount+">尾页");
}
else{
out.print("下一页");
out.print("尾页");
}
out.print(" 返回首页");%>
registercheck.jsp页面需要对用户填写的信息进行检验,如果合标准则插入数据库中否则通过request将错误的信息返回注册页面中:
<%
Stringname,password,pswconfirm;
booleanerror=false;
name=request.getParameter("username");
password=request.getParameter("password");
pswconfirm=request.getParameter("pswconfirm");
if(name==null||name.length()==0){
request.setAttribute("nameError",newString("用户名不能为空!
"));
error=true;
}
elseif(name.length()>12){
request.setAttribute("passwordError",newString("用户名过长!
"));
error=true;
}
elseif(password==null||password.length()==0){
request.setAttribute("passwordError",newString("密码不能为空!
"));
error=true;
}
elseif(password.length()>12){
request.setAttribute("passwordError",newString("密码过长!
"));
error=true;
}
elseif(!
password.equals(pswconfirm)){
request.setAttribute("pswconfirmError",newString("密码前后不一致!
"));
error=true;
}
if(error){
request.getRequestDispatcher("Register.jsp").forward(request,response);
return;
}
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
Statementst=con.createStatement();
ResultSetrs=st.executeQuery("select*fromuserwherename=\""+name+"\"");//检查用户是否已经存在
if(rs.next()){
request.setAttribute("nameError",newString("用户名已经存在!
"));
request.getRequestDispatcher("Register.jsp").forward(request,response);
}
else{
st.executeUpdate("insertintouser(name,password)values(\""+name+"\",\""+password+"\")");
session.setAttribute("user",name);
response.sendRedirect("index.jsp");
}
%>
模糊查询的代码如下所示:
<%Stringusername=(String)session.getAttribute("user");
if(username==null){
response.sendRedirect("login.jsp");
return;
}
out.print("
我的好友录
");
out.print("
欢迎您"+username+"
");
request.setCharacterEncoding("gbk");
StringqueryName=request.getParameter("querryName");
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
PreparedStatementpreparest=con.prepareStatement("select*frommyfriendwhereuseridin(selectuseridfromuserwherename=\""+username+"\")andnamelike\"%"+queryName+"%\"");
ResultSetrs=preparest.executeQuery();
%>
修改好友信息需要通过update_friend.jsp填写表单,然后提交到update_check.jsp,update_check.jsp的关键代码如下所示:
<%
Stringuser_name=(String)session.getAttribute("user");
if(user_name==null)
response.sendRedirect("login.jsp");
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
Statementst=con.createStatement();
ResultSetrs=st.executeQuery("selectuseridfromuserwherename=\""+user_name+"\"");
rs.next();
Stringuserid=rs.getString
(1);
request.setCharacterEncoding("gb2312");
Stringname=request.getParameter("name");
Stringsex=request.getParameter("sex");
Stringage=request.getParameter("age");
if(age==null||age.length()==0)
age="0";
Stringqqnum=request.getParameter("qqnum");
Stringtel=request.getParameter("tel");
Stringemail=request.getParameter("email");
Stringaddress=request.getParameter("address");
//
//,\""+sex+"\","+age+",\""+qqnum+"\",\""+tel+"\",\""+email+"\",\""+address+"\"
try{
Stringid=(String)session.getAttribute("id");out.print(""+id+"name"+name);
session.removeAttribute("id");
st.executeUpdate("updatemyfriendsetname=\""+name+"\",sex=\""+sex+"\",age=\""+age+"\",qq=\""+qqnum+"\",telephone=\""+tel+"\",email=\""+email+"\",address=\""+address+"\"whereid="+id);
out.print("恭喜您,您的好友#aabb23;\">"+name+"修改成功
");
out.print("点击这里返回
");
out.print("点击此处返回首页
");
}
catch(Exceptione){
response.setHeader("refresh","4;url=allfriend.jsp");
out.print("修改失败!
请检查是否有非法字符或未填写项");
out.print("点此返回");
}
%>
删除好友直接对数据库进行操作,删除记录就可以。
其中删除记录的jsp代码如下所示:
<%
if(session.getAttribute("user")==null)
response.sendRedirect("login.jsp");
try{
DBconnectconnect=newDBconnect();
Connectioncon=connect.getConnection();
Statementst=con.createStatement();
String[]id;
inti;
id=request.getParameterValues("del");
for(i=0;ist.executeUpdate("deletefrommyfriendwhereid="+id[i]);
out.print("删除成功!
");
out.print("马上跳转,如果没有跳转请点击 这里");
response.sendRedirect("allfriend.jsp");
}
catch(Exceptione){
out.print("出错了!
点此返回首页");
}
%>
实验结果(测试用例、实验结果)
用户登录的界面如下所示:
Index.jsp的页面如下所示:
添加好友的模块运行效果如下所示:
通过页面查看好友时就可以看到添加的好友信息
更新好友信息运行效果如下所示:
删除好友运行效果:
如下为好友信息模糊查询的效果:
实验总结与心得