freemarker集成maven的简单的应用_freemarker maven_捉眼镜蛇煲汤的博客-程序员宅基地

技术标签: freemarker  

1.创建本地maven项目 ,在pom.xml中配置freemarker的架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>cn</groupId>  
  <artifactId>fmarker</artifactId>  
  <version>0.0.1-SNAPSHOT</version>  
  <packaging>war</packaging>  
    
  <dependencies>  
    <!-- freemarker的架包 -->  
    <dependency>  
         <groupId>org.freemarker</groupId>  
         <artifactId>freemarker</artifactId>  
         <version>2.3.23</version>  
    </dependency>  
      
  </dependencies>  
</project>  

2.在webapp的web-inf下的web.xml中配置freemarker的服务

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns="http://java.sun.com/xml/ns/javaee"   
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  
  <display-name>fmarker</display-name>  
  <welcome-file-list>  
    <welcome-file>index.html</welcome-file>  
    <welcome-file>index.htm</welcome-file>  
    <welcome-file>index.jsp</welcome-file>  
    <welcome-file>default.html</welcome-file>  
    <welcome-file>default.htm</welcome-file>  
    <welcome-file>default.jsp</welcome-file>  
  </welcome-file-list>  
  <servlet>  
  <servlet-name>freemarker</servlet-name>  
  <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>  
      
  <!-- 模板的查找路径  从上下文根路径查找 模板 ftl-->  
  <init-param>  
    <param-name>TemplatePath</param-name>  
    <param-value>/</param-value>  
  </init-param>  
  <!-- 是否不需要缓存 -->  
  <init-param>  
    <param-name>NoCache</param-name>  
    <param-value>true</param-value>  
  </init-param>  
  <!-- 最终显示是html -->  
  <init-param>  
    <param-name>ContentType</param-name>  
    <param-value>text/html;charset=UTF-8</param-value>  
  </init-param>  
      
  <!-- FreeMarker settings: -->  
  <init-param>  
    <param-name>template_update_delay</param-name>  
    <param-value>0</param-value> <!-- 0 is for development only! Use higher value otherwise. -->  
  </init-param>  
  <init-param>  
    <param-name>default_encoding</param-name>  
    <param-value>UTF-8</param-value>  
  </init-param>  
  <!-- 数字的格式 -->  
  <init-param>  
    <param-name>number_format</param-name>  
    <param-value>0.##</param-value>  
  </init-param>  
  <!-- servlet 容器启动时实例化 -->  
  <load-on-startup>1</load-on-startup>  
</servlet>  
  
<servlet-mapping>  
  <servlet-name>freemarker</servlet-name>  
  <url-pattern>*.ftl</url-pattern>  
</servlet-mapping>   
</web-app>  

3.在webapp创建一个ftl文件,运行后可以直接在浏览器上输入它的路径

<#list 1..10 as i>  
<#if (i_index+1)%2==0>  
    <font color=red>${i}</font><br/>  
    <#else>  
    <font color=green>${i}</font><br/>  
</#if>      
</#list>  

4.应用maven ,在数据库创建一张表用来存储,以新闻发布为例 ,新闻的标题 ,内容 ,HTML路径 ,发布时间


5.创建新闻后端上传项目 ,在pom.xml中配置架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>cn</groupId>  
  <artifactId>news</artifactId>  
  <version>0.0.1-SNAPSHOT</version>  
  <packaging>war</packaging>  
  <dependencies>  
    <!-- 数据库的架包 -->  
    <dependency>  
        <groupId>mysql</groupId>  
        <artifactId>mysql-connector-java</artifactId>  
        <version>5.1.26</version>  
    </dependency>  
    <!-- freemarker的架包 -->  
  <dependency>  
    <groupId>org.freemarker</groupId>  
    <artifactId>freemarker</artifactId>  
     <version>2.3.23</version>  
  </dependency>  
   
  </dependencies>  
  <!-- 设置字符集 -->  
  <build>  
  <plugins>  
    <plugin>  
        <groupId>org.codehaus.mojo</groupId>  
            <artifactId>tomcat-maven-plugin</artifactId>  
            <version>1.1</version>  
            <configuration>  
            <uriEncoding>UTF-8</uriEncoding>  
        </configuration>  
    </plugin>  
  </plugins>  
  </build>  
</project>  

6.在src/main/resources中配置数据的资源文件 .properties

url=jdbc:mysql://localhost:3306/news  
drclass=com.mysql.jdbc.Driver  
userName=root  
password=123456  

7.配置调用数据源的方法

package model;  
  
import java.io.IOException;  
import java.io.InputStream;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.ResultSetMetaData;  
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
import java.util.Properties;  
  
  
  
public class Dbuit {  
    static Properties p = new Properties();  
    static{  
          
        InputStream is = Dbuit.class.getResourceAsStream("/jdbc.properties");  
        try {  
            p.load(is);  
        } catch (IOException e) {  
              
            e.printStackTrace();  
        }  
    }  
/*获取链接 
 * @return 
 *  
 */  
    public static Connection getConnection() throws Exception{  
        String url=p.getProperty("url");  
        String drclass=p.getProperty("drclass");  
        String userName=p.getProperty("userName");  
        String password=p.getProperty("password");  
        Class.forName(drclass);  
        //登录成功  
        Connection conn = DriverManager.getConnection(url,userName,password);  
          
        return conn;  
    }  
    //执行sql语句  
    public static int execute(String sql) throws Exception{  
        //连接数据库  
        Connection con=getConnection();  
        //预编译SQL语句  
        PreparedStatement pst=con.prepareStatement(sql);  
        //执行SQL语句  
        int i=pst.executeUpdate();  
        con.close();  
        pst.close();  
        return i;  
          
    }  
    //查询  
    public static List<Map> query(String sql) throws Exception{  
          
        //连接数据库  
        Connection con=getConnection();  
        //预编译SQL语句  
        PreparedStatement pst=con.prepareStatement(sql);  
        //执行SQL语句  
        ResultSet rs=pst.executeQuery();  
        //获取列名  
        ResultSetMetaData remd =rs.getMetaData();  
        List list=new ArrayList();  
        //获取列的个数  
        int columnCount =remd.getColumnCount();  
      
        while(rs.next()){  
            Map map= new HashMap();  
            for(int i=1;i<=columnCount;i++){  
                //获取列名  
                String colName=remd.getColumnName(i);  
                //获取列值  
                String colValue=rs.getString(i);  
                map.put(colName, colValue);  
            }  
            list.add(map);  
        }  
        con.close();  
        pst.close();  
        rs.close();  
        return list;  
          
    }  
      
      
}  

8.创建新闻上传,查询的方法

package model;  
  
import java.util.List;  
import java.util.Map;  
  
public class Mynews {  
    //发布新闻  
    public void inserNews(String title,String content,String newspath,String createtime) throws Exception{  
        String sql="insert into mynews(title,content,htmlpath,createtime)values('"+title+"','"+content+"','"+newspath+"','"+createtime+"')";  
        Dbuit.execute(sql);  
    }  
    //查询新闻  
    public List<Map> queryNews() throws Exception{  
        String sql="select * from mynews";  
         return Dbuit.query(sql);  
      
    }  
      
}  

9.创建上传新闻的页面

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>Insert title here</title>  
</head>  
<body align="center">  
    <h1><font color=blue>新闻发布</font></h1>  
    <form action="News" method="post">  
      
    标题:<input type="text" name="title"/><br/>  
    内容:<textarea rows="20" cols="100" name="content"></textarea><br/>  
    <input type="submit">  
    </form>  
</body>  
</html>  

10.controller层servlet的调用

package controller;  
  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.OutputStreamWriter;  
import java.io.Writer;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.UUID;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import freemarker.template.Configuration;  
import freemarker.template.DefaultObjectWrapper;  
import freemarker.template.Template;  
import model.Mynews;  
  
/** 
 * Servlet implementation class News 
 */  
public class News extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
  
    /** 
     * Default constructor.  
     */  
    public News() {  
        // TODO Auto-generated constructor stub  
    }  
    //调用插入,查询的方法  
    Mynews my= new Mynews();  
    //设计时间格式  
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    //生成静态HTML存储的位置  
    public static final String HTML_DIR="E:\\html";  
    /** 
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        //设置字符集  
        response.setContentType("text/html;charset=UTF-8");  
        request.setCharacterEncoding("UTF-8");  
        //获取新闻的标题  
        String title=request.getParameter("title");  
        //获取新闻的内容  
        String content=request.getParameter("content");  
        //获取时间  
        Date date= new Date();  
        String dates=sdf.format(date);  
        //获取唯一的UUID  
        String uuid=UUID.randomUUID().toString();  
        try {  
          
            //生成HTML  
        Configuration config=new Configuration(Configuration.VERSION_2_3_23);    
            //模板文件的位置  
        config.setDirectoryForTemplateLoading(new File("src/main/resources"));    
        config.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_23));  
        //把值注入HTML  
        Map root = new HashMap();  
        root.put("title", title);  
        root.put("content", content);  
        root.put("createtime", dates);  
        加载模板文件  -- 实例化模板对象  
        Template temp =config.getTemplate("news.ftl");  
       //文件的保存路径  
        String sa=HTML_DIR+"/"+(uuid)+".html";  
        Writer out =new OutputStreamWriter(new FileOutputStream(sa));    
        //文件的输出  
        temp.process(root, out);    
        out.flush();   
        out.close();  
        //新闻上传到数据库  
        my.inserNews(title, content, (uuid) + ".html", dates);  
        response.getWriter().println("发布成功...");  
        } catch (Exception e) {  
              
            e.printStackTrace();  
        }  
    }  
  
    /** 
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
          
        doGet(request, response);  
    }  
  
}  

11.新闻的模板

<div style="text-align:center;"><h1><font color=red>${title}</font><br/></h1></div>  
  ${createtime}<br/>  
  ${content}  

12.创建前端freemarker项目,在本地pom.xml中配置依赖的架包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>cn</groupId>  
  <artifactId>new</artifactId>  
  <version>0.0.1-SNAPSHOT</version>  
  <packaging>war</packaging>  
  <dependencies>  
    <!-- 配置数据库的架包 -->  
    <dependency>  
        <groupId>mysql</groupId>  
        <artifactId>mysql-connector-java</artifactId>  
        <version>5.1.26</version>  
    </dependency>  
    <!-- 配置freemarker的架包 -->  
  <dependency>  
      <groupId>org.freemarker</groupId>  
      <artifactId>freemarker</artifactId>  
      <version>2.3.23</version>  
  </dependency>  
  <!-- 配置commons-io的架包 -->  
  <dependency>  
     <groupId>org.apache.commons</groupId>  
     <artifactId>commons-io</artifactId>  
     <version>1.3.2</version>  
</dependency>  
  </dependencies>  
  <!-- 设置字符集 -->  
  <build>  
  <plugins>  
    <plugin>  
        <groupId>org.codehaus.mojo</groupId>  
        <artifactId>tomcat-maven-plugin</artifactId>  
        <version>1.1</version>  
        <configuration>  
        <uriEncoding>UTF-8</uriEncoding>  
        </configuration>  
    </plugin>  
  </plugins>  
  </build>  
</project>  

13.配置连接数据库的四要素,在src/main/resources中创建 .properties文件

url=jdbc:mysql://localhost:3306/news  
drclass=com.mysql.jdbc.Driver  
userName=root  
password=123456  

14.调用封装jdbc的方法类

package model;  
  
import java.io.IOException;  
import java.io.InputStream;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.ResultSetMetaData;  
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
import java.util.Properties;  
  
  
  
public class Dbuit {  
    static Properties p = new Properties();  
    static{  
          
        InputStream is = Dbuit.class.getResourceAsStream("/jdbc.properties");  
        try {  
            p.load(is);  
        } catch (IOException e) {  
              
            e.printStackTrace();  
        }  
    }  
/*获取链接 
 * @return 
 *  
 */  
    public static Connection getConnection() throws Exception{  
        String url=p.getProperty("url");  
        String drclass=p.getProperty("drclass");  
        String userName=p.getProperty("userName");  
        String password=p.getProperty("password");  
        Class.forName(drclass);  
        //登录成功  
        Connection conn = DriverManager.getConnection(url,userName,password);  
          
        return conn;  
    }  
      
    //执行sql  
    public static int execute(String sql) throws Exception{  
        //连接数据库  
        Connection con=getConnection();  
        //预编译SQL语句  
        PreparedStatement pst=con.prepareStatement(sql);  
        //执行SQL语句  
        int i=pst.executeUpdate();  
        con.close();  
        pst.close();  
        return i;  
          
    }  
    //查询  
    public static List<Map> query(String sql) throws Exception{  
          
        //连接数据库  
        Connection con=getConnection();  
        //预编译SQL语句  
        PreparedStatement pst=con.prepareStatement(sql);  
        //执行SQL语句  
        ResultSet rs=pst.executeQuery();  
        //获取列名  
        ResultSetMetaData remd =rs.getMetaData();  
        List list=new ArrayList();  
        //获取列的个数  
        int columnCount =remd.getColumnCount();  
      
        while(rs.next()){  
            Map map= new HashMap();  
            for(int i=1;i<=columnCount;i++){  
                //获取列名  
                String colName=remd.getColumnName(i);  
                //获取列值  
                String colValue=rs.getString(i);  
                map.put(colName, colValue);  
            }  
            list.add(map);  
        }  
        con.close();  
        pst.close();  
        rs.close();  
        return list;  
          
    }  
      
      
}  

15.创建查询新闻的方法

package model;  
  
import java.util.List;  
import java.util.Map;  
  
public class Mynews {  
      
    //查询  
    public List<Map> queryNews() throws Exception{  
        String sql="select * from mynews";  
         return Dbuit.query(sql);  
      
    }  
      
}  


16.刷新新闻页面

package main;  
  
import java.util.Timer;  
  
public class Index {  
    public static void main(String[] args) {  
        Timer ti= new Timer();  
        //new执行任务,执行时间,执行第一次之后多少时间之后执行下一次  
        ti.schedule(new MyTimerTask(), 1000,5000);  
    }  
}  

17.生成前端模板

<#list List as new>  
<#-- 首页显示新闻的连接与标题-->  
<a href="new?path=${new.htmlpath}">${new.title}</a><br/>  
</#list> 

18.生成前端首页

package main;  
  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.OutputStreamWriter;  
import java.io.Writer;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
import java.util.TimerTask;  
  
import freemarker.template.Configuration;  
import freemarker.template.DefaultObjectWrapper;  
import freemarker.template.Template;  
import model.Mynews;  
  
public class MyTimerTask extends TimerTask{  
    //调用查询的方法  
    Mynews my= new Mynews();  
  
    public void run(){  
        try {  
            // 生成html  
            Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);  
            //模板文件的位置  
            cfg.setDirectoryForTemplateLoading(new File("src/main/resources"));  
            cfg.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_23));  
            //获取所有的新闻  
            List<Map> result=my.queryNews();  
            Map root = new HashMap();  
            root.put("List", result);  
              //加载模板文件  -- 实例化模板对象  
            Template temp = cfg.getTemplate("index.ftl");  
            //生成首页页面的位置  
            String saveFile =  "src/main/webapp/index.html";  
            //写入内容  
            Writer out = new OutputStreamWriter(new FileOutputStream(saveFile));  
            temp.process(root, out);  
            out.flush();  
            out.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  

19 读取新闻的内容

package main;  
  
import java.io.File;  
import java.io.IOException;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.apache.commons.io.FileUtils;  
  
/** 
 * Servlet implementation class NewServler 
 */  
public class NewServler extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
  
    /** 
     * Default constructor.  
     */  
    public NewServler() {  
        // TODO Auto-generated constructor stub  
    }  
    //新闻存储的位置  
    public static final String HTML_DIR = "E:\\html\\";  
    /** 
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        //获取模板传过来的连接路径  
        String path=request.getParameter("path");  
        //完整的文件存储路径  
        String abs=HTML_DIR+path;  
        //读取存储的新闻内容  
        byte[] bt=FileUtils.readFileToByteArray(new File(abs));  
        //输出到首页连接  
        response.getOutputStream().write(bt);  
    }  
  
    /** 
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  
        doGet(request, response);  
    }  
  
}  

20.启动后台发布新闻项目,在运行前台新闻首页

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yang_Hui_Liang/article/details/79152524

智能推荐

墨者学院-入门级-SQL注入漏洞测试(布尔盲注)-小白必看(超详细)_使用bp进行布尔盲注-程序员宅基地

2020年8月25日,第五次渗透测试。通过对sql语句进行注入,数据库的库名,表名,字段进步爆破,最终获得key。准备需求:1.windows系统pc2.2.burpsuite(bp)抓包软件3.sqlmap sql 数据库的爆破工具1.进入靶场..._使用bp进行布尔盲注

高瞻远瞩·见贤思齐丨云和恩墨与华为GaussDB共推鲲鹏产业发展-程序员宅基地

点击蓝字关注我们12月18日,以“鲲鹏展翅,力算未来,共赢多样性计算时代”为主题的“鲲鹏计算产业峰会·上海”在沪成功举办。本次峰会由上海市经济和信息化委员会、上海市徐汇区人民政府担任指导单...

python jinja2_jinja2批量生成python脚本-程序员宅基地

? 在使用airflow的过程中需要大量的dag脚本进行性能测试,如果一个个去编写dag脚本未免太过麻烦,于是想到用python的jinja2模板引擎实现批量脚本生成。先通过pip命令安装jinja2模块:$ pip install jinja2然后创建模板文件(模板可以是任何形式的文本格式,没有特定扩展名,甚至可以不要扩展名):dag_templatefrom datetime import t..._jinja2 生成 python

Qt自定义界面类并提升(提升的窗口部件),把OpenGL绘制的图形显示在QT的ui界面上_qt ui提升-程序员宅基地

转载:http://blog.csdn.net/u014546553/article/details/74332153 编译环境:Qt Creator 5.4.0_mingw最近利用QT做一个上位机界面,想用OpenGL将STL文件还原成三维模型,并将模型显示出来,那么问题来了,最简单的显示就直接创建一个窗口显示模型,根本就 没有用到QT的ui界面。现在的问题是,想把OpenGL绘制_qt ui提升

使用爬虫采集网站时,解决被封IP的几种方法_主题模板站的博客-程序员宅基地

8年多爬虫经验的人告诉你,国内ADSL是王道,多申请些线路,分布在多个不同的电信区局,能跨省跨市更好,自己写好断线重拨组件,自己写动态IP追踪服务,远程硬件重置(主要针对ADSL猫,防止其宕机),其余的任务分配,数据回收,都不是大问题。我是将采集的任务按 目标站点的IP进行分组 通过控制每个IP 在单位时间内发出任务的个数,来避免被封.当然,这个前题是你采集很多网站.如果只是采集一个网站,那么只能通过多外部IP的方式来实现了.3.你的程序,使用轮训替换代理服务器来访问想要采集的网站。

[详解C语言]一文带你认识C语言,让你醍醐灌顶_c语言解读-程序员宅基地

将C语言中常见知识进行了简单讲解,为初识C语言_c语言解读

随便推点

Android 节操视频播放器jiecaovideoplayer使用_android jiechaoplay-程序员宅基地

Android 节操视频播放器jiecaovideoplayer使用特点:全屏时启动新Activity实现播放器真正的全屏功能能在ListView、ViewPager和ListView、ViewPager和Fragment等多重嵌套模式下全屏工作ListView的拖拽和ViewPager的滑动时如果划出屏幕会自动重置视频视频大小的屏幕适配,宽或长至少有两个对边是充满屏幕的,另外_android jiechaoplay

BSV 智能合约 2.0 (2)_bsv-dapp-程序员宅基地

在上一篇文章中,我们将 BS智能合约泛化为包括可选的链下验证部分,以及由脚本组成的常规链上部分。我们将这一概念应用于抛硬币游戏,通过使用抵押金的方式反向激励两人不要单方面中止游戏。在本文中,我们使用参考文献[^1]中所述的方法,实现了另外一种公平抛硬币合约,并再次展示了如何设计带有链上和链下部分的混合智能合约。_bsv-dapp

【蓝桥杯嵌入式主板(G4)】第一章 软件环境搭建_嵌入式蓝桥杯可以用电脑里的资料吗_撞上电子的博客-程序员宅基地

在比赛的考场上,自己的电脑是已经安装好了环境的,但是在比赛之前,同学们自己备赛的时候,肯定会用到一些软件,现在,公子带大家安装软件环境。第一节安装jre1,双击jre。2,点击“更改目标文件夹”,随后点击“安装”。3,点击“更换“。4,在弹出的路径中选择自己的安装路径,并点击确认。公子的安装路径在D/jre。5,点击“下一步“。6,开始安装了。7,安装完成,点击“关闭“即可。第二节安装STM32CubeMX1,双击Set..._嵌入式蓝桥杯可以用电脑里的资料吗

spidermonkey的使用及代码(SpiderMonkey1.7)-程序员宅基地

参见https://blog.csdn.net/kaitiren/article/details/21961235https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_User_Guidehttps://blog.csdn.net/jnstone3/article/details/3953203..._spidermonkey

GBase 8c全局一致性事务_gbase 8c全局时间怎么维护-程序员宅基地

GBase 8c采用两阶段提交协议和全局时间戳来保证全局事务的强一致性,每个跨节点的事务,要么全部成功,要么全部失败,不会出现某些节点事务成功,另外一些节点事务失败的情况,实现全局事务的强一致性。GBase 8c的事务处理具有自动容错能力,某个正在处理事务的节点发生故障后,新的节点会继续进行未完成的事务处理,不需要应用程序重新请求。..._gbase 8c全局时间怎么维护

零欧电阻的作用-程序员宅基地

我们经常在电路中见到0欧的电阻,对于新手来说,往往会很迷惑:既然是0欧的电阻,那就是导线,为何要装上它呢?还有这样的电阻市场上有卖吗? 其实0欧的电阻还是蛮有用的。0欧的电阻不但有卖,而且还有不同的规格呢,一般是按功率来分,如1/8瓦,1/4瓦等等。 0欧的电阻大概有以下几个功能: ①做为跳线使用。这样既美观,安装也方便。

推荐文章

热门文章

相关标签