天天看點

卷妹的成長日記之javaweb day9

卷妹的成長日記之javaweb day9

👩‍💻部落格首頁:京與舊鋪的部落格首頁

✨歡迎關注🖱點贊🎀收藏⭐留言✒

🔮本文由京與舊鋪原創

😘系列專欄:java學習

👕參考網站:動力節點

💻首發時間:🎞2022年8月23日🎠

🎨你做三四月的事,八九月就會有答案,一起加油吧

🀄如果覺得部落客的文章還不錯的話,請三連支援一下部落客哦

🛒導航小助手🎪

文章目錄

  • ​​卷妹的成長日記之javaweb day9​​
  • ​​🛒導航小助手🎪​​
  • 我們應該怎麼去實作一個功能呢?
  • 建議:你可以從後端往前端一步一步寫。也可以從前端一步一步往後端寫。都可以。但是千萬要記住不要想起來什麼寫什麼。你寫代碼的過程最好是程式的執行過程。也就是說:程式執行到哪裡,你就寫哪裡。這樣一個順序流下來之後,基本上不會出現什麼錯誤、意外。
  • 從哪裡開始?
  • 假設從前端開始,那麼一定是從使用者點選按鈕那裡開始的。
  • 第一:先修改前端頁面的超連結,因為使用者先點選的就是這個超連結。
<a href="/oa/dept/list">檢視部門清單</a>      
  • 第二:編寫web.xml檔案
<servlet>
    <servlet-name>list</servlet-name>
    <servlet-class>com.bjpowernode.oa.web.action.DeptListServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>list</servlet-name>
    <!--web.xml檔案中的這個路徑也是以“/”開始的,但是不需要加項目名-->
    <url-pattern>/dept/list</url-pattern>
</servlet-mapping>      
  • 第三:編寫DeptListServlet類繼承HttpServlet類。然後重寫doGet方法。
package com.bjpowernode.oa.web.action;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class DeptListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
}      
  • 第四:在DeptListServlet類的doGet方法中連接配接資料庫,查詢所有的部門,動态的展示部門清單頁面.
  • 分析list.html頁面中哪部分是固定死的,哪部分是需要動态展示的。
  • list.html頁面中的内容所有的雙引号要替換成單引号,因為out.print(“”)這裡有一個雙引号,容易沖突。
  • 現在寫完這個功能之後,你會有一種感覺,感覺開發很繁瑣,隻使用servlet寫代碼太繁瑣了。
while(rs.next()){
    String deptno = rs.getString("a");
    String dname = rs.getString("dname");
    String loc = rs.getString("loc");

    out.print("         <tr>");
    out.print("             <td>"+(++i)+"</td>");
    out.print("             <td>"+deptno+"</td>");
    out.print("             <td>"+dname+"</td>");
    out.print("             <td>");
    out.print("                 <a href=''>删除</a>");
    out.print("                 <a href='edit.html'>修改</a>");
    out.print("                 <a href='detail.html'>詳情</a>");
    out.print("             </td>");
    out.print("         </tr>");
}      
  • 第六步:檢視部門詳情。
  • 建議:從前端往後端一步一步實作。首先要考慮的是,使用者點選的是什麼?使用者點選的東西在哪裡?
  • 一定要先找到使用者點的“詳情”在哪裡。找了半天,終于在後端的java程式中找到了
<a href='寫一個路徑'>詳情</a>      
  • 詳情 是需要連接配接資料庫的,是以這個超連結點選之後也是需要執行一段java代碼的。是以要将這個超連結的路徑修改一下。
  • 注意:修改路徑之後,這個路徑是需要加項目名的。“/oa/dept/detail”
  • 技巧:
out.print("<a href='"+contextPath+"/dept/detail?deptno="+deptno+"'>詳情</a>");      
  • 重點:向伺服器送出資料的格式:uri?name=value&name=value&name=value&name=value
  • 這裡的問号,必須是英文的問号。不能中文的問号。
  • 解決404的問題。寫web.xml檔案。
<servlet>
    <servlet-name>detail</servlet-name>
    <servlet-class>com.bjpowernode.oa.web.action.DeptDetailServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>detail</servlet-name>
    <url-pattern>/dept/detail</url-pattern>
</servlet-mapping>      
  • 編寫一個類:DeptDetailServlet繼承HttpServlet,重寫doGet方法。
package com.bjpowernode.oa.web.action;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class DeptDetailServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //中文思路(思路來源于:你要做什麼?目标:檢視部門詳細資訊。)
        // 第一步:擷取部門編号
        // 第二步:根據部門編号查詢資料庫,擷取該部門編号對應的部門資訊。
        // 第三步:将部門資訊響應到浏覽器上。(顯示一個詳情。)
    }
}      
  • 在doGet方法當中:連接配接資料庫,根據部門編号查詢該部門的資訊。動态展示部門詳情頁。
  • 第七步:删除部門
  • 怎麼開始?從哪裡開始?從前端頁面開始,使用者點選删除按鈕的時候,應該提示使用者是否删除。因為删除這個動作是比較危險的。任何系統在進行删除操作之前,是必須要提示使用者的,因為這個删除的動作有可能是使用者誤操作。(在前端頁面上寫JS代碼,來提示使用者是否删除。)
<a href="javascript:void(0)" onclick="del(30)" >删除</a>
<script type="text/javascript">
  function del(dno){
    if(window.confirm("親,删了不可恢複哦!")){
      document.location.href = "/oa/dept/delete?deptno=" + dno;
    }
  }
</script>      
  • 以上的前端程式要寫到後端的java代碼當中:
  • DeptListServlet類的doGet方法當中,使用out.print()方法,将以上的前端代碼輸出到浏覽器上。
  • 解決404的問題:
  • ​​http://localhost:8080/oa/dept/delete?deptno=30​​
  • web.xml檔案
<servlet>
    <servlet-name>delete</servlet-name>
    <servlet-class>com.bjpowernode.oa.web.action.DeptDelServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>delete</servlet-name>
    <url-pattern>/dept/delete</url-pattern>
</servlet-mapping>