【总结】使用jdbc+servlet开发一个bug管理系统的经验总结

开发背景:

公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有邮件通知

也不能查看自己名下当前有多少bug待修复,分别属于哪些项目。

收获:

1. 前台jsp:

1.1. <a href="mailto:邮箱地址"> 安装了outlook后点击此链接会打开一个新建邮件界面

1.2. <meta http-equiv="refresh" content="5; url=/index.jsp"> 页面每5s自动刷新,跳转到页面index.jsp

1.3. <div style="width:100%;height: 500px;">页面布局尺寸既可以使用百分比也可以使用固定像素

1.4. <iframe width=100% height=100% frameborder=0 scrolling="yes" name="bugListFrame" src="/bugList.jsp"></iframe> iframe用来包含其它页面,即将其他页面作为此页面的一部分进行展示。此处用做将查询的bug列表显示在当前页面。在form表单有个属性target用来控制提交此表单后改变的对象,将其值设为iframe的name就行

1.5. 如果要在当前页面点击按钮时进行字段的检查,那么在form里添加 onSubmit="return checkForm(this)"(<form onSubmit="return checkForm(this)"......>)然后实现此函数

<script type="text/javascript">
function checkForm(obj){

1.6.页面获取cookie中的字段值

function getCookie(name){
var arr, reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

if(arr=document.cookie.match(reg)){
return unescape(arr[2]);
}else{
return null;
}
};
document.getElementById("cookie_text").innerHTML = getCookie("bugTrackCookie");

document是此页面在IE里定义的对象

1.7. 将其它jsp页面加入此页面,与4不同的是此处被加入的jsp页面不能被单独刷新。<jsp:include page="loginName.jsp"></jsp:include>

1.8. <c:if test="${requestScope.loginer eq 'creator'}"> c:if是用在页面的if判断,需要导入包jstl.jar和standard.jar

1.9. 让select显示的值为数据库中的值,需要在页面加载时添加函数。

<body onload="go()">

<select id="buga" name="bugStatus">

<option value="1-new" >1-new</option>

<option value="2-new" >2-new</option>

</select>

<script>
function go()
{
document.getElementById("buga").value="<%=bn.getBugStaus()%>";
}
</script>

</body>

2.后台代码:

jdbc+servlet框架太老,就不细说了,现在基本上都用spring了。但是作为一个零基础自学的人来说,servlet比spring更容易上手,所以我学的是servlet。反正我只是个测试人员,公司交付给客户的项目不可能让我参与开发,我也只需要开发一些辅助测试的小工具就行,servlet足够了。

2.1. 发邮件:有jar包mail.jar。主要要用到mail.jar中Message,MessagingException,Session,Transport,InternetAddress,MimeMessage类。貌似是不支持一次设置多个收件人

2.2. servlet跳转到页面既可以用response,也可以用request:

2.2.1. 使用response跳转时不能传递参数给页面,跳转形式为response.setHeader("location", "./query.action?bugId=" + bugId);

2.2.2.使用request跳转时可以传递参数,这个request中还有上个页面传递到servlet中的参数

设置参数:request.setAttribute("bugNote", bn);
跳转:request.getRequestDispatcher("/query.jsp").forward(request, response);

上一篇:.NET Core项目从xproj+project.json向csproj迁移简介


下一篇:BZOJ2893:征服王(费用流)