黑龙江大学
实验报告
黑龙江大学教务处
实验名称:JDBC应用
实验目的
利用JDBC实现好友录程序。
实验类型
设计型
实验环境
编程环境:myeclipse8
运行环境:Windows XP
主要设计思想与算法
在登陆界面填写好表单后点击提交会提交到logincheck.jsp,logincheck.jsp通过request获取表单的内容,再通过数据库查询与用户名相符的记录,如果存在该用户则比较验证密码,如果密码不正确则返回密码错误信息关键代码如下所示:String name = request.getParameter("username");
String password = request.getParameter("password");
DBconnect connect = new DBconnect();
Connection con = connect.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from user where name=\""+ name + "\"");
if (rs.next()) {
if (rs.getString(3).equals(password)) {
Cookie cname = new Cookie("username", name);
Cookie cpsw = new Cookie("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",new String("用户密码错误!"));
request.getRequestDispatcher("login.jsp").forward(request,respons e);
}
}
else {
request.setAttribute("nameError", new String("该用户不存在!"));
request.getRequestDispatcher("login.jsp").forward(request,respons e);
}
显示所有好友信息的页面allfriend.jsp,首先判断session中是否有用户的信息,如果有则从数据库中查询相应的好友信息,如果没有说明尚未登录,则直接跳转到login.jsp页面具体代码如下所示:
<%
String user=(String)session.getAttribute("user");
if (user == null)
response.sendRedirect("login.jsp");
int rsCount=0,allNum,pageNum;//rsCount记录所有的好友个数,allNum记录页数,pageNum记录当前是第几页(从1开始)
String temp;
temp=request.getParameter("pageNum");
if(temp==null)
pageNum=1;
else
pageNum=Integer.parseInt(temp);
DBconnect connect = new DBconnect();
Connection con = connect.getConnection();
Statement st = con.createStatement();
ResultSet rs;
temp=request.getParameter("count");
if(temp==null){
rs=st.executeQuery("select count(*) from myfriend where userid in(select userid from user where name=\""+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 * from myfriend where userid in(select userid from user where name=\""+ user + "\")");
%>
在所有好友页面做到分页显示的方法如下所示:
<%
if(pageNum!=1){//第一页上一页的显示
out.print(" href=allfriend.jsp?pageNum=1&count="+rsCount+">第一页
out.print("上一页 ");
}
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;
else if(i==0)
out.print(" "+pageNum);
else
out.print(" " + (pageNum + i)+ " ");
}
if (pageNum + 2 < allNum)//后面的省略号的显示
out.print(" ... ");
if (pageNum < allNum){//下一页尾页的显示方式
out.print(" 下一页 ");
out.print(" href=allfriend.jsp?pageNum="+allNum+"&count="+rsCount+">尾页
}
else{
out.print(" 下一页");
out.print(" 尾页");
}
out.print(" 返回首页
");%>
registercheck.jsp页面需要对用户填写的信息进行检验,如果合标准则插入数据库中否则通过request将错误的信息返回注册页面中:
<%
String name,password,pswconfirm;
boolean error=false;
name=request.getParameter("username");
password=request.getParameter("password");
pswconfirm=request.getParameter("pswconfirm");
if(name==null||name.length()==0){
request.setAttribute("nameError",new String("用户名不能为空!"));
error=true;
}
else if(name.length()>12){
request.setAttribute("passwordError",new String("用户名过长!"));
error=true;
}
else if(password==null||password.length()==0){
request.setAttribute("passwordError",new String("密码不能为空!"));
error=true;
}
else if(password.length()>12){
request.setAttribute("passwordError",new String("密码过长!"));
error=true;
}
else if(!password.equals(pswconfirm)){
request.setAttribute("pswconfirmError",new String("密码前后不一致!"));
error=true;
}
if(error){
request.getRequestDispatcher("Register.jsp").forward(request,resp onse);
return ;
}
DBconnect connect=new DBconnect();
Connection con=connect.getConnection();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from user where
name=\""+name+"\"");//检查用户是否已经存在
if(rs.next()){
request.setAttribute("nameError",new String("用户名已经存在!"));
request.getRequestDispatcher("Register.jsp").forward(request,resp onse);
}
else{
st.executeUpdate("insert into user (name,password) values (\""+name+"\",\""+password+"\")");
session.setAttribute("user",name);
response.sendRedirect("index.jsp");
}
%>
模糊查询的代码如下所示:
<% String username=(String)session.getAttribute("user");
if(username==null){
response.sendRedirect("login.jsp");
return ;
}
out.print("
out.print("
request.setCharacterEncoding("gbk");
String queryName=request.getParameter("querryName");
DBconnect connect=new DBconnect();
Connection con=connect.getConnection();
PreparedStatement preparest=con.prepareStatement("select * from myfriend where userid in(select userid from user where
name=\""+username+"\") and name like \"%"+queryName+"%\"");
ResultSet rs=preparest.executeQuery();
%>
修改好友信息需要通过update_friend.jsp填写表单,然后提交到update_check.jsp,update_check.jsp的关键代码如下所示:
<%
String user_name=(String)session.getAttribute("user");
if(user_name==null)
response.sendRedirect("login.jsp");
DBconnect connect=new DBconnect();
Connection con=connect.getConnection();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select userid from user where
name=\""+user_name+"\"");
rs.next();
String userid=rs.getString(1);
request.setCharacterEncoding("gb2312");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String age=request.getParameter("age");
if(age==null||age.length()==0)
age="0";
String qqnum=request.getParameter("qqnum");
String tel=request.getParameter("tel");
String email=request.getParameter("email");
String address=request.getParameter("address");
//
//,\""+sex+"\","+age+",\""+qqnum+"\",\""+tel+"\",\""+email+"\",\""+ad dress+"\"
try{
String id=(String)session.getAttribute("id");out.print(""+id+" name"+name);
session.removeAttribute("id");
st.executeUpdate("update myfriend set
name=\""+name+"\",sex=\""+sex+"\",age=\""+age+"\",qq=\""+qqnum+"\",te lephone=\""+tel+"\",email=\""+email+"\",address=\""+address+"\" where id="+id);
out.print("恭喜您,您的好友 style=\"background:#aabb23;\">"+name+"
");
out.print("点击这里返回
");
out.print("点击此处返回首页
");
}
catch(Exception e){
response.setHeader("refresh","4;url=allfriend.jsp");
out.print("修改失败! 请检查是否有非法字符或未填写项");
out.print("点此返回");
}
%>
删除好友直接对数据库进行操作,删除记录就可以。其中删除记录的jsp代码如
下所示:
<%
if(session.getAttribute("user")==null)
r esponse.sendRedirect("login.jsp");
try{
DBconnect connect=new DBconnect();
Connection con=connect.getConnection();
Statement st=con.createStatement();
String []id;
int i;
id= request.getParameterValues("del");
for(i=0;i s t.executeUpdate("delete from myfriend where id="+id[i]); out.print("删除成功! out.print("马上跳转,如果没有跳转请点击 href=\"allfriend.jsp\">这里 response.sendRedirect("allfriend.jsp"); } catch(Exception e){ o ut.print("出错了! } %> 实验结果(测试用例、实验结果) 用户登录的界面如下所示: Index.jsp的页面如下所示: 添加好友的模块运行效果如下所示: 通过页面查看好友时就可以看到添加的好友信息 更新好友信息运行效果如下所示: 删除好友运行效果: 如下为好友信息模糊查询的效果: 实验总结与心得 《jsp程序设计》 Jsp课程设计实验报告 题目学生成绩管理系统 专业 班级 姓名 指导教师 2011年6月28日 目录 一、绪论----------------------------------------------------------------------------------------------------------------- 3 1、系统开发背景 ----------------------------------------------------------------------------------------------- 3 2、项目开发的目标-------------------------------------------------------------------------------------------- 3 3、系统开发所用的技术设备------------------------------------------------------------------------------- 3 二、需求分析 ---------------------------------------------------------------------------------------------------------- 3 1、系统需求分析 ----------------------------------------------------------------------------------------------- 3 2、用户需求 ----------------------------------------------------------------------------------------------------- 4 3、系统框架图如下: ---------------------------------------------------------------------------------------- 5 4、系统设计思想 ----------------------------------------------------------------------------------------------- 5 5、系统设计分析 ----------------------------------------------------------------------------------------------- 5 三、数据库的设计---------------------------------------------------------------------------------------------------- 6 1、本系统将数据存储在七个表中,这七个表分别是 ---------------------------------------------- 6 2、建立数据库的命令如下:------------------------------------------------------------------------------- 8 3、建立数据表的命令如下:------------------------------------------------------------------------------- 8 四、关键技术及代码------------------------------------------------------------------------------------------------- 9 1、管理员登录代码-------------------------------------------------------------------------------------------- 9 2、从数据库中获取用户名和密码的代码。 --------------------------------------------------------- 10 3、留言板的相关代码。 ----------------------------------------------------------------------------------- 12 五、测试--------------------------------------------------------------------------------------------------------------- 16 1、登录界面的测试: -------------------------------------------------------------------------------------- 16 2、查询页面: ------------------------------------------------------------------------------------------------ 18 3、添加页面: ------------------------------------------------------------------------------------------------ 18 4、删除页面: ------------------------------------------------------------------------------------------------ 19 5、修改页面 --------------------------------------------------------------------------------------------------- 20 六、总结--------------------------------------------------------------------------------------------------------------- 20 七、参考文献 -------------------------------------------------------------------------------------------------------- 20 实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:
");
点此返回首页");Jsp课程设计实验报告
web WEB JSP实验报告书
Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期
一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需
要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>