JAVA Web_定義Servlet2_學生登錄驗證Servlet

題目

?頁面StudentLogin.html中有一HTML的表單代碼如下:

<form action="studentLogin" method="post">學生姓名:<input type="text" name="stuName" value=""><br>登錄密碼:<input type="password" name="stuPwd" value=""><br><input type="submit" name= "" value="登錄">
</form>

現按下面的要求定義一個Servlet:
1)定義一個Servlet,將StudentLogin.html的表單數據提交到這個Servlet,根據StudentLogin頁面表單中的設置來配置本Servlet的訪問路徑,要求采用注解方式配置訪問路徑;
2)本Servlet中獲取StudentLogin.html表單提交的學生姓名、登錄密碼,若姓名為“趙錢孫”,且密碼為“123456”,則將該學生姓名添加為request對象以實現數據流轉,再將請求內部派發home.jsp;反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;
3)設置輸出Servlet的響應數據類型為html。

注釋:
1)設置request作用域:
request.setAttribute(String,Object);
2)頁面請求內部派發:
request.getRequestDispatcher(url).forward(request,response);
3)3秒后頁面自動跳轉
response.setHeader("Refresh","3;URL=路徑");
注意:只用編寫Servlet文件,不用編寫jsp和html文件。


本章知識重點:?

目錄

HTML里的表單元素

解讀表單代碼:###

1.定義Servlet:

?1.2 方便驗證——創建一個html文件?##

?1.3?編寫Servlet_注解方式配置Servlet路徑?

2. doPost方法重寫(重載)#####

2.1 分析題意:?#####

2.2 設置request作用域:###

請求作用域是何物

2.3 將請求內部派發:

?2.4 3秒后頁面自動跳轉

完整代碼參考 :

前文鏈接:JAVAWeb_Servlet初識與代碼入門-CSDN博客

JAVAWeb_Servlet初識與代碼入門-CSDN博客

我們本節重中之重,便是學會處理POST請求。但是先來看“題目”一上來,給了我們一段代碼——“StudentLogin.html中有一HTML的表單代碼”。這段代碼是什么,對于我們處理的POST請求有什么關系?

HTML里的表單元素

<form ......>......
</form>

<form>一出現,而</form>一結尾(體現標簽成對出現的特點),就表示兩個標簽中間的代碼是表單代碼。

表單代碼一般放在HTML文件里。因為:HTML是一種用于構建網頁的標記語言,它包含多種元素,用于定義網頁的結構、內容和布局。表單只是HTML中眾多元素之一,用于收集用戶輸入的數據并提交到服務器。

表單代碼收集用戶數據?這就很妙了,請求正是要收集(服務器所需的)用戶數據:GET請求里我們通過URL的查詢字符串的方法收集用戶數據;POST請求里我們就用表單收集用戶數據。

解讀表單代碼:

接下來,我們通過解讀這段表單代碼來了解表單代碼怎么收集用戶信息。

<form action="studentLogin" method="post">...
</form>

?<form>?標簽成對出現。所以一頭為<form>,末尾</form>。

我們再著重看第一行:

<form action="studentLogin" method="post">
//?在寫form代碼時,就要規定action和method,這是<form> 標簽的屬性,它們定義了表單提交時的行為。
// action="studentLogin" ,指定表單數據提交的目標URL ——因為這里的表單數據不是為了收集而收集,而是為了交給服務器處理。服務器怎么處理,自然是交給能處理的POST請求的Servlet。所以這個URL,正是Servlet的URL映射路徑,表單收集到的數據都會通過URL,找到并交給能處理這段數據的Servlet。//指定表單數據提交的方式為HTTP POST方法。POST方法通常用于提交敏感數據(如登錄信息),因為它不會將數據暴露在URL中。

若讀者通過了GET請求那一題,便知道GET請求傳數據是直接在URL里傳參數的鍵值對(可謂是光明正大,密碼都是通過明文并且不加修飾直接交給Servlet。客戶敢用,我們都不敢這么寫)。?

現在來看:<form>標簽里的代碼,為了更好理解,我們結合運行.html文件出的表單。

學生姓名:<input type="text" name="stuName" value=""><br>
登錄密碼:<input type="password" name="stuPwd" value=""><br><input type="submit" name= "" value="登錄">

?先來直觀理解<form>生成的表單內容:

?可以看到:

①:“學生姓名:”就直接顯示,后面"<input ......>"對應了網頁里生成的輸入框。

②:“登錄密碼:”也直接顯示,后面"<input ......>"對應了網頁里生成的輸入框。

③:因為只有<input......>它其實也是輸入框,不過它已經被賦值了“登錄”。所以這個框直接顯示“登錄”。

?這里大家會注意新的標簽<input>:介紹如下

<input type="text" name="username" value="default value"><br>
//<input>也有三個關鍵屬性:在定義時會讓我們初始化
// 1. type 屬性定義了輸入字段的類型。text:普通文本輸入框,用戶可以輸入任意文本。
// 2. name 屬性為輸入字段指定一個名稱,這個名稱在表單提交時用于標識該輸入字段(說人話,就是該輸入框的名稱&&參數的鍵值對中的“鍵”)
// 3. value 屬性定義了輸入字段的默認值或當前值。(說人話,就是輸入框里的數據 && 參數鍵值對中的“值”)// <br>是換行

那么此處這三句代碼就好理解了:

學生姓名:<input type="text" name="stuName" value=""><br>
// 學生姓名:直接打印輸出在頁面
// <input> 為HTML輸入元素,用于創建一個輸入框
// type="text" 表示為一個文本輸入框,用戶可以在其中輸入任意文本。
// name="stuName" 為輸入框指定一個名稱,服務器端可以通過這個名稱來獲取對應的值
// value="" 指定輸入框的默認值。這里默認值為空,表示用戶需要手動輸入學生姓名。
登錄密碼:<input type="password" name="stuPwd" value=""><br>
// 這是一個密碼輸入框,類型(type)為"password"。其特點:輸入時會以隱藏形式顯示(通常顯示為圓點或星號),以保護用戶輸入的敏感信息。
// 輸入框名稱為stuPwd (鍵值對中的鍵)
// 默認輸入值為空,等待學生輸入密碼 (鍵值對中的值)
<input type="submit" name= "" value="登錄">
//這個輸入框,前面就不顯示什么文本信息了。
//類型為"submit",name=""為按鈕指定一個名稱。這里名稱為空,表示該按鈕沒有特定的名稱。
// 但這個按鈕(輸入框)默認值為“登錄”,于是在網頁上就會在這個按鈕上浮現這個值
// submit類型的輸入框:用戶點擊后觸發表單提交操作。

也就是說,提交的表單包含了兩個參數對(學生姓名 和登錄密碼 與其對應的值們)?當點擊submit類型的按鈕,就會提交表單。表單會提交到我們編寫的servlet里(因為收集用戶端數據,就是為了交給服務器端處理)。為了處理這種以表單形式收集數據的請求,我們將這種請求稱為POST請求,于是Servlet編寫的處理請求的方法—— 正是doPost(一種專門處理POST請求)方法

1.定義Servlet:

接下來,我們開始寫代碼。

首先得創建JAVA Web項目,作者這里就創建好了:

?

接著需要新建一個Servlet文件:

?

Servlet名字也沒規定,作者自定義了。

?Eclipse生成的代碼,我刪了些(鍛煉代碼能力嘛)

?1.2 方便驗證——創建一個html文件

如標題所示,就是為了方便驗證。接下來展示怎么創建一個html文件。

?

自動生成的HTML File具有以下代碼:

?

這里我們需要編寫的HTML代碼是一段表單,因為題上已經給出,我們直接copy上去(呵呵)

?(忽略.html的名字,就按照題意取名,作者是后面發現不對勁的?T_T)

1.3?編寫Servlet_注解方式配置Servlet路徑

使用注解方式配置Servlet,我們都會采用@WebServlet(),這是前面提過的以及Servlet的代碼開頭、整體框架,我就直接開頭嘍~

@WebServlet("/")
public class stuLoginservlet extends HttpServlet
{// 繼承HttpServlet,是為了什么?為了保證自己寫的Servlet在語法上實現Servlet所有方法;語法上實現,意味著我們開發者不需要寫那些代碼// 而又可以繼承HttpServlet提供的doGet和doPost方法,根據我們的需要進行改寫
}

類名須于.java文件名一致。?

我們現在來思考:用戶可以通過哪個URL訪問到我們的Servlet,這也是@WebServlet注釋的作用。

再看一眼題意:

根據我們前面“表單代碼”?以及這里不斷明示,為Servlet配置的路徑,正是表單要提交的URL("studentLogin"),而表單提交的方式"method = "post"",也意味著這份表單要交給能處理post請求的servlet。

@WebServlet("/studentLogin")//表單根據action的值找到g該值映射的這個servlet
public class stuLoginservlet extends HttpServlet
{//為了處理post請求,我們得改寫doPost方法protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{}
}

2. doPost方法重寫(重載)

2.1 分析題意:?

在分析題意中,我們會把整體代碼邏輯和能寫的代碼完成~

本Servlet獲取StudentLogin.html表單提交的學生姓名、登錄密碼

很明顯,我們需要先獲取參數,沒問題—— request.getParameter();?

String name = request.getParameter("stuName");//傳進去的參數,一定是參數對的鍵。因為要獲取用戶輸入的值:這里獲取的是stuName的值
String pwd = request.getParameter("stuPwd");//這里pwd獲取的是:用戶對應stuPwd這個輸入框的值

“若則”關系,那么需要使用if-else?:

//獲取參數的值
String name = request.getParameter("stuName");
String pwd = request.getParameter("stuPwd");
//若則關系
if()
{}
else
{}
//若姓名為"趙錢孫",密碼為"123456"
if("趙錢孫".equals(name) && "123456".equals(pwd))
//String.equals(String) 判斷兩個字符串是否相等,第一個String不能為null否則會拋出異常

接下來寫偽代碼:?

//獲取參數的值
String name = request.getParameter("stuName");
String pwd = request.getParameter("stuPwd");
//若則關系
if("趙錢孫".equals(name) && "123456".equals(pwd))
{//將該學生姓名添加為request對象以實現數據流轉,再將請求內部派發home.jsp
}
else
{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;
}

在瀏覽器上顯示頁面信息?這我們學過啊,直接寫:

//在瀏覽器上顯示信息//1.獲取響應輸出流
PrintWriter out = response.getWriter();
//2.輸出信息
out.println("登錄失敗,3秒鐘后請重新登錄");
//獲取參數的值
String name = request.getParameter("stuName");
String pwd = request.getParameter("stuPwd");
//若則關系
if("趙錢孫".equal(name) && "123456".equal(pwd))
{//將該學生姓名添加為request對象以實現數據流轉,再將請求內部派發home.jsp
}
else
{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;PrintWriter out = response.getWriter();out.println("登錄失敗,3秒鐘后請重新登錄");
}

其他的“內部派發”,"自動跳轉",我們還沒學,但是代碼邏輯基本完整,后續補充一下就能上手。還有些細節需要處理:

3)設置輸出Servlet的響應數據類型為html。

//這也是我們學習過的—— response.setContentType();
response.setContentType("text/html;charset=UTF-8");

?現在來綜合我們寫的代碼,來發現還有哪些還沒解決:

@WebServlet("/studentLogin")
public class stuLoginservlet extends HttpServlet
{protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{//以后都要習慣,只要涉及到中文;不管題上是否讓響應輸出html格式,都得第一步設置響應的編碼格式// 1.設置編碼response.setContentType("text/html;charset=UTF-8");// 2. 獲取請求參數的值String name = request.getParameter("stuName");String pwd = request.getParameter("stuPwd");// 3. 判斷請求參數值if("趙錢孫".equals(name) && "123456".equals(pwd)){//將該學生姓名添加為request對象以實現數據流轉,再將請求內部派發home.jsp}else{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;PrintWriter out = response.getWriter();out.println("登錄失敗,3秒鐘后請重新登錄");}}
}

還沒解決的問題:

1. 對于請求體的編碼,服務器并沒設置編碼—— 如果請求體參數的值為中文,服務器默認的編碼是不支持識別中文。

2.??將該學生姓名添加為request對象以實現數據流轉,再將請求內部派發home.jsp

3.? 在3秒后自動跳轉StudentLogin.html頁面;

對于第1點,我們只需熟悉(掌握)這句話:

request.setCharacterEncoding("UTF-8");
//處理表單數據,一定要設置請求體的編碼,確保服務器能正確解析傳來的字符(中文)

所以處理Post請求,一定二話不說,方法體的第一步是兩個編碼:

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");?

?還剩最后兩點:

出題人也是很善良體貼了,都貼上了相應的方法,所以這篇作者會重點討論第一個方法,后面兩個方法直接考慮怎么用就完了(鍛煉我們現學現賣的技能):

2.2 設置request作用域:

方法介紹(參考官方文檔格式)

public void request.setAttribute(String name,Object obj);

request.setAttribute(String name,Object obj);

方法描述

將一個對象obj與指定的名稱name綁定到當前請求的作用域中。此方法允許將數據存儲HttpServletRequest對象(此處為doPost里的request)中,以便在同一個請求的后續處理過程中訪問這些數據。例如,可以將數據傳遞給后續的Servlet或JSP頁面。(此處題意為傳給home.jsp)

參數

name:要綁定到請求作用域的屬性名稱。該名稱必須是String類型,且不能為null。

o:要綁定到請求作用域的屬性值。該值可以是任何Object類型,包括null

異常

IllegalArgumentException:如果namenull

注意:

· 作用域限制:

使用setAttribute方法設置的屬性僅在當前請求的作用域中有效。一旦請求結束,這些屬性將不再可用。

· 覆蓋屬性

如果已經存在一個與指定名稱相同的屬性,調用setAttribute方法將覆蓋原來的屬性值

請求作用域是何物

請求作用域 是Web應用程序中的一種數據存儲范圍,它與單個HTTP請求相關聯。好理解,這個作用域就是存數據的。

為什么需要請求作用域。(即它的作用):剛剛介紹的設置request的作用域方法,結合此處所說的請求作用域。就知道設置request的作用域實際上就是把一對參數(它的名稱和值)存進請求作用域。從題意上,我們其實能窺見請求作用域的作用——將數據傳遞給后續的Servlet或JSP頁面

(作者覺得這出題人這里描述得有問題,更恰當地——“將學生姓名添加到request對象”)?

更加完整的作用:

數據共享——在處理一個HTTP請求時,可能需要在多個組件(如Servlet、JSP頁面)之間共享數據。請求作用域提供了一個方便的地方來存儲這些數據,使得它們可以在請求的生命周期內被訪問。(重點

簡化數據傳遞——通過將數據存儲在請求作用域中,可以避免在組件之間手動傳遞數據。例如,從Servlet到JSP頁面,或者從一個Servlet到另一個Servlet。

于是,結合分析,代碼如下:

request.setAttribute("StuName",name);//設為request作用域的對象之一,又是一個鍵值對啊盆油:鍵作者自己取了,值為我們獲取到的參數值name
@WebServlet("/studentLogin")
public class stuLoginservlet extends HttpServlet
{protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{// 1.設置編碼request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");// 2. 獲取請求參數的值String name = request.getParameter("stuName");String pwd = request.getParameter("stuPwd");// 3. 判斷請求參數值if("趙錢孫".equal(name) && "123456".equal(pwd)){//將該學生姓名添加為request對象以實現數據流轉request.setAttribute("StuName",name);//再將請求內部派發home.jsp}else{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;PrintWriter out = response.getWriter();out.println("登錄失敗,3秒鐘后請重新登錄");}}
}

2.3 將請求內部派發:

?2)頁面請求內部派發:
request.getRequestDispatcher(url).forward(request,response);

很明顯,若想實現“再將請求內部派發home.jsp”,我們只要把這句代碼copy上去,把參數正確填寫就能實現:

request.getRequestDispatcher("/home.jsp").forward(request,response);
// url 是一個字符串,表示目標資源的路徑。推薦加“/”,絕對路徑寫法
//后面的request,response不用改變,我們當前servlet的request,response就是這個名字

?2.4 3秒后頁面自動跳轉

3)3秒后頁面自動跳轉
response.setHeader("Refresh","3;URL=路徑");

題目要求:3s后頁面自動跳轉到?StudentLogin.html 頁面。只需要替換url的值就行(👌)

response.setHeader("Refresh","3;URL=StudentLogin.html");

我們所有代碼都已經完成:

@WebServlet("/studentLogin")
public class stuLoginservlet extends HttpServlet
{protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{// 1.設置編碼request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");// 2. 獲取請求參數的值String name = request.getParameter("stuName");String pwd = request.getParameter("stuPwd");// 3. 判斷請求參數值if("趙錢孫".equals(name) && "123456".equals(pwd)){//將該學生姓名添加為request對象以實現數據流轉request.setAttribute("StuName",name);//再將請求內部派發home.jsprequest.getRequestDispatcher("/home.jsp").forward(request,response);}else{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;PrintWriter out = response.getWriter();out.println("登錄失敗,3秒鐘后請重新登錄");response.setHeader("Refresh","3;URL=StudentLogin.html");}}
}

驗證:

顯示:

?

重新跳轉:?

另一種情況:?

沒事兒,現在保證自己寫的代碼邏輯寫對就行。我們本來也沒寫home.jsp?,后面我們揭曉jsp。

完整代碼參考 :

@WebServlet("/studentLogin")
public class stuLoginservlet extends HttpServlet
{protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{// 1.設置編碼request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");// 2. 獲取請求參數的值String name = request.getParameter("stuName");String pwd = request.getParameter("stuPwd");// 3. 判斷請求參數值if("趙錢孫".equals(name) && "123456".equals(pwd)){//將該學生姓名添加為request對象以實現數據流轉request.setAttribute("StuName",name);//再將請求內部派發home.jsprequest.getRequestDispatcher("/home.jsp").forward(request,response);}else{//反之則顯示“登錄失敗,3秒鐘后請重新登錄”,并在3秒后自動跳轉StudentLogin.html頁面;PrintWriter out = response.getWriter();out.println("登錄失敗,3秒鐘后請重新登錄");response.setHeader("Refresh","3;URL=StudentLogin.html");}}
}

經過這兩篇文章的鋪墊,對于定義基本Servlet我們至少不會再手足無措——多敲多敲,希望讀者(包括作者)能在定義Servlet時得心應手(放心,后面還有練習,作者補充知識的篇幅就不這么大了)。

?前文鏈接:JAVAWeb_Servlet初識與代碼入門-CSDN博客

JAVAWeb_Servlet初識與代碼入門-CSDN博客


作者有話說:(我真沒想到能破萬(扶額邪魅一笑),嘶~為了咱的讀者后期好查閱,我會將一些篇幅大的重要部分單拎出來(點頭))
不過能看到這里的讀者,作者也要為你點贊👍

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76788.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76788.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76788.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲: 一文掌握 pycurl 的詳細使用(更接近底層,性能更高)

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 一、PycURL概述1.1 PycURL介紹1.2 基本安裝1.3 安裝依賴(Linux/macOS)1.4 常用選項參考二、基本使用2.1 簡單 GET 請求2.2 獲取響應信息2.3 設置請求頭2.4 超時設置2.5 跟隨重定向三、高級功能3.1 POST 請求3.2 文件上…

利用 限制torch線程數與異步方法提升聲紋識別效率

引言 聲紋識別作為生物識別技術的重要分支,在安防、金融、智能助手等領域應用廣泛。隨著數據量的增長和應用場景的復雜化,提高聲紋識別效率成為關鍵問題。本文將詳細介紹如何通過 torch.set_num_threads 以及異步方法來優化聲紋識別的性能。 聲紋識別效率瓶頸分析 在聲紋…

軟考高級系統架構設計師-第12章 系統質量屬性與架構評估

【本章學習建議】 根據考試大綱&#xff0c;本章不僅考查系統架構設計師單選題&#xff0c;預計考11分左右&#xff0c;而且案例分析和論文寫作也是必考&#xff0c;對應第二版教材第8章&#xff0c;屬于重點學習的章節。 12.1 軟件系統質量屬性 12.1.1 質量屬性概念 軟件系…

SecProxy - 自動化安全協同平臺

本人為甲方安全人員&#xff0c;從事甲方工作近6年&#xff1b;針對在甲方平時安全工作的一些重復、復雜、難點的工作&#xff0c;思考如何通過AI、腳本、或者工具實現智能且自動化&#xff0c;于是花平時空閑時間準備將這些能力全部集中到一個平臺&#xff0c;于是有了這個東西…

CSI-external-provisioner

main() 這段Go代碼是一個CSI&#xff08;容器存儲接口&#xff09;Provisioner&#xff08;供應器&#xff09;的實現&#xff0c;用于在Kubernetes集群中動態提供持久卷。代碼涉及多個組件和步驟&#xff0c;下面是對關鍵部分的解釋&#xff1a; 初始化和配置 命令行標志和…

react中通過 EventEmitter 在組件間傳遞狀態

要在 Reply 組件中通過 statusChangeEvent 發送狀態值&#xff0c;并在 Select 組件中接收這個狀態值 status&#xff0c;你可以按照以下步驟實現&#xff1a; //Event.jsimport EventEmitter from events;export const statusChangeEvent new EventEmitter();// 工單狀態切換…

1534. 統計好三元組

1534. 統計好三元組 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數數組 arr &#xff0c;以及 a、b 、c 三個整數。請你統計其中好三元組的數量。 如果三元組 (arr[i], arr[j], arr[k]) 滿足下列全部條件&#xff0c;則認為它是一個 好三元組 。 0 < i < j &l…

如何配置AWS EKS自動擴展組:實現高效彈性伸縮

本文詳細講解如何在AWS EKS中配置節點組&#xff08;Node Group&#xff09;和Pod的自動擴展&#xff0c;優化資源利用率并保障應用高可用。 一、準備工作 工具安裝 安裝并配置AWS CLI 安裝eksctl&#xff08;EKS管理工具&#xff09; 安裝kubectl&#xff08;Kubernetes命令…

FPGA_UART

1.UART 概述 &#xff08;通用異步收發傳輸器&#xff09; 1. 基本定義 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;是一種常見的串行通信協議&#xff0c;用于在設備間通過異步串行通信傳輸數據。它不依賴獨立的時鐘信號&#xff0c;而是通過預…

openwrt軟路由配置4--文件共享

1.安裝samba opkg update opkg install luci-app-samba4安裝好之后重啟設備&#xff0c;系統界面服務下面會多一個network shares 2.創建磁盤分區并掛載到共享目錄 openwrt剛剛安裝的時候空間都是很小的&#xff0c;共享目錄我是打算用來存放一些電影視頻之類的大文件。所以我…

Vue ‘v-model‘ directives require the attribute value which is valid as LHS.

1、問題描述 在項目開發中&#xff0c;如果將el-checkbox組件的v-model指令改為使用三元表達式時&#xff0c;會報出【vue/valid-v-model】的錯誤&#xff0c;如下圖所示&#xff1a; 2、分析原因 根據錯誤提示&#xff0c;是因為v-model指令始終把Vue實例的data視為數據真實…

基于 Qt 的 BMP 圖像數據存取至 SQLite 數據庫的實現

基于 Qt 的 BMP 圖像數據存取至 SQLite 數據庫的實現說明 本項目通過 Qt 框架實現了將 BMP 圖像文件以二進制形式存入 SQLite 數據庫&#xff0c;并可從數據庫中讀取還原為 BMP 圖像文件的功能&#xff0c;適用于需要圖像與結構化數據統一管理的場景。 整個流程分為兩個主要部…

嵌入式基礎(三)基礎外設

嵌入式基礎&#xff08;三&#xff09;基礎外設 1.什么是UART&#xff1f;與USART有什么區別??? (1)什么是UART 通用異步收發傳輸器&#xff08;Universal Asynchronous Receiver/Transmitter)&#xff0c;通常稱作UART。是一種異步全雙工串行通信協議&#xff0c;它將要…

人力資源管理方向論文怎么寫?

目錄 一、人力資源管理方向論文選題 二、人力資源管理方向論文參考資料 隨著經濟的蓬勃發展&#xff0c;企業日益意識到引才、善用人才、留住人才對于業務發展的至關重要性。人力資源管理逐漸成為企業管理中的核心職能&#xff0c;其角色日益凸顯。近年來&#xff0c;“人力資…

機器學習 從入門到精通 day_05

1. 線性回歸 前面介紹了很多分類算法&#xff0c;分類的目標變量是標稱型數據&#xff0c;回歸是對連續型的數據做出預測。 標稱型數據&#xff08;Nominal Data&#xff09;是統計學和數據分析中的一種數據類型&#xff0c;它用于分類或標記不同的類別或組別,數據點之間并沒有…

神經子圖同構計數

摘要 本文研究了一個新的圖學習問題&#xff1a;學習計算子圖同構。與其他傳統的圖學習問題&#xff0c;如節點分類和鏈接預測不同&#xff0c;子圖同構計數是NP完全的&#xff0c;需要更多的全局推理來監督整個圖。為了使其可擴展為大規模的圖形和模式&#xff0c;我們提出了一…

開源模型應用落地-模型上下文協議(MCP)-第三方MCP Server實戰指南(五)

一、前言 在AI技術高速發展的2025年,如何讓大語言模型(LLM)更靈活地調用外部工具與數據,成為開發者關注的焦點。?模型上下文協議(MCP)?作為AI與外部資源的“萬能接口”,通過標準化交互框架解決了傳統集成中的碎片化問題。而第三方MCP Server的引入,進一步降低了開發門…

【2025年認證杯數學中國數學建模網絡挑戰賽】C題 數據預處理與問題一二求解

目錄 【2025年認證杯數學建模挑戰賽】C題數據預處理與問題一求解三、數據預處理及分析3.1 數據可視化3.2 滑動窗口相關系數統計與動態置信區間耦合分析模型3.3 耦合關系分析結果 四、問題一代碼數據預處理問題一 【2025年認證杯數學建模挑戰賽】C題 數據預處理與問題一求解 三…

AI Agent開發大全第二十八課-MCP實現本地命令調用怎么做的?

開篇 MCP很強大,Client端一旦實現了穩定的連接和執行流程后任Server端隨意改動都可兼容,這就是熱插撥功能。 如果我們僅僅滿足于MCP查點網上資料、讀點圖片即文字型的功能肯定是不能充分發揮MCP的強大之處的,正應了Google以及Anthropic最近的研究報告上說的:不要再在chat…

AJAX原理與XMLHttpRequest

目錄 一、XMLHttpRequest使用步驟 基本語法 步驟 1&#xff1a;創建 XHR 對象 步驟 2&#xff1a;調用 open() 方法 步驟 3&#xff1a;監聽 loadend 事件 步驟 4&#xff1a;調用 send() 方法 二、完整示例 1. GET 請求&#xff08;帶查詢參數&#xff09; 2. POST 請…