RBAC項目記錄

新建項目

新建maven開始項目的時候,會報錯,因為沒有webxml.
項目右擊-properties,projectfac--,先取消 dynamic。。。,apply然后重新點上


image.png

然后下面



點擊設置路徑
image.png

一、亂碼問題

  1. post亂碼
  • 1.1. 直接轉換(麻煩,每個都要轉換)
1. String loginacct = user.getLoginacct();
       // 將亂碼字符串按照錯誤的編碼方式轉換為原始的字節碼序列
       // byte[] bs = loginacct.getBytes("ISO8859-1");

       // 將原始的字節碼序列按照正確的編碼轉換為正確的文字即可。
       // loginacct = new String(bs, "UTF-8");
  • 1.2. 添加過濾器(一勞永逸)
<!-- 解決亂碼問題 -->
     <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <servlet-name>springmvc</servlet-name>
    </filter-mapping>
  1. get 亂碼
    tomcat服務器 server。xml
<Connector URIEndoding="UTF-8" connectionTime....

二. 利用 layer.jst 提示功能

login.jsp

<!-- 使用 layer提示功能 -->
    <script src="layer/layer.js"></script>


if(loginacct == ""){
            //alert("用戶名為空");
            <!-- 使用 layer提示功能 -->
            layer.msg("用戶登錄賬號不能為空,請輸入", {time:2000, icon:5, shift:6}, function(){
                
            });
            return;
        }
        var userpswd = $("#userpswd").val();//loginacct 是 上面的id,唯一標識
        // 表單 value 值不會為null,所以非空校驗不能簡單的 判斷 !=null,而是用空字符串 “”
        if(userpswd == ""){
            //alert("密碼為空");
            <!-- 使用 layer提示功能 -->
            layer.msg("用戶登錄密碼不能為空,請輸入", {time:2000, icon:5, shift:6}, function(){
                
            });
            return;
        }

三. 錯誤回顯(因為ajax線程都沒有刷新,所以錯誤信息還在)

 // 提交表單
        //alert("提交表單");
        //$("#loginForm").submit();
        // 使用AJAX提交數據
        var loadingIndex = null;
        $.ajax({
            type : "POST",
            url  : "doAJAXLogin",
            data : {
                "loginacct" : loginacct,
                "userpswd"  : userpswd
            },
            beforeSend : function(){
                loadingIndex = layer.msg('處理中', {icon: 16});
            },
            success : function(result) {
                // 成功了就關閉loadin效果
                layer.close(loadingIndex);
                // 對象.屬性
                if (result.success) {
                    // 登錄成功,跳轉到主頁面
                    window.location.href = "main";
                } else {
                    layer.msg("用戶登錄賬號或密碼不正確,請重新輸入", {time:2000, icon:5, shift:6}, function(){
                        
                    });
                }
            }
        });
        

DIspatchContrller

   /**
    * 使用 ajax 解決回顯和閃爍
    * @param user
    * @param session
    * @return
    */
   @ResponseBody // 對象無法在網路中傳遞,轉換成字符串
   @RequestMapping("/doAJAXLogin")
   public Object doAJAXLogin(User user, HttpSession session) {
       
       AJAXResult result = new AJAXResult();
       
       User dbUser = userService.query4login(user);
       if ( dbUser != null ) {
           result.setSuccess(true);
       } else {
           result.setSuccess(false);
       }
       
       return result;
   }
   /**
    * 主頁面
    * @return
    */
   @RequestMapping("/main")
   public String main() {
       return "main";
   }
   

封裝 AJAXResult結果,方便調用

package com.lsy.crowdfunding.bean;

public class AJAXResult {

    private boolean success;
    private Object data;

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
    
}

至此,解決了頁面美化提示,用戶錯誤信息不刷新(方便看用戶名錯沒錯),跳轉沒有黑屏三個問題

四、理解 JSON、

<script>
    // JSON : JavaScript Object Notation
    function Student() {
        //this.sname = "zhangsan";
        //this.age = 20;
    }
    
    // JS支持給對象動態添加屬性
    var s = new Student();
    s.sname = "lisi";
    
    var s1 = new Student();
    
    
    // 聲明JSON對象
    var obj = {name:"lisi", age:20};
    var array = [{}, {}];
    //obj.name = "zhangsan";
    
    //alert(array.length);
    // JSON 字符串 : 將后臺對象按照JSON格式轉換為字符串輸出到瀏覽器中,讓JS當成對象來處理
    
    
    
    
</script>

五、js資源等路徑問題

絕對路徑:不可改變的路徑
    本地絕對路徑:增加盤符的路徑(e:/test/test.html)
    網絡絕對路徑:增加協議,IP地址,端口號的路徑(http://localhost:8080/test/test.html)
相對路徑:可以改變的路徑,但是以基準路徑為參考,查找其他路徑
    默認情況下,相對路徑的基準路徑是以當前資源的訪問路徑為基準

路徑以斜杠開頭,表示的特殊的相對路徑,在不同的場景中,相對的位置會發生變化。

    url : http://localhost:8080/atcrowdfunding-web/test/test.html

    前臺路徑:<a href=”/sssss”><img src=””>
        相對服務器的根 : http://localhost:8080/sssss
    后臺路徑:forward(”/user.jsp”), xml
        相對web應用的根:http://localhost:8080/atcrowdfunding-web/user.jsp

使用監聽器來解決路徑

直接的方法:獲取項目的名稱路徑,在資源前加上
pageContext.request.contextPath

在項目啟動時候,用戶使用之前,利用監聽器獲取到路徑APP_PATH,然后放在資源簽
第一步:新建監聽器類

package com.lsy.atcrowdfunding.web;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ServerStartupListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
        // web 應用初始化時候會被監聽到
        System.out.println("http:// web 應用初始化時候會被監聽到");
        // 將web應用名稱(路徑)保存到application范圍中
        ServletContext application = sce.getServletContext();
        String path = application.getContextPath();
        application.setAttribute("APP_PATH", path);
    }

    public void contextDestroyed(ServletContextEvent sce) {
        // TODO Auto-generated method stub

    }
}

第二步:在 web.xml中注冊監聽器

<!--  使用自定義監聽器 -->
    <listener>
        <listener-class>com.lsy.atcrowdfunding.web.ServerStartupListener</listener-class>
    </listener>

第三步:在頁面引入 APP_PATH(監聽器自己命名的,可以隨意修改,建議)

    <link rel="stylesheet" href="${APP_PATH}/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="${APP_PATH}/css/font-awesome.min.css">
    <link rel="stylesheet" href="${APP_PATH}/css/main.css">
...
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,513評論 1 92
  • 書名:零秒工作(100%) 作者:[日] 赤羽雄二 001凡事探究真相,不斷詢問直到建立起自己的理解 不經過自己思...
    視覺筆記找文瑩閱讀 293評論 0 3
  • Single is simple,double is trouble. (單身簡單,相愛麻煩) 國慶期間,身邊朋友...
    白羽墨畫閱讀 494評論 0 0
  • 想起昨晚的夢,以及夢中的情景,忍不住哭了。而且越哭越傷心,哭聲把女兒引了過來。 她好奇地問我哭什么...
    回首明月閱讀 240評論 0 1