122
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2302软件工程社区 |
|---|---|
| 这个作业要求在哪里 | 结对第二次作业——编程实现] |
| 结对学号 | 222100232 222100235 |
| 这个作业的目标 | 采用web技术来实现原型中的功能 |
| 其他参考文献 | 阿里巴巴Java开发手册 |
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 40 | 40 |
| • Estimate | • 估计这个任务需要多少时间 | 40 | 40 |
| Development | 开发 | 1380 | 1230 |
| • Analysis | • 需求分析(包括学习新技术) | 200 | 180 |
| • Design Spec | • 生成设计文档 | 60 | 60 |
| • Design Review | • 设计复审 | 50 | 50 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 40 | 30 |
| • Design | • 具体设计 | 120 | 100 |
| • Coding | • 具体编码 | 660 | 600 |
| • Code Review | • 代码复审 | 120 | 100 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 130 | 120 |
| Reporting | 报告 | 200 | 180 |
| • Test Repor | • 测试报告 | 70 | 60 |
| • Size Measurement | • 计算工作量 | 70 | 60 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 60 | 60 |
| 合计 | 1620 | 1450 |
未部署至云服务器上











在发布任务之后,我们进行了一系列的项目讨论


我们使用maven工具来管理项目,下载Tomcat服务器。我们使用jsp来开发前端,jsp与HTML十分相似,不同的是jsp能够嵌入Java代码并且能够十分轻松地通过servlet来与后端交互信息与数据。

我们的前端设计包括5个界面,包括首页信息介绍,比赛日程信息,比赛详细信息,精彩时刻以及运动员信息。我们先开发json解析方法以及输出的Java类,使用gson解析json,输出List,AthleteClass为运动员类,这样可以将所需的运动员的全部信息输出,通过servlet将运动员信息传给jsp,jsp根据所需的输出样式输出数据。
对于比赛赛程信息界面,我们要先解析json获取比赛日程,然后根据时间进行排序输出比赛日程,用户点击任一赛程即可进入比赛详细界面,在详细界面中,我们会将比赛的详细信息输出,对于双人比赛,我们会将双人的详情格合并,方便用户。

//Gson解析字符串,获得运动员信息
public List<Athlete2> getAthletes(String filename) {
Gson gson = new Gson();
List<AthletesData> athletesData = gson.fromJson(getJsonString(filename), new TypeToken<List<AthletesData>>() {
}.getType());
List<Athlete2> athleteList = new ArrayList<>();
if (athletesData != null) {
for (AthletesData athletesData1 : athletesData) {
String country = athletesData1.getCountryName();
List<Participation> participations = athletesData1.getParticipations();
for (Participation part : participations) {
Athlete2 ath = new Athlete2();
String gender = part.getGender() == 0 ? "Male" : "Female";
String dob = part.getDOB().substring(0,10);
String firstName = part.getPreferredFirstName();
String lastName = part.getPreferredLastName();
ath.setCountryName(country);
ath.setDOB(dob);
ath.setGender(gender);
ath.setPreferredLastName(lastName);
ath.setPreferredFirstName(firstName);
athleteList.add(ath);
}
}
}
return athleteList;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
DataSourceImpl data = new DataSourceImpl();
List<Athlete2>list = data.getAthletes(getServletContext().getRealPath("/WEB-INF/data/athletes.json"));
req.setAttribute("athlete", list);
req.getRequestDispatcher("athlete.jsp").forward(req,resp);
}
<% List<Athlete2> lists = (List)request.getAttribute("athlete");%>
<div>
<table class="table-athlete">
<tr>
<th>Country</th>
<th>Athlete</th>
<th>Gender</th>
<th>DOB</th>
</tr>
<% for(Athlete2 athlete : lists){ %>
<%="<tr>" %>
<%="<td>" +athlete.getCountryName() + "</td>"%>
<%="<td>" +athlete.getPreferredLastName() + " " + athlete.getPreferredFirstName() + "</td>"%>
<%="<td>" +athlete.getGender() + "</td>"%>
<%="<td>" +athlete.getDOB() + "</td>"%>
<%="</tr>" %>
<% } %>
</table>
</div>
<div class="action">
</form>
<table>
<tr>
<input class="btn" type="button" onclick="window.location.href='index.jsp';" value="OVERVIEW">
</tr>
<tr>
<form action="Schedule">
<input class="btn" type="submit" value="SCHEDULE">
</form>
</tr>
<tr>
<input class="btn" type="button" onclick="window.location.href='';" value="THE MOMENT">
</tr>
<tr>
<form action="Result">
<input type="hidden" name="event" value="empty">
<input class="btn" type="submit" value="RESULTS">
</form>
</tr>
<tr>
<form action="Athlete">
<input class="btn" type="submit" value="ATHLETES">
</form>
</tr>
</table>
</div>
222100232:222100235同学为整个网页的开发提供了大量的基础代码,本人的工作基本上是在此基础上完成的,该队友提供的代码简单易懂,便于修改和拓展,在开发过程中节省了大量的时间,非常感谢队友的贡献,基础的页面设计也是由对方完成的,本人只是在此基础上填充数据,修复bug,调整页面排版格式,整个开发过程能充分体会到对方开发能力之强和效率之高。
222100235:在本次的原型设计中,我们先是认真地讨论并选择了jsp+servlet技术来开发本次的web项目,分析需求并研究实现方法。我们根据网上已有的视频,博客等学习了Tomcat的安装使用,使用maven工具管理项目,就等进行实际开发。但是在开发过程中却发现了许许多多的问题,比如说jsp与servlet之间的通信问题,servlet使用其他Java类方法,但是通过相对路径无法寻找到相应文件的问题,只能用getServletContext().getRealPath()来进行文件路径定位。
这些问题都需要不断地查找资料来寻找解决方法。
对结对同伴的评价:同伴办事效率很高,业务能力强于我,充满毅力,开发技术实力强。我认为我的同伴是一位优秀的开发人员,愿意与我一同发现,一同讨论开发过程中遇到的问题。
在本次的结对编程中,我们学会了许多前后端编程的知识,比如说jsp servlet等,在编程过程中我们也遇到了许多的困难,但通过不断的尝试与查找相关资料,终于解决了这些问题。我们相信在未来的学习生活中,我们一定能保持这样的学习热情与解决办法的思考方式,解决我们遇到的生活学习中的问题。