項目一的完善


    工做(job)的CRUD
    一. 之後開發要注意,一個domain的屬性(一張表中的列)在開發的時候必定要先把它搞清楚
        1.這個屬性的意思(含義)
        2.研究這個屬性的類型
        3.這個屬性的值從哪裏來???
        private Integer id;
        //職位標題(Java高級工程師,會計,育兒嫂)
        private String title;
        //工做地址(北京,上海,工龍村)
        private String address;
        //工做地址對應的id
        private Integer address_id;
        //招聘人數
        private Integer jobnum;
        //待遇(工資)
        private Integer treatment;
        //職位描述(相關專業,長得帥)
        private String describes;
        //職位要求(會CSS,JS,Java,Spring等技術)
        private String requires;
        //靜態網站的地址(靜態化的效果,明天再講)
        private String htmlurl;
        //職位類型(1->全職,0->兼職)
        private Integer positiontype;
        //是否啓用
        private Boolean isenabled;javascript

    二.完成後端的CRUD【和前面作的是同樣的】
    三.回顯功能
        <select id="address" name="address_id" class="form-control">
            <c:forEach items="${addressList}" var="address">
                <option value="${address.id}"
                    <c:if test="${address.id==job.address_id}">
                        selected
                    </c:if>
                >${address.name}</option>
            </c:forEach>
        </select>
    四.建立視圖
        至關因而一個假表
        create view 視圖名稱  as  select....
        能夠直接查詢視圖
        select * from 視圖名稱
    五.模板技術
        動態網頁(數據可變)與靜態網頁(訪問快,SEO排名高)
        動態網頁靜態代(僞靜態[只改後綴],真靜態)
            用到模板技術:數據+模板=輸入文本
            freemarker【ftl】,velocity【vm】html

    F12->看js有沒有錯,再看網絡傳參有沒有問題
         若是前端沒有問題,問題就在後端(有沒有接收參數,若是接收到了,有沒有調用方法,SQL有沒有寫對,數據有沒有返回)
         沒有找到 -> 比較法,打印法,刪除法前端

 

 

 

 


    freemarker:是比較流行的一個模板技術【ftl】
    使用freemarker的步驟(之後只須要百度查找便可)
        1.導包(freemarker是一個小框架)
        2.建立一個配置對象Configuration(加個版本)
        3.設置加載路徑
        4.設置字符集(默認)
        5.建立模板(準備一個ftl模板)
        6.準備數據(Map,對象)
        7.數據+模板=輸出文件(Writer)
    案例一:代碼生成器(半成品) -> 下一個項目會有一個插件
    案例二:動態網頁靜態化(添加,修改)
        修改的時候須要把原生的那個靜態化頁面刪除
        刪除數據的時候也要把靜態化頁面刪除
        須要把路徑記錄下來,纔可能去找到這個靜態化頁面java

 

 



    一.高級查詢
        1.1 拼接where條件的字符串(第一個條件前面加where,其它的條件前面加and)
          a. 先加一個  where 1=1 -> 影響查詢性能
          b. 準備一個標籤 flag=true -> true就是where,false就加and
                  默認是true,每一次就加where,加完後把它改回成false(第n次就改加使用and)
                  代碼量比較大
          c. 準備一個List<String>,裝的就是每個條件(前面沒有where與and)
                  遍歷這個集合的時候,第一次加where,其它的狀況加and
                  在理解上,使用就仍是有點麻煩
          d. 把第一個and替換成where -> 比較簡單,不影響性能
                  whereSql.replaceFirst("and", "where");
        1.2 dao中須要加上where條件
            查詢總條數與查詢當前頁的數據 -> where條件是同樣的
            
    二.高級查詢+分頁
        以前的分頁是直接一個超鏈接,發送請求就能夠成功了。可是當咱們有了高級查詢條件後,這個分頁會致使高級查詢的條件丟失!
        解決方案:點擊分頁的時候提交表單(表單中就有我們的分頁以及查詢數據)
        2.1 在form中加上了一個隱藏域 (當前頁)
            注意:這裏必需給一個初始頁數
            <input type="hidden" name="currentPage" id="currentPage" value="1" />
        2.2 修改我們的a標籤(訪問咱們的一個js方法)
            <a href="javascript:goPage(傳的頁數);">上一頁/下一頁/..</a>
        2.3 完成goPage方法
            function goPage(page){
                //1.把當前頁傳到隱藏域中
                document.getElementById("currentPage").value= page;
                //2.提交表單
                document.getElementById("表單id").submit();
            }
        
    三.登陸功能(Spring的攔截器)
        select * from t_user where username=? and password=?
        3.1 登陸的功能:
            1.獲取前臺傳過來的用戶名與密碼
            2.根據用戶名與密碼到數據庫中查詢當前登陸用戶
            3.若是查詢到了用戶 -> 把用戶存在sessoin中,跳轉到主頁面
                 若是沒有查詢到用戶 -> 跳轉到登陸頁面
        3.2 登陸的攔截
            1.準備一個Spring的攔截器
                class LoginInterceptor 實現 HandlerInterceptor
                    preHandle:在執行方法以前進行的攔截
                        返回false表明不放行
                        返回true表明放行
            2.對攔截器進行相應的配置(applicationContext-mvc.xml)
                <mvc:interceptors>
                    <mvc:interceptor>
                        <!--你要攔截的是哪些請求 -->
                        <mvc:mapping path="/**"/>
                        <!--配置你不攔截的請求  -->
                        <mvc:exclude-mapping path="/login"/>
                        <mvc:exclude-mapping path="/assets/**"/>
                        <!-- 全部請求都會通過這個攔截器 -->
                        <bean class="cn.itsource.cms.web.interceptor.LoginInterceptor" />
                    </mvc:interceptor>
                </mvc:interceptors>
            3.在攔截器中實現功能
                到session中拿當前登陸用戶
                若是沒有拿到 -> 跳回登陸頁面
                若是拿到,直接放行web

相關文章
相關標籤/搜索