JAVA 大作业——DAY 3

进度日记:8.31

上午:上午修改了aboutUs页面。

   想把后台的数据放到数据库中,发现要安装SQL太麻烦了。

   偶然发现mac自带了SQLite3,然后学习了用命令行使用SQLite3,简单的操作:语法http://www.oschina.net/question/12_53183 简单语法和指令http://blog.csdn.net/linchunhua/article/details/7184439  

   学习把数据库用hibernate连进去。起初GG帮我找到了Driver需要的jar包,建立好了Driver。但因为myeclipse不能search到SQLite3的dialect,所以最终还是连接数据库失败了:http://blog.csdn.net/fxk2006/article/details/4577418  myeclipse配置hibernate

   不过直接写代码连接上了数据库,其实写代码也可以直接新建数据库,这里是超级入门的代码,我后来所有的数据库连接都是基于此代码:http://wenwen.soso.com/z/q108059942.htm “在myEclipse中用JDBC连接MySQL数据库,用Java文件怎么写” 

   发现myeclipse自带了Derby,而且可以连接上,但放弃尝试,决定使用SQLite3。

中午:基本写好了后台的数据库

下午1点:吃饭

下午2点:后台的数据库大概建好了,写了一个初始化数据库的java类。

      基于上面的数据库,可以读写数据了。

      开始学习动态的网页和js,我从login的代码仔细学起,其中:

 1 <!-- 功能是一开始就选中username的框 -->
 2 <script type="text/javascript">    
 3     setTimeout(function() {
 4                 try{
 5                       var z=document.getElementById('username');
 6                       z.focus();
 7                       z.select();
 8                   } catch(e){}
 9        },1);
10 </script>   

    意外发现form可以返回一些url信息:http://www.blabla.cn/html_tutorials/037_html_form.html ,这样就可以把login的信息以url的形式返回去访问servlet了。以下代码能返回/Browser/LoginServlet?userID=...&password=...这个url,servlet可以解析出来。

 1 <form id="login_form" name="login_form" action="/Browser/LoginServlet" method="post">
 2       <label>User Name</label>
 3         <input id="username" maxlength="64" name="userID" class="text" type="text" />    
 4          <div id="username_errors" class="form_errors"></div>
 5      
 6       <label>Password</label>
 7          <input id="password" maxlength="64" name="password" class="text" type="password" />
 8   
 9       <input name="login" value="Sign in" class="super-emphasize" type="submit" />      
10 </form>

    接下来就是需要让servlet返回一个网页。(你要相信,你能想到的功能都是能实现的。虽是摸着石头过河,但总是有方法的!)

1 response.sendRedirect(request.getContextPath() + "/login.jsp?Error=1&useridNotFound!");

    然后就是让jsp中解析url的信息,来动态地改变html中某些状态的值。(因为我需要登录之后能显示用户名,所以我把“登录”、“注册”两个地方选择性地改成“用户名”、“退出”)。其中request是用来解析url的参数的方法:

 1 <script type="text/javascript">
 2     //<![CDATA[
 3     function request(paras) { 
 4         var url = location.href;
 5         var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");  
 6         var paraObj = {};
 7         for (i = 0; j = paraString[i]; i++){  
 8             paraObj[j.substring(0,j.indexOf("="))] = j.substring(j.indexOf("=")+1,j.length);  
 9         }  
10         var returnValue = paraObj[paras];
11         if (typeof(returnValue) == "undefined"){  
12             return "";  
13         } else {  
14             return returnValue; 
15         }
16     }
17     var userID = request("userID");
18     /* =========================================================================
19     // 用户已经登录,那么显示用户名和退出
20     ========================================================================= */
21     if (userID != "") {
22         document.getElementById('silo_sign_in').href = null;    // 登录-->用户名
23         document.getElementById('silo_sign_in').innerHTML = userID;
24         document.getElementById('silo_get_started').href = "/Browser/LogoutServlet";    // 注册-->退出
25         document.getElementById('silo_get_started').innerHTML = "退出";
26         document.getElementById('dataStatistic').href = "dataStatistic.jsp?userID="+userID;
27         document.getElementById('dataManager').href = "dataManager.jsp?userID="+userID;
28     } else {
29         document.getElementById('dataStatistic').href = "login.jsp";    // dataStatistic
30         document.getElementById('dataManager').href = "login.jsp";    // dataManager
31     }
32     //]]>
33 </script>

 

晚上:注册登录什么的页面显示已经没有问题了,剩下3个需要连接数据库的网页了,也是最难的部分。

   开始学习表格的设计。又下载了一个网页来看,学到可以让servlet返回一个html到当前页面的某个框里。所以只需要动态更新servlet的response输出的html,猜想可以实现筛选等功能。

   收工!

 

posted @ 2012-09-01 01:27  ReasonHan  阅读(186)  评论(0编辑  收藏  举报