JavaEE(入門)

JavaEE (詳細注釋版)

1. 入門基礎

1.1 JavaEE簡介

JavaEE(Java Platform, Enterprise Edition)是由Sun Microsystems推出的一套標準,現由Oracle維護。JavaEE平臺主要用于開發和運行企業級應用程序,具有高可擴展性、可維護性和跨平臺性。

1.2 JavaEE體系結構

JavaEE體系結構包括以下幾層:

  • 表示層:負責與用戶交互。常用技術包括Servlet、JSP、JSF等。
  • 業務邏輯層:處理具體的業務邏輯。使用EJB(Enterprise JavaBeans)來實現。
  • 持久層:負責數據的持久化。常用技術有JPA(Java Persistence API)、JDBC等。
  • 集成層:用于系統集成,常用技術包括JMS(Java Message Service)、JCA(Java Connector Architecture)等。
1.3 環境搭建

為了開發JavaEE應用程序,需要安裝以下軟件:

  • JDK(Java Development Kit):Java開發工具包。
  • Eclipse或IntelliJ IDEA:集成開發環境(IDE)。
  • Apache Tomcat:一個常用的Servlet容器。
  • Maven或Gradle:項目構建工具。

2. 核心技術

2.1 Servlet

Servlet是一種用于擴展服務器功能的小程序,主要用于處理HTTP請求。以下是一個簡單的Servlet例子,并且包含詳細注釋:

import java.io.IOException; // 導入IOException類,用于處理輸入輸出異常
import javax.servlet.ServletException; // 導入ServletException類,用于處理Servlet特有的異常
import javax.servlet.annotation.WebServlet; // 導入WebServlet注解,用于定義Servlet的URL映射
import javax.servlet.http.HttpServlet; // 導入HttpServlet類,所有Servlet類都繼承自這個類
import javax.servlet.http.HttpServletRequest; // 導入HttpServletRequest類,用于處理請求數據
import javax.servlet.http.HttpServletResponse; // 導入HttpServletResponse類,用于處理響應數據@WebServlet("/hello") // 使用@WebServlet注解定義Servlet的URL映射為/hello
public class HelloServlet extends HttpServlet {private static final long serialVersionUID = 1L; // 定義序列化ID// 重寫doGet方法,處理GET請求protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html"); // 設置響應的內容類型為HTMLresponse.getWriter().println("<h1>Hello, World!</h1>"); // 輸出HTML內容}
}
2.2 JSP(JavaServer Pages)

JSP是一種用于創建動態網頁的技術,允許將Java代碼嵌入到HTML中。以下是一個簡單的JSP例子,并且包含詳細注釋:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 指定JSP頁面使用Java語言,內容類型為HTML,字符編碼為UTF-8 -->
<!DOCTYPE html>
<html>
<head><title>Hello JSP</title> <!-- 頁面標題 -->
</head>
<body><h1>Hello, <%= request.getParameter("name") %>!</h1> <!-- 輸出請求參數name的值 -->
</body>
</html>
2.3 EJB(Enterprise JavaBeans)

EJB是JavaEE中的一個組件模型,用于構建可伸縮的分布式業務應用程序。以下是一個簡單的EJB例子,并且包含詳細注釋:

import javax.ejb.Stateless; // 導入Stateless注解,用于定義無狀態會話Bean@Stateless // 使用@Stateless注解定義無狀態會話Bean
public class HelloBean {// 定義業務方法sayHello,返回問候語public String sayHello(String name) {return "Hello, " + name + "!";}
}

3. 數據持久化

3.1 JDBC(Java Database Connectivity)

JDBC是一種用于執行SQL語句的Java API。以下是一個簡單的JDBC例子,并且包含詳細注釋:

import java.sql.Connection; // 導入Connection接口,用于管理數據庫連接
import java.sql.DriverManager; // 導入DriverManager類,用于獲取數據庫連接
import java.sql.ResultSet; // 導入ResultSet接口,用于處理結果集
import java.sql.Statement; // 導入Statement接口,用于執行SQL語句public class JDBCExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/testdb"; // 定義數據庫URLString user = "root"; // 定義數據庫用戶名String password = "password"; // 定義數據庫密碼try (Connection conn = DriverManager.getConnection(url, user, password); // 獲取數據庫連接Statement stmt = conn.createStatement(); // 創建Statement對象ResultSet rs = stmt.executeQuery("SELECT * FROM users")) { // 執行SQL查詢語句,并返回結果集while (rs.next()) { // 遍歷結果集System.out.println(rs.getString("username")); // 輸出結果集中的用戶名}} catch (Exception e) { // 捕獲異常e.printStackTrace(); // 打印異常信息}}
}
3.2 JPA(Java Persistence API)

JPA是一種用于管理Java對象和關系數據庫數據之間映射的API。以下是一個簡單的JPA例子,并且包含詳細注釋:

import javax.persistence.Entity; // 導入Entity注解,用于定義實體類
import javax.persistence.Id; // 導入Id注解,用于定義主鍵@Entity // 使用@Entity注解定義實體類
public class User {@Id // 使用@Id注解定義主鍵private Long id; // 定義實體類的ID屬性private String username; // 定義實體類的用戶名屬性// 定義getter和setter方法public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}
}import javax.persistence.EntityManager; // 導入EntityManager接口,用于管理實體
import javax.persistence.EntityManagerFactory; // 導入EntityManagerFactory接口,用于創建EntityManager
import javax.persistence.Persistence; // 導入Persistence類,用于獲取EntityManagerFactorypublic class JPAExample {public static void main(String[] args) {// 獲取EntityManagerFactory,指定持久化單元名稱為my-puEntityManagerFactory emf = Persistence.createEntityManagerFactory("my-pu");// 獲取EntityManagerEntityManager em = emf.createEntityManager();// 開始事務em.getTransaction().begin();// 創建并設置User對象User user = new User();user.setId(1L);user.setUsername("john");// 持久化User對象em.persist(user);// 提交事務em.getTransaction().commit();// 關閉EntityManager和EntityManagerFactoryem.close();emf.close();}
}

4. 高級主題

4.1 Web服務

JavaEE提供了對Web服務的支持,包括SOAP和RESTful服務。以下是一個簡單的RESTful服務例子,并且包含詳細注釋:

import javax.ws.rs.GET; // 導入GET注解,用于定義HTTP GET請求
import javax.ws.rs.Path; // 導入Path注解,用于定義URI路徑
import javax.ws.rs.Produces; // 導入Produces注解,用于定義響應的媒體類型
import javax.ws.rs.core.MediaType; // 導入MediaType類,用于指定媒體類型
import javax.ws.rs.ApplicationPath; // 導入ApplicationPath注解,用于定義應用程序路徑
import javax.ws.rs.core.Application; // 導入Application類,用于配置RESTful應用程序@Path("/hello") // 使用@Path注解定義URI路徑為/hello
public class HelloService {@GET // 使用@GET注解定義HTTP GET請求@Produces(MediaType.TEXT_PLAIN) // 使用@Produces注解定義響應的媒體類型為純文本public String sayHello() {return "Hello, World!"; // 返回問候語}
}@ApplicationPath("/api") // 使用@ApplicationPath注解定義應用程序路徑為/api
public class RestApplication extends Application {
}
4.2 安全性

JavaEE提供了豐富的安全特性,如認證和授權。以下是一個簡單的安全配置例子,并且包含詳細注釋:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!-- 定義安全約束 --><security-constraint><!-- 定義受保護的資源集合 --><web-resource-collection><web-resource-name>Protected Area</web-resource-name><url-pattern>/secure/*</url-pattern> <!-- 定義受保護的URL模式 --></web-resource-collection><!-- 定義訪問受保護資源的角色 --><auth-constraint><role-name>USER</role-name></auth-constraint></security-constraint><!-- 定義登錄配置 --><login-config><auth-method>BASIC</auth-method> <!-- 定義認證方法為BASIC --><realm-name>myRealm</realm-name> <!-- 定義認證域名為myRealm --></login-config><!-- 定義安全角色 --><security-role><role-name>USER</role-name></security-role>
</web-app>

5. 實戰項目

通過實際項目來鞏固學習內容。以下是一個簡單的在線圖書管理系統項目:

  • 功能:用戶可以添加、查看、更新和刪除圖書信息。
  • 技術棧:Servlet、JSP、JDBC、Tomcat。
5.1 項目結構
BookManagement
├── src
│   └── com
│       └── example
│           ├── Book.java
│           ├── BookDao.java
│           ├── BookServlet.java
│           └── DBUtil.java
├── WebContent
│   ├── index.jsp
│   └── WEB-INF
│       └── web.xml
└── lib└── mysql-connector-java.jar
5.2 代碼實現

Book.java

public class Book {private int id; // 定義圖書的ID屬性private String title; // 定義圖書的標題屬性private String author; // 定義圖書的作者屬性// 定義getter和setter方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}
}

DBUtil.java

import java.sql.Connection; // 導入Connection接口,用于管理數據庫連接
import java.sql.DriverManager; // 導入DriverManager類,用于獲取數據庫連接public class DBUtil {private static final String URL = "jdbc:mysql://localhost:3306/bookdb"; // 定義數據庫URLprivate static final String USER = "root"; // 定義數據庫用戶名private static final String PASSWORD = "password"; // 定義數據庫密碼// 獲取數據庫連接public static Connection getConnection() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver"); // 加載數據庫驅動return DriverManager.getConnection(URL, USER, PASSWORD); // 返回數據庫連接}
}

BookDao.java

import java.sql.Connection; // 導入Connection接口,用于管理數據庫連接
import java.sql.PreparedStatement; // 導入PreparedStatement接口,用于執行預編譯的SQL語句
import java.sql.ResultSet; // 導入ResultSet接口,用于處理結果集
import java.util.ArrayList; // 導入ArrayList類,用于創建動態數組
import java.util.List; // 導入List接口,用于定義列表public class BookDao {// 獲取所有圖書public List<Book> getAllBooks() throws Exception {List<Book> books = new ArrayList<>(); // 創建圖書列表try (Connection conn = DBUtil.getConnection(); // 獲取數據庫連接PreparedStatement stmt = conn.prepareStatement("SELECT * FROM books"); // 創建預編譯的SQL語句ResultSet rs = stmt.executeQuery()) { // 執行查詢,并返回結果集while (rs.next()) { // 遍歷結果集Book book = new Book(); // 創建圖書對象book.setId(rs.getInt("id")); // 設置圖書IDbook.setTitle(rs.getString("title")); // 設置圖書標題book.setAuthor(rs.getString("author")); // 設置圖書作者books.add(book); // 將圖書添加到列表中}}return books; // 返回圖書列表}// 添加圖書public void addBook(Book book) throws Exception {try (Connection conn = DBUtil.getConnection(); // 獲取數據庫連接PreparedStatement stmt = conn.prepareStatement("INSERT INTO books (title, author) VALUES (?, ?)")) { // 創建預編譯的SQL語句stmt.setString(1, book.getTitle()); // 設置圖書標題stmt.setString(2, book.getAuthor()); // 設置圖書作者stmt.executeUpdate(); // 執行更新}}// 更新圖書public void updateBook(Book book) throws Exception {try (Connection conn = DBUtil.getConnection(); // 獲取數據庫連接PreparedStatement stmt = conn.prepareStatement("UPDATE books SET title = ?, author = ? WHERE id = ?")) { // 創建預編譯的SQL語句stmt.setString(1, book.getTitle()); // 設置圖書標題stmt.setString(2, book.getAuthor()); // 設置圖書作者stmt.setInt(3, book.getId()); // 設置圖書IDstmt.executeUpdate(); // 執行更新}}// 刪除圖書public void deleteBook(int id) throws Exception {try (Connection conn = DBUtil.getConnection(); // 獲取數據庫連接PreparedStatement stmt = conn.prepareStatement("DELETE FROM books WHERE id = ?")) { // 創建預編譯的SQL語句stmt.setInt(1, id); // 設置圖書IDstmt.executeUpdate(); // 執行刪除}}
}

BookServlet.java

import java.io.IOException; // 導入IOException類,用于處理輸入輸出異常
import javax.servlet.ServletException; // 導入ServletException類,用于處理Servlet特有的異常
import javax.servlet.annotation.WebServlet; // 導入WebServlet注解,用于定義Servlet的URL映射
import javax.servlet.http.HttpServlet; // 導入HttpServlet類,所有Servlet類都繼承自這個類
import javax.servlet.http.HttpServletRequest; // 導入HttpServletRequest類,用于處理請求數據
import javax.servlet.http.HttpServletResponse; // 導入HttpServletResponse類,用于處理響應數據@WebServlet("/books") // 使用@WebServlet注解定義Servlet的URL映射為/books
public class BookServlet extends HttpServlet {private static final long serialVersionUID = 1L; // 定義序列化IDprivate BookDao bookDao = new BookDao(); // 創建BookDao對象// 重寫doGet方法,處理GET請求protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {try {request.setAttribute("books", bookDao.getAllBooks()); // 獲取所有圖書,并設置為請求屬性request.getRequestDispatcher("/index.jsp").forward(request, response); // 轉發請求到index.jsp} catch (Exception e) { // 捕獲異常throw new ServletException(e); // 拋出Servlet異常}}// 重寫doPost方法,處理POST請求protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {try {String action = request.getParameter("action"); // 獲取請求參數actionif ("add".equals(action)) { // 如果action為addBook book = new Book(); // 創建Book對象book.setTitle(request.getParameter("title")); // 設置圖書標題book.setAuthor(request.getParameter("author")); // 設置圖書作者bookDao.addBook(book); // 添加圖書} else if ("update".equals(action)) { // 如果action為updateBook book = new Book(); // 創建Book對象book.setId(Integer.parseInt(request.getParameter("id"))); // 設置圖書IDbook.setTitle(request.getParameter("title")); // 設置圖書標題book.setAuthor(request.getParameter("author")); // 設置圖書作者bookDao.updateBook(book); // 更新圖書} else if ("delete".equals(action)) { // 如果action為deletebookDao.deleteBook(Integer.parseInt(request.getParameter("id"))); // 刪除圖書}response.sendRedirect("books"); // 重定向到/books} catch (Exception e) { // 捕獲異常throw new ServletException(e); // 拋出Servlet異常}}
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 指定JSP頁面使用Java語言,內容類型為HTML,字符編碼為UTF-8 -->
<!DOCTYPE html>
<html>
<head><title>Book Management</title> <!-- 頁面標題 -->
</head>
<body><h1>Book Management</h1><form action="books" method="post"> <!-- 表單,用于添加圖書 --><input type="hidden" name="action" value="add"/> <!-- 隱藏域,用于指定操作類型為add -->Title: <input type="text" name="title"/><br/> <!-- 文本框,用于輸入圖書標題 -->Author: <input type="text" name="author"/><br/> <!-- 文本框,用于輸入圖書作者 --><input type="submit" value="Add Book"/> <!-- 提交按鈕,用于提交表單 --></form><hr/><table border="1"> <!-- 表格,用于顯示圖書列表 --><tr><th>ID</th><th>Title</th><th>Author</th><th>Actions</th></tr><%-- 使用JSP腳本元素嵌入Java代碼 --%><%List<Book> books = (List<Book>) request.getAttribute("books"); // 獲取請求屬性booksfor (Book book : books) { // 遍歷圖書列表%><tr><td><%= book.getId() %></td> <!-- 顯示圖書ID --><td><%= book.getTitle() %></td> <!-- 顯示圖書標題 --><td><%= book.getAuthor() %></td> <!-- 顯示圖書作者 --><td><form action="books" method="post" style="display:inline;"> <!-- 表單,用于更新圖書 --><input type="hidden" name="action" value="update"/> <!-- 隱藏域,用于指定操作類型為update --><input type="hidden" name="id" value="<%= book.getId() %>"/> <!-- 隱藏域,用于指定圖書ID -->Title: <input type="text" name="title" value="<%= book.getTitle() %>"/><br/> <!-- 文本框,用于輸入圖書標題 -->Author: <input type="text" name="author" value="<%= book.getAuthor() %>"/><br/> <!-- 文本框,用于輸入圖書作者 --><input type="submit" value="Update"/> <!-- 提交按鈕,用于提交表單 --></form><form action="books" method="post" style="display:inline;"> <!-- 表單,用于刪除圖書 --><input type="hidden" name="action" value="delete"/> <!-- 隱藏域,用于指定操作類型為delete --><input type="hidden" name="id" value="<%= book.getId() %>"/> <!-- 隱藏域,用于指定圖書ID --><input type="submit" value="Delete"/> <!-- 提交按鈕,用于提交表單 --></form></td></tr><%}%></table>
</body>
</html>

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!-- 定義Servlet --><servlet><servlet-name>BookServlet</servlet-name> <!-- Servlet名稱 --><servlet-class>com.example.BookServlet</servlet-class> <!-- Servlet類 --></servlet><!-- 定義Servlet映射 --><servlet-mapping><servlet-name>BookServlet</servlet-name> <!-- Servlet名稱 --><url-pattern>/books</url-pattern> <!-- URL模式 --></servlet-mapping>
</web-app>

6. 參考資料

  • 《JavaEE基礎教程》
  • 《JavaEE高級編程》
  • Oracle官方JavaEE文檔

7. 總結

掌握JavaEE的核心技術,并通過實際項目實踐來鞏固所學知識。在學習過程中,要注重理論與實踐相結合,多動手編寫代碼,解決實際問題,逐步提高自己的編程能力。

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

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

相關文章

11 Goroutine-并發與并行、阻塞與非阻塞

并發 順序執行&#xff1a;按照事先計劃好的順序&#xff0c;執行完一個操作后&#xff0c;再執行下一個操作。 順序執行效率不高的原因&#xff1a; 每個操作由多個步驟組成&#xff0c;每個步驟所需要的時間長短不一&#xff0c;有些步驟可能相當耗時。顧客點菜需要時間&a…

VectorDBBench在windows的調試

VectorDBBench在windows的調試 VectorDBBench是一款向量數據庫基準測試工具&#xff0c;支持milvus、Zilliz Cloud、Elastic Search、Qdrant Cloud、Weaviate Cloud 、 PgVector、PgVectorRS等&#xff0c;可以測試其QPS、時延、recall。 VectorDBBench是一款使用python編寫的…

輕松學EntityFramework Core--Entity Framework Core 簡介

一、什么是Entity Framework Core Entity Framework Core&#xff08;簡稱EF Core&#xff09;是一個現代的、跨平臺的、開源的ORM&#xff08;對象關系映射&#xff09;框架&#xff0c;由微軟開發。它允許.NET開發者通過.NET對象與關系型數據庫進行交互&#xff0c;而無需編…

putty中的plink.exe功能和用法

plink對于自動化的執行命令和工作非常有好處。plink可以讓我們直接在命令行制定好命令&#xff0c;然后執行&#xff0c;完成后自動關閉session。 Plink: command-line connection utility Release 0.81 Usage: plink [options] [user]host [command]("host" can al…

2024年150道高頻Java面試題(七十四)

147. 如何在 MyBatis 中實現一對多和多對一的關系映射&#xff1f; 在 MyBatis 中實現一對多&#xff08;One-to-Many&#xff09;和多對一&#xff08;Many-to-One&#xff09;的關系映射&#xff0c;主要是通過 <resultMap> 元素中的 <collection> 和 <assoc…

深度學習模型在OCR中的可解釋性問題與提升探討

摘要&#xff1a; 隨著深度學習技術在光學字符識別&#xff08;OCR&#xff09;領域的廣泛應用&#xff0c;人們對深度學習模型的可解釋性問題日益關注。本文將探討OCR中深度學習模型的可解釋性概念及其作用&#xff0c;以及如何提高可解釋性&#xff0c;使其在實際應用中更可…

在Linux系統上使用Nginx的詳解指南

目錄 簡介 準備工作 安裝Nginx 通過包管理器安裝 源碼編譯安裝 Nginx基礎配置 主配置文件nginx.conf詳解 基本服務器塊配置 SSL/TLS配置 動靜分離 反向代理配置 負載均衡配置 常見問題及解決方法 結論 1. 簡介 Nginx是一款高性能HTTP和反向代理服務器&#xff…

上位機圖像處理和嵌入式模塊部署(f103 mcu唯一的id)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】 對于stm32f103系列mcu來說,一般每一顆原廠的mcu,都會對應一個唯一的id。那這個id可以用來做什么用呢?個人認為,可以用來做激活使用。舉個例子,第一次mcu模塊使用的時候,一般可…

Java 零基礎入門學習(小白也能看懂!)

&#x1f4da;博客主頁&#xff1a;愛敲代碼的小楊. ?專欄&#xff1a;《Java SE語法》 | 《數據結構與算法》 | 《C生萬物》 |《MySQL探索之旅》 |《Web世界探險家》 ??感謝大家點贊&#x1f44d;&#x1f3fb;收藏?評論?&#x1f3fb;&#xff0c;您的三連就是我持續更…

第16篇:JTAG UART IP應用<三>

Q&#xff1a;如何通過HAL API函數庫訪問JTAG UART&#xff1f; A&#xff1a;Quartus硬件工程以及Platform Designer系統也和第一個Nios II工程--Hello_World的Quartus硬件工程一樣。 Nios II軟件工程對應的C程序調用HAL API函數&#xff0c;如open用于打開和創建文件&#…

前端最新面試題(ES6模塊篇)

目錄 1 ES5、ES6和ES2015有什么區別? 2 babel是什么,有什么作用? 3 let有什么用,有了var為什么還要用let? 4 舉一些ES6對String字符串類型做的常用升級優化? 5 舉一些ES6對Array數組類型做的常用升級優化 6 舉一些ES6對Number數字類型做的常用升級優化 7 舉一些ES…

前端基礎入門三大核心之JS篇:JavaScript,不只是咖啡因那么簡單!—— 進階案例集錦篇

前端基礎入門三大核心之JS篇&#xff1a;解鎖JavaScript的魔法密鑰—— 進階案例集錦 &#x1f9d9; 基礎概念與作用&#xff1a;JS&#xff0c;不僅僅是“腳本”&#x1f4da; 變量聲明的進化史 &#x1f50d; 多維度功能使用&#xff1a;函數、數組與對象&#x1f916; 函數&…

前后端聯調小細節

前端向后端發數據&#xff0c;有時候前端和后端的字段是一樣的&#xff0c;字段沒有問題&#xff0c;前端發過來的載荷也沒有問題&#xff0c;但后端接收到的字段是null的&#xff0c;這時候可以排查前端發過來的數據是不是多嵌套了一層&#xff0c;比如發過來的是。 實例如下…

使用YOLOv9訓練和測試自己的數據集

任務&#xff1a;檢測舌頭上的裂紋和齒痕 已經有了labelme標注的數據集&#xff0c;并且轉為了coco格式 參考&#xff1a; 詳細&#xff01;正確&#xff01;COCO數據集&#xff08;.json&#xff09;訓練格式轉換成YOLO格式&#xff08;.txt&#xff09;_coco數據集的train…

服務器數據恢復—服務器raid常見故障表現原因解決方案

RAID&#xff08;磁盤陣列&#xff09;是一種將多塊物理硬盤整合成一個虛擬存儲的技術&#xff0c;raid模塊相當于一個存儲管理的中間層&#xff0c;上層接收并執行操作系統及文件系統的數據讀寫指令&#xff0c;下層管理數據在各個物理硬盤上的存儲及讀寫。相對于單獨的物理硬…

2023年全國青少年人工智能創新挑戰賽真題

為了大家備考2024年第七屆全國青少年人工智能創新挑戰賽&#xff0c;今天分享2023年第6屆全國青少年人工智能創新挑戰賽C信息學專項真題&#xff0c;圖形化編程及Python編程基本大同小異&#xff0c;參考6547網的Python及圖形化編程題庫。 一、單項選擇題(共 15 題,每題 2 分,共…

jpom linux發布前端 ruoyi

前置條件 輔助安裝 一鍵安裝maven curl -fsSL https://jpom.top/docs/install.sh | bash -s Server mvnonly-moduledefault 一鍵安裝node curl -fsSL https://jpom.top/docs/install.sh | bash -s Server mvnonly-moduledefault 服務下載啟動 下載安裝 安裝服務 安裝服…

vscode中使用conda虛擬環境

每一次配置環境&#xff0c;真的巨煩&#xff0c;網上的資料一堆還得一個個嘗試&#xff0c;遂進行整理 1.準備安裝好Anaconda 附帶一篇測試教程&#xff0c;安裝anaconda 2.準備安裝vscode 安裝地址&#xff1a;Visual Studio Code 3.創建Conda環境 搜索框搜索Anaconda…

位運算符——原碼-反碼-補碼(重點 難點)【二進制在運算中的說明】

如果連二進制的知識還沒搞懂, 那么計算機最基礎的你都還沒明白, 所以2進制對我們程序員來說, 是必會, 必學的知識 二進制在運算中的說明: 一. 二進制是逢2進位的進位制, 0,1是基本算符 二. 現代的電子計算機技術全部采用的是二進制, 因為它只使用0, 1兩個數字符號,非常簡單…

Nginx添加訪問密碼

安裝密碼生成工具 yum -y install httpd-tools生成用戶和密碼文件 [rootlocalhost nginx]# htpasswd -c /usr/local/nginx/password web01 New password: 這里輸入密碼 Re-type new password: 再次輸入密碼 Adding password for user web01參數說明&#xff1a; web01 是自定…