国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

javaweb使用Thymeleaf 最凝練的CRUD項目-中

這篇具有很好參考價值的文章主要介紹了javaweb使用Thymeleaf 最凝練的CRUD項目-中。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

javaweb使用Thymeleaf 最凝練的CRUD項目-中

6、顯示首頁

①目標(biāo)

瀏覽器訪問index.html,通過首頁Servlet,渲染視圖,顯示首頁。

②思路

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

③代碼

[1]創(chuàng)建PortalServlet

<servlet>
    <servlet-name>PortalServlet</servlet-name>
    <servlet-class>com.atguigu.demo.servlet.PortalServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>PortalServlet</servlet-name>
    <url-pattern>/index.html</url-pattern>
</servlet-mapping>

Servlet代碼:

public class PortalServlet extends ViewBaseServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String viewName = "portal";

        super.processTemplate(viewName, request, response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

[2]創(chuàng)建portal.html
javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>士兵信息管理系統(tǒng)</title>
</head>
<body>

    <a th:href="@{/SoldierServlet?method=showList}">顯示士兵信息列表</a>

</body>
</html>

7、顯示列表

①目標(biāo)

在目標(biāo)頁面顯示所有士兵信息,士兵信息是從數(shù)據(jù)庫查詢出來的

②思路

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

③代碼

[1]ModelBaseServlet

創(chuàng)建這個基類的原因是:我們希望每一個模塊能夠?qū)?yīng)同一個Servlet,

這個模塊所需要調(diào)用的所有方法都集中在同一個Servlet中。

如果沒有這個ModelBaseServlet基類,我們doGet()、doPost()方法可以用來處理請求,

這樣一來,每一個方法都需要專門創(chuàng)建一個Servlet(就好比咱們之前的LoginServlet、RegisterServlet其實都應(yīng)該合并為UserServlet)。

public class ModelBaseServlet extends ViewBaseServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 在doGet()方法中調(diào)用doPost()方法,這樣就可以在doPost()方法中集中處理所有請求
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 1.從請求參數(shù)中獲取method對應(yīng)的數(shù)據(jù)
        String method = request.getParameter("method");

        // 2.通過反射調(diào)用method對應(yīng)的方法
        // ①獲取Class對象
        Class<? extends ModelBaseServlet> clazz = this.getClass();

        try {
            // ②獲取method對應(yīng)的Method對象
            Method methodObject = clazz.getDeclaredMethod(method, HttpServletRequest.class, HttpServletResponse.class);
            
            // ③打開訪問權(quán)限
            methodObject.setAccessible(true);
            
            // ④通過Method對象調(diào)用目標(biāo)方法
            methodObject.invoke(this, request, response);
        } catch (Exception e) {
            e.printStackTrace();
            
            throw new RuntimeException(e);
        }
    }

}
[2]SoldierDao.selectSoldierList()

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs
javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

接口方法:

public interface SoldierDao {

    List<Soldier> selectSoldierList();

}

實現(xiàn)類方法:

public class SoldierDaoImpl extends BaseDao<Soldier> implements SoldierDao {
    @Override
    public List<Soldier> selectSoldierList() {
        
        String sql = "select soldier_id soldierId,soldier_name soldierName,soldier_weapon soldierWeapon from t_soldier";
        
        return getBeanList(Soldier.class, sql);
    }
}
[3]SoldierService.getSoldierList()

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

接口方法:

public interface SoldierService {

    List<Soldier> getSoldierList();

}

實現(xiàn)類方法:

public class SoldierServiceImpl implements SoldierService {

    private SoldierDao soldierDao = new SoldierDaoImpl();

    @Override
    public List<Soldier> getSoldierList() {

        List<Soldier> soldierList = soldierDao.selectSoldierList();

        return soldierList;
    }
}
[4]SoldierServlet.showList()
實現(xiàn)步驟

1.調(diào)用Service方法獲取集合數(shù)據(jù)
2.將集合數(shù)據(jù)存入請求域
3.渲染視圖(在渲染的過程中,已經(jīng)包含了轉(zhuǎn)發(fā))

protected void showList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 1.調(diào)用Service方法獲取集合數(shù)據(jù)
    List<Soldier> soldierList = soldierService.getSoldierList();

    // 2.將集合數(shù)據(jù)存入請求域
    request.setAttribute("soldierList", soldierList);

    // 3.渲染視圖(在渲染的過程中,已經(jīng)包含了轉(zhuǎn)發(fā))
    processTemplate("list", request, response);
}

8、刪除功能

①目標(biāo)

點擊頁面上的超鏈接,把數(shù)據(jù)庫表中的記錄刪除。

②思路

[1]先不考慮后續(xù)

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

[2]加上后續(xù)返回響應(yīng)頁面

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

③代碼

[1]完成刪除超鏈接

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

<a th:href="@{/SoldierServlet(soldierId=${soldier.soldierId},method='remove')}">刪除</a>

關(guān)于@{地址}附加請求參數(shù)的語法格式:

  • 只有一個請求參數(shù):@{地址(請求參數(shù)名=普通字符串)}或@{地址(請求參數(shù)名=${需要解析的表達(dá)式})}
  • 多個請求參數(shù):@{地址(名=值,名=值)}

官方文檔中的說明如下:

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs

[2]Servlet方法

1.從請求參數(shù)中獲取士兵信息的id值

實現(xiàn)步驟

2.將集合數(shù)據(jù)存入請求域

實現(xiàn)方案

方案一:還是直接前往list.html,需要重新查詢soldierList數(shù)據(jù),代碼重復(fù)
方案二:直接調(diào)用隔壁的showList()
方案三:通過請求轉(zhuǎn)發(fā)的方式間接調(diào)用showList()方法
方案四:通過請求重定向的方式間接調(diào)用showList()方法

protected void remove(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 1.從請求參數(shù)中獲取士兵信息的id值
    String soldierId = request.getParameter("soldierId");

    // 2.調(diào)用Service方法執(zhí)行刪除操作
    soldierService.remove(soldierId);

    // 3.后續(xù)……
    // 方案一:還是直接前往list.html,需要重新查詢soldierList數(shù)據(jù),代碼重復(fù)
    // 1.調(diào)用Service方法獲取集合數(shù)據(jù)
    // List<Soldier> soldierList = soldierService.getSoldierList();

    // 2.將集合數(shù)據(jù)存入請求域
    // request.setAttribute("soldierList", soldierList);

    // processTemplate("list", request, response);

    // 方案二:直接調(diào)用隔壁的showList()
    // 也能實現(xiàn)需求,但是總感覺這樣調(diào)用方法破壞了程序的結(jié)構(gòu)
    // showList(request, response);

    // 方案三:通過請求轉(zhuǎn)發(fā)的方式間接調(diào)用showList()方法
    // request.getRequestDispatcher("/SoldierServlet?method=showList").forward(request, response);

    // 方案四:通過請求重定向的方式間接調(diào)用showList()方法
    response.sendRedirect(request.getContextPath() + "/SoldierServlet?method=showList");
}
[3]Service方法
   @Override
    public void remove(String soldierId) {
        soldierDao.delete(soldierId);
    }
[4]Dao方法
 @Override
    public void delete(String soldierId) {
        String sql = "delete from t_soldier where soldier_id=?";

        update(sql, soldierId);
    }

9、前往新增信息的表單頁面

①創(chuàng)建超鏈接

<a th:href="@{/SoldierServlet?method=toAddPage}">前往新增頁面</a>

②Servlet

protected void toAddPage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processTemplate("add-page", request, response);
}

③創(chuàng)建表單頁面

javaweb使用Thymeleaf 最凝練的CRUD項目-中,項目,javascript,前端,html,java,ecmascript,ide,emacs文章來源地址http://www.zghlxwxcb.cn/news/detail-582327.html

<form th:action="@{/SoldierServlet}" method="post">

    <input type="hidden" name="method" value="saveSoldier" />

    士兵姓名:<input type="text" name="soldierName" /><br/>
    士兵武器:<input type="text" name="soldierWeapon" /><br/>

    <button type="submit">保存</button>

</form>

到了這里,關(guān)于javaweb使用Thymeleaf 最凝練的CRUD項目-中的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JavaWeb圖書管理系統(tǒng)課設(shè):全面掌握CRUD操作

    詳細(xì)介紹JavaWeb圖書管理系統(tǒng)的開發(fā)過程,包括后端Servlet服務(wù)、前端Ajax交互以及MyBatis的增刪改查實現(xiàn),適合初學(xué)者鞏固JavaWeb知識。

    2024年02月08日
    瀏覽(32)
  • 手把手教你實現(xiàn)一個JavaWeb項目:創(chuàng)建一個自己的網(wǎng)頁博客系統(tǒng)(前端+后端)(一)

    手把手教你實現(xiàn)一個JavaWeb項目:創(chuàng)建一個自己的網(wǎng)頁博客系統(tǒng)(前端+后端)(一)

    一篇博客帶你實現(xiàn)一個真正的項目! ?先來看看它是什么樣式的: 目錄: 1、大體步驟??: ????????1、創(chuàng)建Maven項目?? ????????2、引入依賴?? ????????3、創(chuàng)建必要的目錄?? ????????4、編寫代碼?? ????????5、打包部署(基于SmartTomcat)?? ????????

    2024年02月06日
    瀏覽(22)
  • JavaWeb前端/后端開發(fā)規(guī)范——接口文檔概述及YApi平臺的使用

    JavaWeb前端/后端開發(fā)規(guī)范——接口文檔概述及YApi平臺的使用

    整理下筆記,打好基礎(chǔ),daydayup!!! 什么是接口文檔? 目前主流的開發(fā)模式為前后端分離式開發(fā),為了方便前后端的對接,就需要使用接口文件進行統(tǒng)一規(guī)范。 接口文檔記載什么信息? 1,基本信息:請求路徑,請求方式,接口描述 2,參數(shù)信息:參數(shù)名,參數(shù)類型,參數(shù)樣例

    2024年04月17日
    瀏覽(20)
  • JavaScript中的CRUD操作指南示例 - 用DHTMLX創(chuàng)建醫(yī)院管理系統(tǒng)!

    JavaScript中的CRUD操作指南示例 - 用DHTMLX創(chuàng)建醫(yī)院管理系統(tǒng)!

    創(chuàng)建、讀取、更新和刪除(CRUD)是現(xiàn)代web和移動應(yīng)用程序執(zhí)行的四個基本功能。然而這些函數(shù)是如何產(chǎn)生的,它們到底是做什么的? 在本文中,我們將簡要介紹CRUD的含義以及它何時被引入編程的。文中我們還將使用用于醫(yī)院管理的JavaScript演示應(yīng)用程序,展示如何使用DHTMLX小部

    2024年02月10日
    瀏覽(22)
  • 使用Idea導(dǎo)入eclipse的javaweb項目(超詳細(xì))

    使用Idea導(dǎo)入eclipse的javaweb項目(超詳細(xì))

    點此 1.首先選擇打開該項目 2.打開后會是這樣的,只顯示.classpath和.project的eclipse文件 3.打開project structre 4.在project structre中點擊modules,然后點擊+號,選import module,選擇該文件夾的位置 5.選擇eclipse,點擊next 6.選擇keep project and module files in,然后繼續(xù)點擊next 7.選中項目名,點

    2024年02月15日
    瀏覽(22)
  • 使用寶塔部署JavaWeb前后端項目到服務(wù)器

    使用寶塔部署JavaWeb前后端項目到服務(wù)器

    1.我使用的是騰訊云的輕量應(yīng)用服務(wù)器,在安裝系統(tǒng)的時候可以選擇使用寶塔Linux面板。 ?2.安裝了寶塔面板以后,可以在應(yīng)用管理中看到寶塔面板的登陸地址。在登錄之前需要在 用戶名和密碼那一欄 登錄,來獲取寶塔的用戶名和密碼。 3.進入寶塔以后輸入用戶名和密碼即可

    2024年02月04日
    瀏覽(26)
  • 如何使用eclipse導(dǎo)入別人的javaWeb項目(超詳細(xì)完整)

    如何使用eclipse導(dǎo)入別人的javaWeb項目(超詳細(xì)完整)

    1、點擊文件,點擊導(dǎo)入 ?2、選擇常規(guī) 現(xiàn)有項目到工作空間中 下一步? 3、點擊瀏覽找到對應(yīng)項目,最好將“選項”下方的將項目復(fù)制到工作空間復(fù)選框打上勾(相當(dāng)于將項目拷貝一份到你的workspace工作空間,對項目代碼修改只修改到工作空間的項目,不會影響原項目文件)

    2024年02月03日
    瀏覽(24)
  • 使用javaweb項目實現(xiàn)對數(shù)據(jù)庫的增、刪、改、查操作

    使用javaweb項目實現(xiàn)對數(shù)據(jù)庫的增、刪、改、查操作

    ? JavaWeb是指使用Java語言進行Web應(yīng)用程序開發(fā)的技術(shù),可以利用Java編寫一些動態(tài)網(wǎng)頁、交互式網(wǎng)頁、企業(yè)級應(yīng)用程序等。 JavaWeb技術(shù)主要包括Servlet、JSP、JDBC、JavaBean、JNDI、EJB、Web Services等。 Servlet是JavaWeb技術(shù)的核心組件之一,它是一個運行在Web服務(wù)器上的Java程序,可以接收

    2024年02月05日
    瀏覽(18)
  • JavaWeb 速通JavaScript

    JavaWeb 速通JavaScript

    目錄 一、JavaScript快速入門 ? ? ? ? 1.基本介紹 :? ? ? ? ? 2.JavaScript特點 :? ? ? ? ? 3.JavaScript使用方式 :? ? ? ? ? ? ? ? ? 1° 方式一 : 寫在script標(biāo)簽中 ? ? ? ? ? ? ? ? 2° 方式二 : 以外部文件形式引入 ? ? ? ? ? ? ? ? PS : 注意事項 ? ? ? ? 4.JavaScript查錯方式 :? 二、

    2024年02月13日
    瀏覽(17)
  • 【JavaWeb】JavaScript

    【JavaWeb】JavaScript

    Javascript 語言誕生主要是完成頁面的數(shù)據(jù)驗證。因此它運行在客戶端,需要運行瀏覽器來解析執(zhí)行 JavaScript 代碼。 JS 是 Netscape 網(wǎng)景公司的產(chǎn)品,最早取名為 LiveScript;為了吸引更多 java 程序員。更名為 JavaScript。? JS 是弱類型,Java 是強類型。 弱類型就是類型可變, 強類型就是

    2024年02月01日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包