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.mzph.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 是自定…