版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE16 《Web程序设计(二)课程设计》实验报告院系名称:管理学院专业班级:电子商务级班学生姓名:学号:注册功能登录功能发布留言查看留言留言修改留言删除合计20分15分15分20分15分15分100分2014年07月
一、实验目的本实验属于设计性实验,目的是使学生在学完《Web程序设计(二)》课程的基本知识之后,通过使用Struts2和Hibernate等框架设计并开发一个简单的在线留言系统,进一步熟悉和领悟JSP、Struts2、Hibernate和Java语言的语法结构和使用方法,通过实验学习JavaWeb系统的MVC开发步骤与方法,任务是设计一个简单的在线留言系统。二、实验步骤1.下载并安装配置JDK、eclipse、tomcat软件,使计算机有一个程序开发设计的软件支持。2.用access建立一个数据库,在数据库中按要求建立表,包括用户注册基本信息表、年龄信息表、收入信息表、文化程度表、娱乐方式信息表、体育运动信息表、电影类型表。3.在JDK中新建一个工程,建立一个包,名为beans,其下建立一个java文件,名为conndb,其中写入数据库调用信息。4.用代码编写出html页面和相应的jsp文件,包括导航页面、注册页面、register.jsp、登录页面、login.jsp、问卷调查页面、diaochasend.jsp、问卷结果显示页面。5.在控制面板中用sql.server接数据库。6.配置并打开tomcat服务器,在服务器上运行项目,正确就完成,错误则进行修正。7.在其他pc端进行检验,确保程序能够正常运行三、系统设计1、界面设计2、功能设计本系统具有注册功能、登录功能、发布留言功能、查看留言功能、留言修改功能、留言删除功能。3、数据库设计本留言板程序采用的是sqlserver2005进行数据库的设计与实现,数据库命名为dbs。建表如下:①User表:②Tip表:四、系统的核心代码1、Index.jsp<body><divid="box"><divid="bottom1"><ahref="regist.jsp">注册</a> <ahref="index.jsp">登录</a> <ahref="addmes.jsp">留言</a> <ahref="message_list.jsp">留言管理</a></div><divid="login"><div>用户登陆</div></div><divid="bottom"><s:formmethod="post"name="login"action="Login"theme="simple"validate="true"><p>用户名:<s:textfieldname="user.userName"maxlength="20"cssClass="input-border"></s:textfield></p><p> 密码:<s:passwordname="user.passWord"maxlength="20"cssClass="input-border"></s:password> <labelfor="password"></label></p><p> <s:submitvalue="登陆"onmouseover="this.className='login-b2'"onmousedown="this.className='login-b3'"onmouseout="this.className='login-b'"cssClass="login-b"></s:submit> <s:resetvalue="重置"></s:reset></p></s:form>没有帐号?<ahref="regist.jsp">点击注册</a></div><s:propertyvalue="#session.user"/></div>2、Regist.jsp<body><divid="box"><divid="bottom1"><ahref="regist.jsp">注册</a> <ahref="index.jsp">登录</a> <ahref="addmes.jsp">留言</a> <ahref="message_list.jsp">留言管理</a></div><divid="login"><div>用户注册</div></div><divid="bottom"><s:formaction="UserRegist"name="regist"method="post"validate="true"theme="simple"><p> 用户姓名:<s:textfieldlabel="用户名"name="regist.username"maxlength="20"cssClass="input-border"></s:textfield></p><p>用户密码:<s:passwordlabel="密码"name="regist.password"maxlength="20"cssClass="input-border"></s:password></p><p>密码确认:<s:passwordlabel="确认密码"name="regist.repassword"maxlength="20"cssClass="input-border"></s:password></p><p>真实姓名:<s:textfieldlabel="真实姓名"name=""maxlength="20"cssClass="input-border"></s:textfield></p><p>性 别:<s:radiolabel="性别"list="#{'男':'男','女':'女'}"name="regist.uSex"value="'男'"></s:radio></p><p> <s:submitvalue="注册"></s:submit> <s:resetvalue="重置"></s:reset></p></s:form>已有帐号?<ahref="index.jsp">点击登陆</a></div></div></body>3、AddMes.jsp<body><divid="box"><divid="bottom1"><ahref="regist.jsp">注册</a> <ahref="index.jsp">登录</a> <ahref="addmes.jsp">留言</a> <ahref="message_list.jsp">留言管理</a></div><divid="login"><div>请您留言</div></div><divid="bottom"><formaction="MessageServlet"method="post"name="form"><p> 留言标题:<inputname="title"type="text"size="50"/></p><p>留言内容:<textareaname="content"cols="38"rows="5"></textarea> <labelfor="password"></label></p><p> <inputtype="submit"name="button"id="button"value="提交留言"/> <inputtype="reset"name="button2"id="button2"value="重新填写"/></p></form></div></div></body>4、MessageList.jsp<body><divid="box"><divid="bottom1"><ahref="regist.jsp">注册</a> <ahref="index.jsp">登录</a> <ahref="addmes.jsp">留言</a> <ahref="message_list.jsp">留言管理</a></div><divid="login"><div>留言内容及管理</div></div><divid="bottom"><tablewidth="90%"border="1"id="table"><c:choose> <c:whentest="${emptypageModel.list}"><tr><tdheight="68"colspan="3">没有留言内容!</td></tr> </c:when> <c:otherwise> <!--循环输出留言信息--> <c:forEachitems="${pageModel.list}"var="m"><tr><tdrowspan="2">用户名:${m.user.username}<br/>用户ID:${m.userId}</td><tdheight="43">留言标题:${m.title}</td><tdrowspan="2"align="center"><c:iftest="${!emptyuser}"> <ahref="ManagerServlet?method=delete&id=${m.id}">删除</a> <ahref="ManagerServlet?method=update&id=${m.id}">更改</a> </c:if></td></tr><tr><tdheight="76">留言内容:${m.content}</td></tr> </c:forEach></c:otherwise> </c:choose></table></div></div></body>5、DBConnect.javapackagecom.kuan.dao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet; //导入数据库操作的类importjava.sql.SQLException;importjava.sql.Statement;publicclassDBConnect{ privatestaticConnectionconn=null; //连接对象 privatestaticStatementstmt=null; privatestaticStringuser="sa";//数据库的用户名 privatestaticStringpassword="";//数据库的密码//语句对象 privatestaticResultSetrs=null; //结果集对象 privatestaticStringAccessDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//保存Mssql驱动程序 privatestaticStringAccessURL="jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=dbs";//保存Mssql连接字符串 publicDBConnect(){ conn=null;}publicstaticConnectiongetConnection(){ try{ Class.forName(AccessDriver).newInstance(); conn=DriverManager.getConnection(AccessURL,user,password); }catch(Exceptione){ e.printStackTrace(); } returnconn;}//加载驱动,连接数据库publicstaticStatementgetStmt(){ try{ Class.forName(AccessDriver).newInstance(); conn=DriverManager.getConnection(AccessURL,user,password); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); }catch(Exceptione){ e.printStackTrace(); } returnstmt;}publicstaticResultSetgetRS(Stringsql)throwsSQLException{//查询 ResultSetrs; Statementstmt=DBConnect.getStmt(); rs=stmt.executeQuery(sql); returnrs; }publicstaticintUpdate(Stringsql)throwsSQLException{//插入 intret=0; Statementstmt=DBConnect.getStmt(); ret=stmt.executeUpdate(sql); returnret; }publicstaticvoidclose(){if(rs!=null)try{rs.close();}catch(SQLExceptione){}if(stmt!=null)try{stmt.close();}catch(SQLExceptione){}if(conn!=null)try{conn.close();}catch(SQLExceptione){}}}6、User.javapackagecom.kuan.model;publicclassUser{ privateIntegerid; //ID编号 privateStringusername; //用户名 privateStringpassword; //密码 privateStringname; //姓名 privateStringsex;//性别 publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; }}7、Message.javapackagecom.kuan.model;publicclassMessage{ privateIntegerid; //ID编号 privateStringtitle; //标题 privateStringcontent; //内容 privateIntegeruserId; //用户ID publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetTitle(){ returntitle; } publicvoidsetTitle(Stringtitle){ this.title=title; } publicStringgetContent(){ returncontent; } publicvoidsetContent(Stringcontent){ this.content=content; } publicIntegergetUserId(){ returnuserId; } publicvoidsetUserId(IntegeruserId){ this.userId=userId; }}UserDao.javapackagecom.kuan.dao;importjava.util.List;importorg.hibernate.Query;importorg.hibernate.Session;importcom.kuan.model.User;publicclassUserDao{ publicvoidsaveUser(Useruser){ Sessionsession=null; //Session对象 try{ //获取Session session.beginTransaction(); //开启事物 session.save(user); //持久化user session.getTransaction().commit(); //提交事物 }catch(Exceptione){ e.printStackTrace(); //打印异常信息 }finally{ } } /** *查询所有用户信息 *@returnList集合 */ publicList<User>findAllUser(){ Sessionsession=null; //Session对象 List<User>list=null; //List集合 try{ //获取Session session.beginTransaction(); //开启事物 Stringhql="fromuser1"; list=session.createQuery(hql) //创建Query对象 .list(); //获取结果集 session.getTransaction().commit(); //提交事物 }catch(Exceptione){ e.printStackTrace(); //打印异常信息 session.getTransaction().rollback();//回滚事物 }finally{ //关闭Session } returnlist; } /** *通过用户名和密码查询用户 *用于登录 *@paramusername用户名 *@parampassword密码 *@returnUser对象 */ publicUserfindUser(Stringusername,Stringpassword){ Sessionsession=null; //Session对象 Useruser=null; //用户 try{ //获取Session session.beginTransaction(); //开启事物 //HQL查询语句 Stringhql="fromuser1uwhereu.username=?andu.password=?"; Queryquery=session.createQuery(hql) //创建Query对象 .setParameter(0,username)//动态赋值 .setParameter(1,password);//动态赋值 user=(User)query.uniqueResult(); //返回User对象 session.getTransaction().commit(); //提交事物 }catch(Exceptione){ e.printStackTrace(); //打印异常信息 }finally{ } returnuser; } /** *判断指定用户名的用户是否存在 *@paramusername用户名 *@return */ publicbooleanfindUserByName(Stringusername){ Sessionsession=null; //Session对象 booleanexist=false; try{ //获取Session session.beginTransaction(); //开启事物 //HQL查询语句 Stringhql="fromuser1uwhereu.username=?"; Queryquery=session.createQuery(hql) //创建Query对象 .setParameter(0,username);//动态赋值 Objectuser=query.uniqueResult(); //返回User对象 //如果用户存在exist为true if(user!=null){ exist=true; } session.getTransaction().commit(); //提交事物 }catch(Exceptione){ e.printStackTrace(); //打印异常信息 }finally{ } returnexist; }}8、UserLogin.javapackagecom.kuan.action;importjava.sql.ResultSet;importjava.util.Map;importcom._52run.struts_task.dao.DBConnect;importcom.kuan.model.User;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionSupport;publicclassUserLoginextendsActionSupport{ privatestaticfinallongserialVersionUID=1L; privateUseruser; privateStringmsg; publicStringgetMsg(){ returnmsg; } publicvoidsetMsg(Stringmsg){ this.msg=msg; } publicUsergetUser(){ returnuser; } publicvoidsetUser(Useruser){ this.user=user; } publicStringexecute()throwsException{ Stringsql="select*fromuser1whereuserName='"+user.getUsername()+"'anduPwd='"+user.getPassword()+"'"; ResultSetrs=DBConnect.getRS(sql); if(!rs.next()){ msg="用户名或密码错误,请重新输入!"; DBConnect.close(); returnINPUT; }else{ ActionContextactionContext=ActionContext.getContext(); Map<String,String>session=actionContext.getSession(); session.put("user",user.getUsername()); //ActionContext.getContext().getSession().put("user",user.getuserName()); DBConnect.close(); returnSUCCESS; } }/* publicvoidvalidate(){ Stringsql="select*fromregistwhereuserName='"+user.getuserName()+"'anduPwd='"+user.getpassWord()+"'"; try{ ResultSetrs=DBConnect.getRS(sql); if(!rs.next()){ this.addFieldError("msg","用户名或密码错误,请重新输入"); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock System.out.print("出现异常"); } }*/}9、UserRegist.javapackagecom.kuan.action;importjava.sql.ResultSet;importjava.util.Map;importcom._52run.struts_task.dao.DBConnect;importcom.kuan.model.User;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionSupport;publicclassUserLoginextendsActionSupport{ privatestaticfinal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津机电职业技术学院单招职业适应性考试题库附答案详解(预热题)
- 2026年天津工艺美术职业学院单招综合素质考试题库附答案详解(综合卷)
- 2026年天津渤海职业技术学院单招职业适应性测试题库及答案详解(必刷)
- 2026年宁夏职业技术学院单招职业倾向性考试题库带答案详解(基础题)
- 2026年宁波卫生职业技术学院单招职业适应性考试题库含答案详解(培优b卷)
- 2026年天津海运职业学院单招职业倾向性考试题库附答案详解(巩固)
- 2026年天津财经大学珠江学院单招职业技能测试题库附答案详解(培优)
- 2026年安徽卫生健康职业学院单招职业倾向性测试题库含答案详解(黄金题型)
- 2026年天津滨海职业学院单招职业技能测试题库附参考答案详解(b卷)
- 2026年宁波财经学院单招综合素质考试题库附答案详解
- 2025高一英语必修一Unit1-Unit2测试卷
- 2026年砂仁市场调查报告
- 苗木采购合同(标准版)
- 2025“才聚齐鲁成就未来”山东铁投集团社会招聘笔试历年参考题库附带答案详解
- 吊顶安装劳务合同范本
- 管理的本质课件
- 十年(2016-2025年)高考数学真题分类汇编:专题29 圆锥曲线(抛物线、位置关系等)(原卷版)
- 《构成基础(第2版)》技工中职全套教学课件
- 初中数学作业设计汇报
- DB45-T 2474-2022 木材加工企业消防安全技术规范
- 春季渣土车安全培训记录课件
评论
0/150
提交评论