JavaWeb通過(guò)IDEA配置Servlet操作流程詳解
創(chuàng)建項(xiàng)目
首先創(chuàng)建一個(gè)空項(xiàng)目?。?!注意是空項(xiàng)目?。?!
點(diǎn)擊 文件->新建->新模塊 ,新建一個(gè)名稱為 servlet02 的模塊(注意該模塊的生成位置應(yīng)該在我們剛剛新建的空項(xiàng)目下面!?。。?/p>
之后右鍵點(diǎn)擊新模塊 servlet02,選擇 “添加框架支持”
勾選 “web 應(yīng)用程序” ,之后直接點(diǎn)擊完成即可自動(dòng)生成 webapp 框架;
引入外部 jar
文件 -> 項(xiàng)目結(jié)構(gòu)
模塊 -> servlet02 -> 依賴 -> 點(diǎn)擊加號(hào),并選擇第一個(gè)項(xiàng)目
找到 tomcat 根目錄下的 lib 文件夾,選擇 jsp-api.jar
和 servlet-api.jar
兩個(gè)包并導(dǎo)入!
安裝 mysql-connector
前往 maven 中心倉(cāng)庫(kù),搜索 mysql-connector;
或者直接前往此地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
因?yàn)槲沂褂玫氖?mysql5.7 版本,所以我們找到倉(cāng)庫(kù)內(nèi)的 5.1.x 中最新的那一個(gè)版本,下載其 jar 包就好了(5.1.x 版本兼容 5.7)
下載完畢后直接把該 jar 包,粘貼到 tomcat 根目錄下的 lib 文件夾里面!
編寫(xiě) servlet 文件
下面就是標(biāo)準(zhǔn)的 JDBC 操作了,請(qǐng)您直接看注釋,一個(gè)個(gè)解釋太累了
package com.zhiyiyi.javaweb.servlet; import jakarta.servlet.*; import java.io.IOException; import java.io.PrintWriter; import java.sql.*; public class StudentServlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { // 設(shè)置請(qǐng)求頭類型 response.setContentType("text/html"); // 設(shè)置輸出 PrintWriter printWriter = response.getWriter(); // 為三件套分配內(nèi)存空間 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 反射獲取jdbc驅(qū)動(dòng) Class.forName("com.mysql.jdbc.Driver"); // 傳入你的mysql數(shù)據(jù)庫(kù)名稱、用戶名、密碼 String url = "jdbc:mysql://localhost:3306/jakarta"; String user = "root"; String password = "123456"; // 鏈接數(shù)據(jù)庫(kù) conn = DriverManager.getConnection(url, user, password); // 編寫(xiě)查詢語(yǔ)句并執(zhí)行,使用resultset取回查詢結(jié)果 String sql = "select no, name from std1"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); // 打印從數(shù)據(jù)庫(kù)中取回的結(jié)果 while (rs.next()) { String no = rs.getString("no"); String name = rs.getString("name"); printWriter.println(no + " " + name + "<br>"); } // 一些錯(cuò)誤處理 } catch (ClassNotFoundException | SQLException e) { throw new RuntimeException(e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
編寫(xiě) student.html 文件
我們生成的 webapp 模板默認(rèn)是自帶一個(gè) index.jsp 的,目前用不到,先刪掉;
在同樣的位置新建一個(gè) student.html 文件,輸入以下代碼;
這里使用了一個(gè)鏈接指向了我們剛剛編寫(xiě)的 servlet;
<html> <head> <meta charset="UTF-8" /> <title>student servlet</title> </head> <body> <a href="/crm/servlet/student" rel="external nofollow" >student list</a> </body> </html>
配置 tomcat 服務(wù)器
點(diǎn)擊 idea 右上角綠色小三角左邊的下拉列表,選擇“添加配置”
彈出窗口點(diǎn)擊加號(hào) -> tomcat 服務(wù)器 -> 本地
然后按照下圖所示填充內(nèi)容
注意:由于我的電腦端口被占用,所以我修改了 http 端口為 10086,事實(shí)上這一項(xiàng)我們保持默認(rèn)不用管就可以了!
再次進(jìn)入“部署”欄目,點(diǎn)擊加號(hào)添加工件,然后設(shè)置應(yīng)用程序上下文為/crm 即可;
這里的 /crm
對(duì)應(yīng)我們之前的 student.html
鏈接里的/crm
/crm 表示項(xiàng)目的目錄
運(yùn)行并查看服務(wù)器
一切配置完畢,點(diǎn)擊綠色按鈕開(kāi)始構(gòu)建 tomcat 服務(wù)器;
此時(shí)因?yàn)槲覀児催x了服務(wù)器一啟動(dòng)就打開(kāi)瀏覽器的選項(xiàng),但我們發(fā)現(xiàn)剛剛打開(kāi)的瀏覽器 404 報(bào)錯(cuò);
別著急,只是路徑對(duì)不上,我們將 url 改為我們?cè)O(shè)置的 herf 路徑即可訪問(wèn)到 mysql 提取的數(shù)據(jù)了?。。?/p>
到此這篇關(guān)于JavaWeb通過(guò)IDEA配置Servlet操作流程詳解的文章就介紹到這了,更多相關(guān)JavaWeb配置Servlet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(shù)的原理與實(shí)現(xiàn)
平衡樹(shù)(Balance Tree,BT) 指的是,任意節(jié)點(diǎn)的子樹(shù)的高度差都小于等于1。常見(jiàn)的符合平衡樹(shù)的有,B樹(shù)(多路平衡搜索樹(shù))、AVL樹(shù)(二叉平衡搜索樹(shù))等。本文將詳細(xì)介紹平衡二叉樹(shù)的概念和實(shí)現(xiàn)原理以及它的實(shí)現(xiàn)2022-01-01SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper實(shí)例詳解
這篇文章主要介紹了SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper實(shí)例詳解 ,需要的朋友可以參考下2017-09-09SpringBoot如何實(shí)現(xiàn)分離資源文件并打包
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)分離資源文件并打包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06SpringBoot整合Lettuce redis過(guò)程解析
這篇文章主要介紹了SpringBoot整合Lettuce redis過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10SpringBoot使用Feign進(jìn)行服務(wù)間通信的實(shí)現(xiàn)示例代碼
Feign是一個(gè)開(kāi)源的Java HTTP客戶端,可以幫助我們?cè)赟pringBoot應(yīng)用中快速構(gòu)建和使用HTTP客戶端,方便實(shí)現(xiàn)服務(wù)間的通信,本文就來(lái)介紹一下SpringBoot使用Feign進(jìn)行服務(wù)間通信的實(shí)現(xiàn)示例代碼,感興趣的可以了解一下2024-01-01HttpServletRequest對(duì)象常用功能_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了HttpServletRequest對(duì)象常用功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07