JSP实训指导书.doc_第1页
JSP实训指导书.doc_第2页
JSP实训指导书.doc_第3页
JSP实训指导书.doc_第4页
JSP实训指导书.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP实训指导书 JSP实训指导书简单论坛制作 一、需求分析与功能模块设计1.学生自行参考教材相关内容完成需求分析2.学生自行参考教材进行概要设计(功能模块划分) 二、创建数据库1.设计数据库学生根据前一阶段分析与设计,完成数据库的设计,要求在报告中绘制数据库信息表以及采用E R图表述数据信息。 2.完成数据库创建按照要求实现数据库并使用相关软件创建数据库。 提供以下参考脚本/*论坛项目所使用的数据库b bs的建库脚本*/CREATE DATABASEbbsDEFAULT CHARACTERSET utf8COLLATE utf8_unicode_ci;USEbbs;/*Table structurefor tableusers用户信息表*/DROP TABLEIF EXISTSusers;CREATE TABLEusers(uidint (11)NOT NULLAUTO_INCREMENT,unamevarchar (20)NOT NULL,upwvarchar (12)NOT NULL,usexchar (2)DEFAULT密,udatetimestamp NOT NULL DEFAULTCURRENT_TIMESTAMP,uemailvarchar (50)DEFAULT NULL,ulevelsmallint (6)DEFAULT1,ulogovarchar (50)DEFAULT NULL,PRIMARY KEY(uid),UNIQUE KEYuname(uname),KEYname(uname)ENGINE=InnoDB AUTO_INCREMENT=7DEFAULT CHARSET=utf8;/*Table structurefor tableposts主题帖表*/DROP TABLEIF EXISTSposts;CREATE TABLEposts(pidbigint (20)NOT NULLAUTO_INCREMENT,pTitlevarchar (50)NOT NULL,pContentvarchar (500)NOT NULL,pAuthorvarchar (16)NOT NULL,pDatetimestamp NOT NULL DEFAULTCURRENT_TIMESTAMP,pRepliesint (11)NOT NULL DEFAULT0,pClicksint (11)NOT NULL DEFAULT0,pLastUpdatechar (20)DEFAULT NULL,pLastAuthorvarchar (16)DEFAULT NULL,PRIMARY KEY(pid),KEYauthor(pAuthor),CONSTRAINTauthorFOREIGN KEY(pAuthor)REFERENCESusers(uname)ON DELETECASCADE ONUPDATE CASCADE)ENGINE=InnoDB AUTO_INCREMENT=10DEFAULT CHARSET=utf8;/*Table structurefor tablereply回复帖表*/DROP TABLEIF EXISTSreply;CREATE TABLEreply(rIdint (11)NOT NULLAUTO_INCREMENT,pidbigint (20)NOT NULL,rTitlevarchar (50)DEFAULT NULL,rContentvarchar (500)NOT NULL,rAuthorvarchar (20)NOTNULL,rDatetimestamp NOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARY KEY(rId),KEYpid(pid),KEYrAuthor(rAuthor),CONSTRAINTreply_ibfk_1FOREIGN KEY(pid)REFERENCESposts(pid)ON DELETECASCADE ONUPDATE CASCADE,CONSTRAINTreply_ibfk_2FOREIGN KEY(rAuthor)REFERENCESusers(uname)ON DELETECASCADE ONUPDATE CASCADE)ENGINE=InnoDB AUTO_INCREMENT=3DEFAULT CHARSET=utf8;/*创建视图post_user和r eply_user,在显示帖子详情时使用到视图*/CREATE VIEWreply_userAS SELECT*FROM usersAS u,reply ASr WHEREr.rAuthor=u.uname;CREATE VIEWpost_userAS(SELECT*FROM usersAS u,posts ASp WHEREp.pAuthor=u.uname);/*Table structurefor tablesection版块信息表,如果添加板块信息才使用下面内容*/DROP TABLEIF EXISTSsection;CREATE TABLEsection(snoint (11)NOTNULLAUTO_INCREMENT,snamevarchar (30)COLLATE utf8_unicode_ci NOTNULL,unamevarchar (20)COLLATE utf8_unicode_ci DEFAULTNULL,sdatetimestamp NOTNULLDEFAULTCURRENT_TIMESTAMP ONUPDATECURRENT_TIMESTAMP,PRIMARY KEY(sno)ENGINE=InnoDB AUTO_INCREMENT=7DEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci; 三、创建通用类访问数据库1.创建属性文件属性文件d perties(文件路径src目录),文件内容参照如下driver=.mysql.jdbc.Driver url=jdbc:mysql:/localhost:3306/bbs?useUnicode=true&characterEncoding=utf8username=root password=1234562.创建通用类Conn.java参考内容如下package dbUtil;import java.io.InputStream;import java.sql.*;import java.util.Properties;import dbUtil.Conn;public classConnprivate Connectioncon;private Statementst;/构造函数,在创建Conn类的对象时自动调用public Conn()throws ExceptionProperties pros=new Properties();InputStream in;in=Conn.class.getResourceAsStream(/perties);/加载属性文件,该文件应存放于项目的源包下(src/java)pros.load(in);in.close();String driver=pros.getProperty(driver);String url=pros.getProperty(url);String username=pros.getProperty(username);String password=pros.getProperty(password);Class.forName(driver);con=DriverManager.getConnection(url,username,password);st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/executeQuery-执行查询语句public ResultSetexecuteQuery(String sql)ResultSet rs=null;tryrs=st.executeQuery(sql);catch(Exception e)e.printStackTrace(System.err);return rs;/executeUpdate方法-执行对数据库的更新的SQL语句public intexecuteUpdate(String sql)tryreturn st.executeUpdate(sql);catch(Exception e)e.printStackTrace(System.err);return0;/创建预编译对象的方法public PreparedStatementprepareStatement(String sql)tryreturn con.prepareStatement(sql);catch(SQLException e)e.printStackTrace(System.err);return null;/*关闭各项资源的方法*/public voidclose()tryif(st!=null)st.close();catch(Exception e)e.printStackTrace(System.err);tryif(con!=null)con.close();catch(Exception e)e.printStackTrace(System.err); 四、各功能模块1用户注册模块1)设计并完成相关B ean的制作?Users.java/*Document:Users.java*Created on:xx-6-9,0:19:28*Author:sunny*/package bean;public classUsersprivate String uname,upw,upw2,usex,udate,uemail,ulogo;private int ulevel;public StringgetUname()return uname;public voidsetUname(String uname)this.uname=uname;public StringgetUpw2()return upw2;public voidsetUpw2(String upw2)this.upw2=upw2;public StringgetUdate()return udate;public voidsetUdate(String udate)this.udate=udate;public StringgetUemail()return uemail;public voidsetUemail(String uemail)this.uemail=uemail;public intgetUlevel()return ulevel;public voidsetUlevel(intulevel)this.ulevel=ulevel;public StringgetUlogo()return ulogo;public voidsetUlogo(String ulogo)this.ulogo=ulogo;public StringgetUpw()return upw;public voidsetUpw(String upw)this.upw=upw;public StringgetUsex()return usex;public voidsetUsex(String usex)this.usex=usex;?UserBean.java packagebean;import dbUtil.Conn;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public classUsersBeanprivate Users user;public UsersgetUser()return user;public voidsetUser(Usersu)this.user=u;public StringbasicCheck()String uname,upw,upw2;uname=user.getUname();upw=user.getUpw();upw2=user.getUpw2();String msg=;if(uname=null|uname.equals()|upw=null|upw.equals()msg=请填写用户名和密码.;else if(!upw.equals(upw2)msg=两次输入的密码不一致!;return msg;public StringuniqueName()String uname=user.getUname();Conn conn=null;ResultSet rs=null;String msg=;tryconn=new Conn();String sql=select*from userswhere uname=+uname+;rs=conn.executeQuery(sql);if(rs!=null)if(rs.next()msg=用户名+uname+已被使用,请改用其它名字.;catch(Exception ex)ex.printStackTrace(System.err);finallytryif(rs!=null)rs.close();catch(SQLException ex)ex.printStackTrace(System.err);conn.close();return msg;public booleaninsert()boolean suess=false;Conn conn=null;PreparedStatement pt=null;if(user=null)return false;tryconn=new Conn();String sql=insert intousers(uname,upw,usex,uemail,ulogo)values(?,?,?,?,?);pt=conn.prepareStatement(sql);pt.setString(1,user.getUname();pt.setString(2,user.getUpw();pt.setString(3,user.getUsex();pt.setString(4,user.getUemail();pt.setString(5,user.getUlogo();suess=pt.executeUpdate()0;catch(Exception ex)ex.printStackTrace(System.err);finallytryif(pt!=null)pt.close();catch(SQLException ex)ex.printStackTrace(System.err);conn.close();return suess;2)界面制作与前端验证程序在j s目录里确认有以下j s文件用于进行前段验证以下是注册页面参考代码?reg.jsp欢迎进入JSP学习论坛 首页 登录 注册 与我联系请填写注册信息用户名*size=40maxlength=20/密码*确认密码*性别男女 密Emailid=uemail选择头像/id=hlogoname=hlogo/ 选择 上传学习案例-JSP实用教程编写组?chkReg.jsp2.用户登录模块?login_head.jsp欢迎进入JSP学习论坛 首页 登录 注册 与我联系foot.jsp学习案例-JSP实用教程编写组?exit.jsp?namelist.jsp?login.jsp请登录用户名*长度要求为3-20个字符.密码*密码只能由数字或字母构成.保存期限 不保存 一个月 半年在指定的期限内可自动登录?chkLogin.jsp3.帖子浏览模块?head.jsp%Stringuname=游客;String pageName=request.getRequestURI();pageName=pageName.substring(pageName.lastIndexOf(/)+1);if(!pageName.equals(login.jsp)uname=(String)session.getAttribute(username);if(uname=null)Cookie ck=request.getCookies();if(ck!=null)for(int i=0;i,欢迎进入JSP学习论坛 首页 登录 退出 注册 与我联系?index.jsp1)firstp=pageno-3;if(pageno+31)%首页%for(int i=firstp;i=lastp;i+)if(i=pageno)out.println(i);elseStrings=+i+;out.println(s);if(lastp末页按关键字%/end ofwhile,本页所有帖子都显示完毕out.print(主题作者最后更新回复数点击数);/表格显示完毕catch(SQLException e)out.println(网站出错,请与管理员联系.);e.printStackTrace(System.err);finallytryif(rs!=null)r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论