认识一个东西用感性,学习一个东西用理性!

美好的一天开始了!
废话真不想多说什么了,干脆就直接写点有技术含量的东西吧!(其实也没什么技术含量!)
还是要写说明一下我要做什么:这是老师的一个项目,让他的研究生在做,我们就是跟着打点酱油。简单来说,就是要操作数据库中的几张表,进行增删改查的操作,当然,这里的技术难题就是在项目我们接手时,只有需求和数据库,学长写了一个登陆,其他的就没什么了。但这不行呀,没有设计就不能编码,这是上次项目总结出的最宝贵的经验了,我们还是先做设计吧。
设计部分:
我们在一起做事也一年多了,但是仍旧没有什么规范,我们制订了一份编码规范,参考了某公司的java编程规范文档,我们商量以后,去掉了我们认为有些逗比的地方,我起草了一份规范文档,不过事实就是大家都没怎么看,然后就放在了那里,但好歹也算是有规范了,在实际的操作中一定还是有需要完善的地方,那是后话了。还有就是数据字典,数据库有十个表,但都是干嘛的,没有数据字典,那可是会出事的,五个人能达成统一意见,开玩笑也不带这样开的,没有数据字典,就是会出现矛盾,数据字典也出来了,学长老师也看过改了改,就算暂时完成了。详细设计,这很重要,现在每次在敲代码前我都会问问自己,有没有详细设计,没有设计就是会出现问题的,没有设计在项目进行一般的时候就可能重构,然后就。。。欲哭无泪呀,一定要有设计,要有经得起推敲的设计,现在方便,以后维护——无论是自己还是别人不了解项目的人上手维护——都会有极大的用处,真的呀!设计几经修改,最终定稿,暂且不说设计文档写的怎么样,在进行设计过程中我们考虑到太多细节,我们都比较不错的了解了这个项目,可以说现在站起来,讲一讲具体的流程什么还是没什么问题的。设计真的好重要!!!编码阶段,前台和后台是分开的,在这个过程中还是有值得反思的地方,偶尔会出现一点小问题,但大多还是很顺利的,设计在这方面还是应该有改进的地方,设计好重要!

技术细节:
编码过程中有许多技术方面的问题,其实是让我们很头疼,技术上,我差的太远了,技术细节总结如下吧:
网页写成jsp(开始时我们写成了html,但是学长说写成jsp,听学长的话),在jsp方面,我们小组有个大神,以前写了一个界面现在看起来没有那么漂亮的留言板,但是那个过程中,他倒是把jsp学的不错,先膜拜一下,我也是硬着头皮就开始写了,第一句话我都不懂:
<%
 String path = request.getContextPath();//返回站点的跟路径
 String basePath = request.getScheme() + "://" //返回协议名称
   + request.getServerName() + ":" + request.getServerPort() //返回现实在浏览器中的主机名,后一项是返回服务器的端口号
   + path + "/"; //项目名,加斜线了,下面用basePath时不用加斜线了!
%>

然后是引入了一堆框架的js、css文件,哦对了,我们用的是qui框架。(据说老师买过来时花了很多钱的呀!)
我刚刚学习jsp,可能下面关于jsp的东西你看着可能so easy,但是我是真的第一次接触到,请大神跳过!
jsp定义全局变量<%! String[] str%>    
jsp使用变量<%=str[0] %>    

for循环可以这样写:
<% for(int i = 0; i < end; i ++){ %>
    
一段html代码
<% } %>
然后这部分html代码就被循环了,动态网页就包含了这个意思吧!

取传过来的参数,后台传的参数
前台取<% str = (String[]) request.getAttribute("str"); %>
后台传request.setAttribute("str",str);
前台取<% str = (String[]) session.getAttribute("str"); %>
前台传<% session.setAttribute("str",str); %>
前台传javascript中 window.location.href="<%=basePath %>jsp/sensorType/showAllSensorType.jsp?page="+index;
前台后台取<% request.getParameter("page"); %>
两两组合,当然,还可以有许多其他组合,例如后台往session里面传等,以后补充,在这里没有用到,我怕写出来不能用别人还看了那就是罪过了!

还有javascript用到的东东:
//弹出小框框用于增加,小框框是一个jsp界面,不过这仅仅适用于比较少的内容,如果很多内容应该跳到另一个界面,也是我们其他模块用到的方法。
function addUnitType(){
    var diag = new top.Dialog();
    diag.Title = "增加";
    diag.URL = "<%=basePath %>jsp/unitType/popup/addUnitType.jsp";
    diag.show();
}
//用于警告弹窗确认
if(confirm("真的要删除吗?"){
}else{
}
//提交表单
document。getElementById("changeForm"+i).submit();
关闭窗口
function closeWin(){
    top.Dialog.close();
}

java代码:(这一部分模块我参与的较少,总结仅供学习使用)
servlet:在前台发送数据后交由servlet处理
doGet里面调用doPost(request,response);
其中doPost开头两句为:
request.setCharactorEncoding("UTF-8");//设置编码方式
response.setContentType("text/html;charset=UTF-8");//使客户端浏览器区分不同种类的数据
PrintWrite out = response.getWriter();//取得PrintWrite对象,由它来写出响应至服务器的本体信息
out.print("");
out.print(";");
问题是这里对javaBean的使用有问题,或者说几乎没有怎么使用,这是在下一版改主意的地方。

补充说明几个东东:
session:按照baidu的说法,这是一个时间概念,不过在需要的时候,可以用来存东西,在服务器端,因此javascript不可以改,那为什么jsp倒是可以设置session的值呢?原因是jsp在服务器端执行,在某种程度上来说,发过来的还是静态的页面,浏览器显示出来了,叫它动态网页也指的是发到浏览器端的页面是动态生成的,而不是说在浏览器端改变,当然,这些是我个人在现在这个时间这么理解的,可能有问题,有什么错误的地方还请指教!
认识一个东西用感性,学习一个东西用理性,要系统的学习,看书,看视频是好办法!突然感觉说学计算机的最好的老师是google的说法有不够严谨的地方,应该说书是老师,google是家教,在不会的情况下,找google,但是学习东西还是要看书的!!
接下来好好学习一下javascript,下篇博客估计就是javascript学习笔记吧!!
以上内容仅供学习交流使用,欢迎指出错误!
20140804

你可能感兴趣的:(学习笔记)