test2009MVCDButils课程设计报告.docx_第1页
test2009MVCDButils课程设计报告.docx_第2页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

基于mvc模式的博客评论表的设计1、 功能简介该系统主要采用mvc模式来对博客评论信息进行显示、修改、添加、删除等操作。2、 mvc原理图在mvc模式中分为模型、视图、控制器三层。模型:代表应用程序状态和业务逻辑。视图:提供可交互的客户界面,向客户显示模型数据。控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户。具体如下图所示。模型层(model)又叫业务逻辑层封装业务方法由实现相应功能的函数组成javabean控制器层(control)接受用户请求调用模型层实现相应功能向视图层输出结果servlet返回计算结果调用服务器端输出用户请求视图层(view)用户直接可看见,可输入数据的界面jsp客户端3、 mvc各部分分工viewmodelcontrollogin.jsp登录界面blogdao.java博客评论信息修改deleteservlet.java控制博客评论信息的删除admin_main.jsp主界面userdao.java用户信息修改insertservlet.java控制博客评论信息的添加insert.jsp添加界面blog.java博客评论信息listservlet.java控制博客评论信息的显示list_blogs.jsp显示全部信息界面user.java用户信息loginservlet.java控制登录update.jsp更新界面dbconnection.java数据库连接updatedoservlet.java控制博客评论信息的更新updateservlet.java控制博客评论信息的修改4、 系统流程图5、 表的设计1、 表字段分配用户表列名数据类型是否允许为空是否主键user_id int否是user_name varchar(50) 否否user_pass varchar(50) 否否emailvarchar(100) 是否levelchar(2)是否photovarchar(20) 是否博客评论表列名数据类型是否允许为空是否主键idint否是blog_idvarchar(100)是否namevarchar(100)是否contentvarchar(100)是否2、 表的创建博客评论表create table blog ( id int not null auto_increment, blog_id varchar(300) default null, name varchar(100) default null, content varchar(100) default null, primary key (id) engine=myisam auto_increment=11 default charset=gbk;用户表create table user_table (user_id int not null auto_increment, user_name varchar(50) not null, user_pass varchar(50) not null, email varchar(100), level char(2), photo varchar(20), createdate datetime, primary key (user_id);6、 具体实现过程1、 博客评论管理系统登陆界面(1)图用户名:admin登陆密码:1(2) 代码(a)view部分 function check() if(myform.username.value = ) alert(请输入用户名!); myform.username.focus(); return; if(myform.password.value = ) alert(请输入密码); myform.password.focus(); return; myform.submit(); 用户名: 密码: all rights reserved.版权没有 copyright2008如有任何问题和建议,请e-mail to me!建议您使用1024*768分辨率,ie6.0以上版本浏览本站! %string usernamepasswordlevelerror = (string) request.getparameter(usernamepasswordlevelerror);if (usernamepasswordlevelerror != null & !usernamepasswordlevelerror.equals() out.println(用户名或密码错误或权限错误); % (b)model部分public class userdao /private static final logger log = logger.getlogger(userdao.class); public int findbynameandpassword(string username, string password) long result = 0; try string querysql = select count(*) from user_table where user_name=? and user_pass=?; queryrunner queryrunner = new queryrunner(jdbcutils.getdatasource(); result = (long) queryrunner.query(querysql, new scalarhandler(1), new object username, password); /system.out.println(arr); catch (sqlexception e) system.out.println(数据库操作错误); system.out.println(e.getmessage(); return (int)result; (c)control servlet部分protected void processrequest(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception response.setcontenttype(text/html;charset=utf-8); printwriter out = response.getwriter(); httpsession session = request.getsession(); string path = login.jsp; / 1、接收传递的参数 string username = request.getparameter(username); string password = request.getparameter(password); string level = request.getparameter(level); / 2、将请求的内容赋值给vo类 user user = new user(); user.setusername(username); user.setpassword(password); user.setlevel(level); userdao userdao = new userdao(); int flag = userdao.findbynameandpassword(username,password); if (flag = 1) system.out.println(管理员 + user.getusername() + 登陆成功); session.setattribute(username, user.getusername(); response.sendredirect(admin/admin_main.jsp); else if (flag = 0) response.sendredirect(login.jsp?usernamepasswordlevelerror=error); 2、 主页面(1) 图(2) 代码 ? 3、 显示模块(1) 运行界面(2) 代码(a) view部分 .tablecss2 border:#c0c0c0 1px solid; border-collapse:collapse; margin:5px; /*.tablecss2 td border-bottom: #c0c0c0 1px solid; border-right: #c0c0c0 1px solid; padding:2px; */.tablecss2 tr border-bottom: #c0c0c0 1px solid; border-right: #c0c0c0 1px solid; padding:2px; background-color:#e8e8e8 .style1 width: 800px; height: 100px; margin: 0px auto; margin-bottom:20px; border:1px solid #96c2f1; background-color: #eff7ff; border-collapse:collapse /* .style1 a font-size:20px; text-decoration:none; color:green */ .style1 td border:1px solid #000000; border-collapse:collapse ; .style1 th border:1px solid #000000; background-color: #0099cc; a:link color: #ff0000; text-decoration: none /* 未访问的链接 */a:visited color: #000000; text-decoration: none /* 已访问的链接 */a:hover color: #ff00ff; text-decoration: underline /* 鼠标在链接上 */a:active color: #0000ff; text-decoration: underline /* 激活链接 */ 请输入查询内容: 添加新博客评论 博客id 博客地址 姓名 内容 编辑 修改 % if (all.size() a href=update?id= img onclick=javascript:edit() height=16 src=./images/pencil.gif width=16 border=0 img onclick=javascript:del() height=16 src=./images/bin_closed.gif width=16 border=0 (b)model部分 public blog querybyid(int id) blog blog = null; string sql = select id, + blog_id, + name, + content from blog where id=?; / connection conn = dbconnection.getconnection(); queryrunner qr = new queryrunner(jdbcutils.getdatasource(); try blog = (blog) qr.query(sql, new beanhandler(blog.class),id); catch (sqlexception e) e.printstacktrace(); return blog;(c)control servlet部分 protected void processrequest(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception response.setcontenttype(text/html;charset=utf-8); request.setcharacterencoding(gb2312); string keyword = request.getparameter(keyword); / out.println(keyword) ; if (keyword = null) / 没有任何查询条件 keyword = ; / 编码转换 printwriter out = response.getwriter(); try blogdao blogdao = new blogdao(); request.setattribute(blogs,blogdao.queryall() ; request.getrequestdispatcher(list_blogs_jstl.jsp).forward(request, response); finally out.close(); 4、 添加数据模块(1) 运行界面(2) 代码(a) view部分jsp+jdbc 博客评论管理添加新博客评论博客地址: 姓名: 内容: 回到博客评论列表页(b)model部分 public boolean insert(blog blog) string sql = insert into blog( + blog_id, + name, + content ) values(?,?,?); /connection conn = dbconnection.getconnection(); boolean updatesuccessflag = false; object insertparams = blog.getblog_id(), blog.getname(), blog.getcontent(); try queryrunner qr = new queryrunner(jdbcutils.getdatasource(); int i = qr.update( sql, insertparams); if (i = 1) / 如果插入成功,则肯定能执行到此段代码 updatesuccessflag = true; catch (sqlexception e) system.out.println(更新操作中出现错误!); system.out.println(e); return updatesuccessflag; (c)control servlet部分public class insertservlet extends httpservlet /* * processes requests for both http get and post methods. * param request servlet request * param response servlet response * throws servletexception if a servlet-specific error occurs * throws ioexception if an i/o error occurs */ protected void processrequest(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception response.setcontenttype(text/html;charset=utf-8); printwriter out = response.getwriter(); try / string subject = request.getparameter(subject) ;/string choice_a = request.getparameter(choicea) ;/string choice_b = request.getparameter(choiceb) ;/string choice_c= request.getparameter(choicec) ;/string choice_d = request.getparameter(choiced) ;/string answer = request.getparameter(answer);/ string typeid = request.getparameter(typeid);/ string categoryid = request.getparameter(categoryid);/ question question=new question();/ question.setsubject(subject);/ question.setchoicea(choice_a);/ question.setchoiceb(choice_b);/ question.setchoicec(choice_c);/ question.setchoiced(choice_d);/ question.setanswer(answer);/ question.setanswer(answer);/ question.settypeid(typeid);/ question.setcategoryid(categoryid); blog blog = new blog(); map map = request.getparametermap(); beanutils.populate(blog, map); blogdao blogdao = new blogdao(); boolean flag = false; flag=blogdao.insert(blog); request.setattribute(flag, new boolean(flag); string path = insert_do.jsp; request.getrequestdispatcher(path).forward(request, response); catch (exception e) finally out.close(); / /* * handles the http get method. * param request servlet request * param response servlet response * throws servletexception if a servlet-specific error occurs * throws ioexception if an i/o error occurs */override protected voiddoget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception processrequest(request, response); /* * handles the http post method. * param request servlet request * param response servlet response * throws servletexception if a servlet-specific error occurs * throws ioexception if an i/o error occurs */override protected voiddopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception processrequest(request, response); /* * returns a short description of the servlet. * return a string containing servlet description */override public string getservletinfo() return short description; / 5、 修改数据模块(1) 运行模块(2) 代码(a) view部分jsp+dao 博客评论管理程序博客评论管理范例 jsp + dao实现 修改博客评论 博客地址 input type=text name=blog_id value= 姓名 input type=text name=name value= 内容 input type=text name=content value= input type=hidden name=id value= 回到博客评论列表页(b)model部分public boolean update(blog blog) string sql = update blog set blog_id=?, + name=?, +content=? where id=?; connection conn =

温馨提示

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

评论

0/150

提交评论