软件架构小组实验报告1-3

上传人:飞*** 文档编号:11740927 上传时间:2017-10-14 格式:DOC 页数:29 大小:5.17MB
返回 下载 相关 举报
软件架构小组实验报告1-3_第1页
第1页 / 共29页
软件架构小组实验报告1-3_第2页
第2页 / 共29页
软件架构小组实验报告1-3_第3页
第3页 / 共29页
软件架构小组实验报告1-3_第4页
第4页 / 共29页
软件架构小组实验报告1-3_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件架构小组实验报告1-3》由会员分享,可在线阅读,更多相关《软件架构小组实验报告1-3(29页珍藏版)》请在金锄头文库上搜索。

1、中南大学软件开发架构平台技术实验报告姓 名:学 号:班 级:指导老师:完成时间: 2014-05 实验一 基于 MVC 的 JPetStore 开发一、完成项目的过程和时间安排完成过程:实验由我们小组三人合作完成,考虑到我们对这个实验相关的知识都还比较陌生,我们商量后决定每个人做自己的,遇到问题互相讨论,最终我们小组成员也都先后完成实验,达到实验预期的目标,完成了基于 MVC的 JPetStore 的开发。时间安排:我们小组利用三天时间完成实验,事先对相关知识的熟悉大概花费了 1 天的时间,大部分的时间都用来编码和调试。二、遇到的问题和解决方法简单的说一下做的过程中遇到的几个问题,有些问题虽然

2、看着很简单,但是在实验过程中确实经常因为一些很简单的问题卡很久。问题 1. 商品展示部分 product 只能显示一条内容解决方法:一开始是以为 jsp 页面显示出了问题,但是没有检查出结果,后来发现页面显示出的全都是每一个类型的第一条内容,后来我开始在 servlet方面查错,通过一层层的调用 system.out.println();方法,最终发现我在 DAO 层的 Impl 实现类中把 while 写成了 if,问题的原因也就显而易见了。问题 2. 在商品展示模块,所有的图片都无法正常显示解决方法:经过检查 jsp 页面内容都没有出错,后来发现由于组织工程的文件夹内容不同,在数据库中的路

3、径写的不一致,他用的是绝对路径,我改成了相对路径后问题解决。问题 3. 在编写 OrderDAOImpl 的过程中出现了时间类型不匹配的情况解决方法:一直报类型转换错误的异常,我很奇怪异常中写道必须为 Date 类,可是确实用的 Date 类的对象。后来通过上网查找问题发现这是由于pStatement.setDate 需要一个 java.sql.Date 类的对象。而我传给它的参数是一个 java.util.Date 类的对象,于是我用这个的语句解决了这个问题:pStatement.setDate(3,new java.sql.Date(order.getOrderDate().getTime

4、();问题 4. 如何读取 checkbox 中是否勾选信息解决方法:一开始我认为 checkbox 返回的是 boolean 类型的值,后来通过上网查资料发现,如果不勾选时 checkbox 所对应属性的值为 null,于是我用了这样的语句判断是否勾选。Boolean ship = request.getParameter(shippingAddressRequired)=null;account.setListOption(request.getParameter(account.listOption).equals(true) ? true : false);问题 5. 没有找到例子中的

5、合适的检测是否登录的方法解决方法:由于给的例子用了框架等方法,没有找到可以用的检测是否在登录状态的类,于是我自己写了一个方法。public Boolean getAccountByUsernameAndPasswordOnly(Account account) boolean selectResult = false;Connection connection = DBUtil.getConnection();try PreparedStatement pStatement = connection.prepareStatement(getAccountByUsernameAndPasswor

6、dOnlySql);pStatement.setString(1, account.getUsername();pStatement.setString(2, account.getPassword();ResultSet resultSet = pStatement.executeQuery();if (resultSet.next() selectResult = true;DBUtil.closeResultSet(resultSet);DBUtil.closePreparedStatement(pStatement);DBUtil.closeConnection(connection)

7、; catch (Exception e) e.printStackTrace();return selectResult;三、小组成员分工组长:张先凯小组三人均独立完成实验要求内容实验二 用 AJAX 改进用户体验一、 项目应用了 AJAX 技术的功能模块以及有无使用框架。运用了 Ajax 技术的功能模块:1. 账号管理模块。在新建账号和修改账号信息页面上用 AJAX 技术进行表单验证。包括密码与二次输入密码是否一致,用户名是否重复等等。2.商品查询模块。在首页右上角的查询商品中增加了自动补全功能,并可以用鼠标和键盘上线移动选中高亮部分,输入框的内容也会随着鼠标键盘的移动而移动。3. 主页商

8、品展示模块。在首页展示商品的图片上添加了 AJAX 效果,即当鼠标移到某个商品图片上时,用悬浮窗动态加载该类型商品的信息。三个模块中均未使用框架技术。二、 说明应用 AJAX 技术的理由、具体实现方法和核心源代码。理由:将整个页面刷新转化为局部刷新功能,改进响应效果,增强用户体验。具体实现方法:1.点击按钮或者鼠标失焦等操作触发 ajax 操作。2.在 js 接收传来的值,并利用 Json 对象与服务器异步交互。在没有接收到服务器的响应之前,Jsp 页面做出响应的等待的响应的反应。3.得到响应后刷新相应的 div 或者控件或者显示加载失败。核心源代码:模块一:账号管理模块NewAccount.

9、jspJS代码:var xmlHttpRequest;function createXMLHttpRequest()if (window.XMLHttpRequest) /非IE浏览器xmlHttpRequest = new XMLHttpRequest();else if (window.ActiveObject)/IE6以上版本的 IE浏览器xmlHttpRequest = new ActiveObject(Msxml2.XMLHTTP);else /IE6及以下版本 IE浏览器xmlHttpRequest = new ActiveObject(Microsoft.XMLHTTP);fun

10、ction usernameIsExist() var username = document.registerForm.username.value;sendRequest(usernameIsExist?username= + username);function sendRequest(url) createXMLHttpRequest();xmlHttpRequest.open(GET, url, true);xmlHttpRequest.onreadystatechange = processResponse;xmlHttpRequest.send(null);function pr

11、ocessResponse() if (xmlHttpRequest.readyState = 4) if (xmlHttpRequest.status = 200) var responseInfo = xmlHttpRequest.responseXML.getElementsByTagName(msg)0.firstChild.data;var div1 = document.getElementById(usernameMsg);if (responseInfo = Exist) div1.innerHTML = Username is unavailable.; else div1.

12、innerHTML = available username;/以下是我自己写的function passwordIsCorrect() var password = document.registerForm.password.value;var repeatedpassword = document.registerForm.repeatedPassword.value;createXMLHttpRequest();xmlHttpRequest.open(GET, SamePassword?password= + password + &repeatedpassword= + repeat

13、edpassword, true);xmlHttpRequest.onreadystatechange = processResponse1;xmlHttpRequest.send(null);function processResponse1() if (xmlHttpRequest.readyState = 4) if (xmlHttpRequest.status = 200) var responseInfo = xmlHttpRequest.responseXML.getElementsByTagName(msg)0.firstChild.data;var div2 = documen

14、t.getElementById(passwordMsg);if (responseInfo = Yes) div2.innerHTML = The two passwords are same.; else div2.innerHTML = The two passwords are not the same.;原 JSP 页面修改:User ID:$sessionScope.account.usernameNew password:Repeat password:Servlet:UsernameIsExistServlet.javapackage org.csu.myjpetstore.w

15、eb;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.csu.myjpetstore.domain.Account;import org.csu.myjpetstore.service

16、.AccountService;public class UsernameIsExistServlet extends HttpServlet public UsernameIsExistServlet() super();public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletExcept

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号