四,搭建环境:表述层

news2024/9/22 1:24:06

四,搭建环境:表述层

文章目录

  • 四,搭建环境:表述层
  • 设定 Web 工程
    • web.xml 的配置编写
      • 配置 ContextLoaderListener
      • 配置 DispatcherServlet
      • 配置 CharacterEncodingFilter
      • 配置 HiddenHttpMethodFilter
  • 配置 Spring MVC
    • 配置视图解析相关
    • 配置自动扫描的包
    • 配置 view-controller 访问首页
    • 创建首页模板文件
  • 测试


设定 Web 工程

web.xml 的配置编写

demo-module01-web 模块下的, web.xml 进行编写

  • 配置 ContextLoaderListener
  • 配置:DispatcherServlet
  • 配置:CharacterEncodingFilter 设置字符集
  • 配置:HiddenHttpMethodFilter

配置 ContextLoaderListener

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

<!--    第一部分:加载 spring-persist.xml 配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
<!--        classpath:表示从 项目的 resources根路径下找-->
        <param-value>classpath:spring-persist.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

配置 DispatcherServlet

还是在 demo-module01-web 模块下的, web.xml 进行编写

注意:同时在该 demo-module01-web 模块下的src/main/resources根路径下,创建一个名为spring-mvc.xml 的配置文件。

在这里插入图片描述

<!--    第二部分:加载 spring-mvc.xml 配置文件-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
<!--        优先加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

<!--    第一部分:加载 spring-persist.xml 配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
<!--        classpath:表示从 项目的 resources根路径下找-->
        <param-value>classpath:spring-persist.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    
<!--    第二部分:加载 spring-mvc.xml 配置文件-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
<!--        优先加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

配置 CharacterEncodingFilter

还是在 demo-module01-web 模块下的, web.xml 进行编写

在这里插入图片描述


    <!-- 第三部分:设置字符集的 Filter -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

<!--    第一部分:加载 spring-persist.xml 配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
<!--        classpath:表示从 项目的 resources根路径下找-->
        <param-value>classpath:spring-persist.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    
<!--    第二部分:加载 spring-mvc.xml 配置文件-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
<!--        优先加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


    <!-- 第三部分:设置字符集的 Filter -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

配置 HiddenHttpMethodFilter

还是在 demo-module01-web 模块下的, web.xml 进行编写

在这里插入图片描述

<!-- 第四部分:按照 RESTFul 风格负责转换请求方式的 Filter -->
    <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

<!--    第一部分:加载 spring-persist.xml 配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
<!--        classpath:表示从 项目的 resources根路径下找-->
        <param-value>classpath:spring-persist.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    
<!--    第二部分:加载 spring-mvc.xml 配置文件-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
<!--        优先加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


    <!-- 第三部分:设置字符集的 Filter -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 第四部分:按照 RESTFul 风格负责转换请求方式的 Filter -->
    <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

配置 Spring MVC

就是上一步,在配置DispatcherServlet时,创建的 spring-mvc.xml 的文件下编写。也就是在 demo-module01-web 模块下的 resources 目录下的 spring-mvc.xml 文件

在这里插入图片描述

    <!--    开启 SpringMVC 的注解驱动功能-->
    <mvc:annotation-driven/>

    <!--    让 SpringMVC 对没有 @RequestMapping的请求直接放行-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--    开启 SpringMVC 的注解驱动功能-->
    <mvc:annotation-driven/>

    <!--    让 SpringMVC 对没有 @RequestMapping的请求直接放行-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>

</beans>

配置视图解析相关

在配置DispatcherServlet时,创建的 spring-mvc.xml 的文件下编写。也就是在 demo-module01-web 模块下的 resources 目录下的 spring-mvc.xml 文件

在这里插入图片描述

    <!-- 配置视图解析器 -->
    <bean id="thymeleafViewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <property name="suffix" value=".html"/>
                        <property name="characterEncoding" value="UTF-8"/>
                        <property name="templateMode" value="HTML5"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--    开启 SpringMVC 的注解驱动功能-->
    <mvc:annotation-driven/>

    <!--    让 SpringMVC 对没有 @RequestMapping的请求直接放行-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>


    <!-- 配置视图解析器 -->
    <bean id="thymeleafViewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <property name="suffix" value=".html"/>
                        <property name="characterEncoding" value="UTF-8"/>
                        <property name="templateMode" value="HTML5"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>


</beans>

注意:需要我们自己手动创建 templates 目录。(还是在:demo-module01-web模块下)

在这里插入图片描述

配置自动扫描的包

在配置DispatcherServlet时,创建的 spring-mvc.xml 的文件下编写。也就是在 demo-module01-web 模块下的 resources 目录下的 spring-mvc.xml 文件

在这里插入图片描述

    <!-- 配置自动扫描的包 -->
    <context:component-scan base-package="com.rainbowsea.imperial.court.*"></context:component-scan>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--    开启 SpringMVC 的注解驱动功能-->
    <mvc:annotation-driven/>

    <!--    让 SpringMVC 对没有 @RequestMapping的请求直接放行-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>

    <!-- 配置自动扫描的包 -->
    <context:component-scan base-package="com.rainbowsea.imperial.court.*"></context:component-scan>

    <!-- 配置视图解析器 -->
    <bean id="thymeleafViewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <property name="suffix" value=".html"/>
                        <property name="characterEncoding" value="UTF-8"/>
                        <property name="templateMode" value="HTML5"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>


</beans>

配置 view-controller 访问首页

在配置DispatcherServlet时,创建的 spring-mvc.xml 的文件下编写。也就是在 demo-module01-web 模块下的 resources 目录下的 spring-mvc.xml 文件

在这里插入图片描述

就是不需要 controller 控制器,就可以访问该页面,一般(是错误,首页,异常的页面显示)

创建首页模板文件

demo-module01-web 模块下的 webapp\templates\ 目录下的创建一个名为 index.html 前端页面文件

在这里插入图片描述

测试

启动配置 Tomcat 服务器启动测试

在这里插入图片描述

在这里插入图片描述

选择 demo-module01-web ,因为该项目中只有它是 web

在这里插入图片描述

在这里插入图片描述

测试成功,编写我们的登录首页:

在这里插入图片描述

<!DOCTYPE html>
<html lang="en" xml:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>

<!-- @{/auth} 解析后:/demo/auth -->
<form th:action="@{/auth/login}" method="post">

    <!-- th:text 解析表达式后会替换标签体 -->
    <!-- ${attrName} 从请求域获取属性名为 attrName 的属性值 -->
    <p style="color: red;font-weight: bold;" th:text="${message}"></p>
    <p style="color: red;font-weight: bold;" th:text="${systemMessage}"></p>

    账号:<input type="text" name="loginAccount"/><br/>
    密码:<input type="password" name="loginPassword"><br/>
    <button type="submit">进宫</button>
</form>

</body>
</html>
  • 对应顺序上一节内容:✏️✏️✏️ 三,搭建环境:事务控制-CSDN博客

  • 对应顺序是下一节内容:✏️✏️✏️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JKI SMO】框架讲解(九)

本节内容将演示如何向SMO框架添加启动画面。 1.打开LabVIEW新建一个空白项目&#xff0c;并保存。 2.找到工具&#xff0c;打开SMO Editor。 3.新建一个SMO&#xff0c;选择SMO.UI.Splash。 4. 打开LabVIEW项目&#xff0c;可以看到项目里多了一个SystemSplash类。 打开Process…

c++11-lambda表达式,包装器function,bind

lambda表达式 lambda表达式在很多语言都是有的&#xff0c;c当然是有的&#xff0c;但是像C语言就没有这个。和很多语言相同c的lambda表达式都是为了简化代码&#xff0c;当我们需要传函数的时候我们就可以用lambda表达式写一个匿名函数。 书写格式&#xff1a; [capture-li…

【Log4j2】代码执行漏洞复现!

执行以下命令 启动命令 systemctl start dockercd vulhub/log4j/CVE-2021-44228docker-compose up -d # 访问网址 http://192.168.3.42&#xff1a;xxxx/solr/#/ 启动靶场环境并在浏览器访问!!! 先在自己搭建的DNSLOG平台上获取一个域名来监控我们注入的效果. 可以发现 /solr…

人工智能:所有144本SCI期刊都在这里(20本Top,4本On Hold)

本周投稿推荐 SCI&EI • 4区“水刊”&#xff0c;纯正刊&#xff08;来稿即录&#xff09; • CCF-B类&#xff0c;IEEE一区-Top&#xff08;3天初审&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; 知网&#xff08;CNKI&#xff09;、谷歌学术 …

CS61C | lecture5

CS61C | lecture5 浮点数的表示 用一个小数点作为边界分隔整数部分和小数部分。 10.101 0 2 1 2 1 1 2 − 1 1 2 − 3 2.62 5 10 10.1010_{2}1\times2^11\times2^{-1}1\times2^{-3}2.625_{10} 10.10102​12112−112−32.62510​ Scientific Notation(Binary) 单精度…

.JPG图片,各种压缩率下的文件尺寸

测试结果 不改变图片幅面的情况下&#xff0c;cv2 jpg压缩算法&#xff1a; 默认quality是9550时&#xff0c;相应的图片尺寸是95的1/3 可用。25时&#xff0c;图片尺寸是1/4&#xff0c;仍可用。 2024/07/31 16:31 85,305 out_10.jpg 2024/07/31 16:31 …

不要怕,手把手带你做好小程序关键词优化

要想让小程序在众多同类中脱颖而出&#xff0c;吸引更多的用户&#xff0c;就必须进行有效的关键词优化。优化小程序关键词是提升小程序搜索排名和吸引目标用户的重要手段。以下是一些优化小程序关键词的具体步骤和策略&#xff1a; 一、关键词研究与选择 1.了解用户搜索习惯…

文件解析漏洞

IIS解析漏洞 在windows Server 2003安装iis 1.IIS6.X 1.1 目录解析 在网站下建立文件夹的名字为 .asp/.asa 的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 先创建一个1.asp文件夹 再创建一个1.txt 里面写 <%now()%> 2.1 畸形文件…

go test单元测试

go test Go语言中的测试依赖go test命令。 go test 命令是用来运行测试代码的工具。测试代码通常与要测试的代码放在同一个包中&#xff0c;并且测试文件通常以 _test.go 结尾。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;所有以_tes…

中国星坤拨码开关系列:为电子设备控制的提供可靠连接

在电子设备日益复杂的今天&#xff0c;控制和设置的简便性成为了用户体验的关键。中国星坤推出的拨码开关以其直观的操作界面和高可靠性&#xff0c;正在引领电子设备控制的新纪元。本文将深入探讨星坤拨码开关的主要特性、应用场景及其在现代电子设备中的重要性。 直观的人机界…

连接器表面缺陷检测方案

连接器是一种用于连接电子设备或电路中不同部件之间的组件&#xff0c;通常用于传输电力、信号或数据。连接器的设计和类型各不相同&#xff0c;以适应不同设备和应用的需求。连接器用于连接电子设备之间的电线、电缆或电路板&#xff0c;实现信号传输和电力供应。连接器设计应…

教育杂志教育杂志社教育编辑部2024年第18期目录

卷首语 “浙”里启程&#xff0c;一路“黔”行 张国军; 1 特别关注 普通高中高质量发展的九大要素——以江苏省通州湾中学为例 徐新民; 4-9 专题策划 “四史”教育融入初中历史教育教学活动探索 陈清波; 10-12 新时代加强师德师风建设的实践与认识 吴东林; 13-…

免费获取Windows7专业版ISO镜像!附上详细安装教程

Windows7专业版系统相比家庭版功能更加完善和强大&#xff0c;支持加强的网络功能、高级备份功能、位置感知打印、加密文件系统等多项安全功能&#xff0c;还有Windows XP模式、脱机文件夹和移动中心等便捷功能&#xff0c;特别适合技术爱好者和中小企业用户安装使用。以下系统…

python之贪吃蛇

废话不多说&#xff0c;直接上代码&#xff08;确保已经安装 pygame&#xff09; import pygame import random# 基础设置 # 屏幕高度 SCREEN_HEIGHT 480 # 屏幕宽度 SCREEN_WIDTH 600 # 小方格大小 GRID_SIZE 20# 颜色设置 WHITE (255, 255, 255) BLACK (0, 0, 0) GREEN…

关于 Postman 这些你都知道吗?

Postman是接口测试工具&#xff0c;在做接口测试的时候&#xff0c;Postman相当于一个客户端&#xff0c;它可以模拟用户发起的各种http请求&#xff0c;将请求的数据发送到服务端&#xff0c;获取对应的结果&#xff0c;从而测试接口是否能够满足业务功能要求&#xff0c;很直…

# mongodb副本集,执行 rs.addArb(“172.18.30.110:27019“) 添加仲裁节点,客户端卡住,半天没有反应,解决方法

mongodb副本集&#xff0c;执行 rs.addArb(“172.18.30.110:27019”) 或者rs.add(“172.18.30.110:27019”, true) 添加仲裁节点&#xff0c;客户端卡住&#xff0c;半天没有反应&#xff0c;解决方法 1、可以退出主节点后&#xff0c;重新登录&#xff0c; # Ctrl C 或者&a…

高效学术翻译:2024五大工具助你攻克语言难题!

在学术研究领域&#xff0c;阅读和翻译外文文献是每位学者必备的基本功。然而&#xff0c;语言障碍往往成为制约学术发展的瓶颈。为了帮助广大研究人员提高学术翻译效率&#xff0c;本文将为您推荐五款实用的学术翻译工具 Foxit在线翻译&#xff1a;随时随地&#xff0c;轻松翻…

就业!——AI 带来的新职业

在人工智能时代&#xff0c;人工智能不仅改变了我们的生活方式&#xff0c;也为人类带来了许多全新的就业机会。这些新机会主要体现在以下几个方面。 1、人工智能相关技术研发与应用 算法工程师专注于设计、构建及优化多样化的算法体系&#xff0c;旨在赋能并强化人工智能系统…

STM32的内存映射机制详解

目录 前言 一、基本概念 二、内存映射的组成 三、典型布局 四、常用映射 前言 刚开始学习STM32的同学可能只知道按案例配置RAM、Flash的起始地址和容量&#xff0c;但是这个地址是怎么来的&#xff0c;可能并不清楚&#xff0c;接下来让我来给大家介绍一下STM32的内存映射…