哈尔滨商业大学毕业设计(论文) 4 详细设计与实现
4.1 数据库连接
系统采用JSP+Struts+Spring架构,数据库采用MySQL,使用Spring的配置文件beans.xml连接数据库,其连接数据库的配置信息如下: id=\ destroy-method=\ class= \ 使用注入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作,Dao不进行其他的逻辑操作。前台JSP页面产生的请求交由对应的Action进行逻辑操作,当其要对数据库进行操作时,通过WebApplicationContext 对象获取Dao,将要操作的对象的相关参数传给Dao即可。这就是对接口编程,使各个模块之间低耦合,有利于程序的可扩展性。 4.2 前台显示模块 前台显示模块包括用户的一些功能,具体的可分为用户注册、用户登录、用户注销、修改个人信息、增加好友、删除好友、增加黑名单、删除黑名单、查看短信息、发送短信息、删除短信息、查看版面、查看主题、查看回复、发表主题和发表回复等功能。 由于主题是在版块下存在的,所以在版块下的任何地方都可以发表主题,而回复只能是针对主题进行回复,所以必须在主题下才能发表回复,也就是在主题页面下才能点击发表回复。 现将部分功能说明如下: (1) 用户注册:新用户在login.jsp页面中输入用户名,密码,密码提示问题、 提示问题答案、安全邮箱,点击提交按钮,数据提交到LoginAction.java中进行处理,在LoginAction.java中,如果用户名已经有人使用则返回注册页面,否则提示用户注册成功,并跳转到登录页面entry.jsp。 15 哈尔滨商业大学毕业设计(论文) LoginAction.java的login方法的代码如下: public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ctx = WebApplicationContext WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext()); UserDao userDao = (UserDao)ctx.getBean(\String userName = request.getParameter(\String pwd = request.getParameter(\String email = request.getParameter(\String question = request.getParameter(\String answer = request.getParameter(\ int isOpen = Integer.parseInt(request.getParameter(\String realName = request.getParameter(\int sex=Integer.parseInt(request.getParameter(\String year=request.getParameter(\String month=request.getParameter(\String day=request.getParameter(\String birthDay = year+month+day; String tel=request.getParameter(\ String address=request.getParameter(\String postalcode=request.getParameter(\String qq=request.getParameter(\ String idioGraph=request.getParameter(%user.setName(userName); user.setPwd(pwd); user.setEmail(email); user.setQuestion(question); user.setAnswer(answer); user.setIsOpen(isOpen); user.setRealName(realName); user.setSex(sex); user.setBirthDay(birthDay); 16 User user = new User(); 哈尔滨商业大学毕业设计(论文) } user.setTel(tel); user.setRegTime(new Date()); user.setLastTime(new Date()); user.setAddress(address); user.setPostalcode(postalcode); user.setQq(qq); user.setIdioGraph(idioGraph); user.setGroupId(4); int i = userDao.insertUser(user); if(i==-1){ } request.setAttribute(\用户名已存在!\return mapping.findForward(\ request.getSession().setAttribute(\注册成功,请登录!\return mapping.findForward(\ request.getSession().setAttribute(\注册失败,请重新注册!\return mapping.findForward(\ }else if(i==1){ }else { public ActionForward loginOut(ActionMapping mapping, ActionForm form, } 17 HttpServletRequest request, HttpServletResponse response) { WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext()); UserDao userDao = (UserDao)ctx.getBean(\User user=(User)request.getSession().getAttribute(\ Date date=new Date(); user.setLastTime(date); userDao.updateUser(user); request.getSession().removeAttribute(\ return mapping.findForward(\ 哈尔滨商业大学毕业设计(论文) (2) 用户登录:用户在有帐号的前提下,可以在登录页面entry.jsp或主页 bbs.jsp中输入用户名和密码点击登录,系统将用户名和密码提交到LoginAction.java中的entry()方法,将用户提交的用户名和密码再转交给后台的Dao进行查询,如果有这样的一条记录存在则登录成功,将用户的个人信息保存在浏览器端的Session中,否则返回登录页面,并提示用户名或密码错误。 LoginAction.java的entry方法的代码如下: public ActionForward entry(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ctx = WebApplicationContext WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext()); UserDao userDao = (UserDao)ctx.getBean(\String userName = request.getParameter(\String pwd= request.getParameter(\if(userDao.checkLogin(userName, pwd)){ } return mapping.findForward(\ (3) 用户注销:已登录用户在退出网站时注销登录状态,系统将请求交给User user= userDao.getUser(userName); request.getSession().setAttribute(\}else{ request.setAttribute(\用户名或密码错误!\ } LoginAction.java的loginOut()方法处理,在loginOut()方法中修改用户最后离线时间,将修改保存到数据库中,并将浏览器端的Session的user属性移除,系统返回主页。用户同时失去登录用户的权限,以游客身份访问网站,只能浏览主题,不能发表主题,也不能发表回复。 LoginAction.java类的loginOut方法的代码如下: public ActionForward loginOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext()); UserDao userDao = (UserDao)ctx.getBean(\User user=(User)request.getSession().getAttribute(\ 18
相关推荐: