javaweb监听和渲染技术

jsp入门使用

<%@ page import="java.io.PrintWriter" %>
<%--  Created by IntelliJ IDEA.--%>
<%--  User: 韩顺平--%>
<%--  jsp的模板如何定制,一会再说明--%>
<%--  To change this template use File | Settings | File Templates.--%>
<%--&ndash;%&gt;--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jsp的简单的求和计算器</title>
</head>
<body>
<h1>jsp的简单的求和计算器</h1>
<%//老韩解读//1. 在jsp的 该标签中, 可以写java代码int i = 10;int j = 20;int res = i + j;//2. jsp 中内置对象,可以直接使用, 比如 out//   老韩小技巧:先死后活 ctrl + alt + lout.println(i + " + " + j + " = " + res);//3. 老师说明,如果要看HttpJspBase类的关系, 需要引入一个包, alt+enter//在java片段中,仍然是java的注释String email = "xx@qq.com";/*多行注释*/%>
<%--email: <%=email%>--%>
<!--html注释 -->
</body>
</html>

在这里插入图片描述

声明所需的类

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jsp声明脚本</title>
</head>
<body>
<h1>jsp声明脚本</h1>
<%!//这里我们可以声明该jsp需要使用的属性,方法,静态代码块, 内部类//老师一句话: 也就是给 statement.jsp 对应的 statement_jsp 类定义成员//1. 属性private String name = "jack";private int age;private static String company;//2 方法public String getName() {return name;}//3. 静态代码块static {company = "字节跳动";}
%>
</body>
</html>

表达式脚本使用

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>表达式脚本的使用</title>
</head>
<body>
<h1>个人信息</h1>
<%String name = "老韩";String email = request.getParameter("email");
%>
用户名: <%=name%><br/>
工作是: <%="java工程师"%><br/>
年龄: <%=request.getParameter("age")%><br/>
电邮: <%=email%>
</body>
</html>

在这里插入图片描述

jsp内置对象

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jsp内置对象</title>
</head>
<body>
<h1>jsp内置对象</h1>
<%//老韩梳理jsp的内置对象//out 类型是 JspWriter 父类就是 Writer.out.println("jsp out");//request是HttpServletRequestrequest.getParameter("age");//response就是 HttpServletResponse//response.sendRedirect("http://www.baidu.com");//session 就是 HttpSessionsession.setAttribute("job", "PHP工程师");//application类型就是ServletContextapplication.setAttribute("name", "老韩老师");//pageContext 可以存放数据(属性), 但是该数据只能在本页面使用pageContext.setAttribute("age", 100);//exception 异常对象 使用比较少//page 内置对象,类似 thisout.println("page=" + page);//config 内置对象的类型就是ServletConfigString pwd = config.getInitParameter("pwd");%>
</body>
age: <%=pageContext.getAttribute("age")%>
</html>

jsp的域对象

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>scope文件</title>
</head>
<body>
<%//在不同的域对象中,放入数据//老韩解读//1. 因为四个域对象,是不同的对象,因此name(key) 相同时,并不会冲突pageContext.setAttribute("k1", "pageContext数据(k1)");request.setAttribute("k1", "request数据(k1)");session.setAttribute("k1", "session数据(k1)");application.setAttribute("k1", "application数据(k1)");//做一个请求转发的操作//路径应该怎么写,请不清楚地小伙伴,去看韩老师讲的web路径专题//request.getRequestDispatcher("/scope2.jsp").forward(request, response);//做一个重定向String contextPath = request.getContextPath();//返回的就是 web路径=>/jsp//response.sendRedirect("/jsp/scope2.jsp");response.sendRedirect(contextPath + "/scope2.jsp");
%>
<h1>四个域对象,在本页面获取数据的情况</h1>
pageContext-k1: <%=pageContext.getAttribute("k1")%><br/>
request-k1: <%=request.getAttribute("k1")%><br/>
session-k1: <%=session.getAttribute("k1")%><br/>
application-k1: <%=application.getAttribute("k1")%><br/>
</body>
</html>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>scope2.js</title>
</head>
<body>
<h1>在scope2页面获取数据的情况</h1>
pageContext-k1: <%=pageContext.getAttribute("k1")%><br/>
request-k1: <%=request.getAttribute("k1")%><br/>
session-k1: <%=session.getAttribute("k1")%><br/>
application-k1: <%=application.getAttribute("k1")%><br/>
</body>
</html>

jsp对象的使用

package com.hspedu.entity;public class Monster {private Integer id;private String name;private String skill;public Monster(Integer id, String name, String skill) {this.id = id;this.name = name;this.skill = skill;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSkill() {return skill;}public void setSkill(String skill) {this.skill = skill;}
}
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.hspedu.entity.Monster" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>演示代码脚本</title>
</head>
<body>
<h1>演示代码脚本</h1>
<%//创建ArrayList ,放入两个monster对象ArrayList<Monster> monsterList = new ArrayList<>();monsterList.add(new Monster(1, "牛魔王", "芭蕉扇"));monsterList.add(new Monster(2, "蜘蛛精", "吐口水"));
%>
<table bgcolor="#f0f8ff" border="1px" width="300px"><tr><th>id</th><th>名字</th><th>技能</th></tr><%for (int i = 0; i < monsterList.size(); i++) {//先取出monster对象Monster monster = monsterList.get(i);%><tr><td><%=monster.getId()%></td><td><%=monster.getName()%></td><td><%=monster.getSkill()%></td></tr><%}%></table>
</body>
</html>

在这里插入图片描述

jsp作业

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>JSP计算器</title><!--使用js+正则表达式完成数据校验--><script type="text/javascript">function check() {//得到 num1 和 num2值var num1 = document.getElementById("num1").value;var num2 = document.getElementById("num2").value;//验证 正则表达式, 整数 => 在java基础讲过 => 学习技术一定要经常回顾//我们学习的所有java技术=> 其实都是基础组合[oop,io,反射,注解,集合,线程,网络]var reg = /^[-]?([1-9]\d*|0)$/;if (!reg.test(num1)) {//如果不满足验证条件alert("num1 不是一个整数");return false;//放弃提交}if (!reg.test(num2)) {//如果不满足验证条件alert("num2 不是一个整数");return false;//放弃提交}return true;//提交到action指定的位置}</script>
</head>
<body>
<h1>JSP计算器</h1>
<form action="<%=request.getContextPath()%>/calServlet"method="post" onsubmit="return check()">num1: <input type="text" id="num1" name="num1"> num1错误:xx <br/>num2: <input type="text" id="num2" name="num2"> num2错误:xx<br/>运算符号:<select name="oper"><option value="+">+</option><option value="-">-</option><option value="*">*</option><option value="/">/</option></select><br/><input type="submit" value="提交计算">
</form>
</body>
</html>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>计算结果</title>
</head>
<body>
<h1>计算结果</h1>
<%=request.getAttribute("res")%><br/>
<%--<a href="/jsp/cal/calUI.jsp">返回重新来玩一把</a>--%>
<a href="<%=request.getContextPath()%>/cal/calUI.jsp">返回重新来玩一把~</a>
</body>
</html>
package com.hspedu.servlet;import com.hspedu.utils.WebUtils;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class CalServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("CalServlet 被调用...");//思路 ==> 代码//1. 是Servlet//2. 接收数据//String num1 = request.getParameter("num1");//String num2 = request.getParameter("num2");//进行转换->intdouble num1 = WebUtils.parseDouble(request.getParameter("num1"), 0);double num2 = WebUtils.parseDouble(request.getParameter("num2"), 0);String oper = request.getParameter("oper");double res = 0; //使用变量来接收运算结果//3. 完成计算if ("+".equals(oper)) {res = num1 + num2;} else if ("-".equals(oper)) {res = num1 - num2;} else if ("*".equals(oper)) {res = num1 * num2;} else if ("/".equals(oper)) {res = num1 / num2;} else {System.out.println(oper + " 不正确...");}//4. 把结果保存到域对象[request, session, servletContext]//   老韩解读:因为一次请求对应一次计算, 所以我建议将结果保存到request//   老韩的思路: 把结果组织到一个字符串中., 方便我们在下一个页面显示//   java基础: String.format ,可以格式化字符串String formatRes = String.format("%s %s %s = %s", num1, oper, num2, res);request.setAttribute("res", formatRes);//System.out.println("formatRes= " + formatRes);//5. 转发到显示页面 calRes.jsprequest.getRequestDispatcher("/cal/calRes.jsp").forward(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}

在这里插入图片描述
在这里插入图片描述

package com.hspedu.utils;public class WebUtils {//把一个string->intpublic static int parseInt(String strNum, int defaultVal) {try {return Integer.parseInt(strNum);} catch (NumberFormatException e) {System.out.println(strNum + " 不能转成整数...");}return defaultVal;}//把一个string->intpublic static double parseDouble(String strNum, double defaultVal) {try {return Double.parseDouble(strNum);} catch (NumberFormatException e) {System.out.println(strNum + " 不能转成double...");}return defaultVal;}
}

jstl快速入门

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>jstl的快速入门</title>
</head>
<body>
<h1>jstl的快速入门</h1>
<%--老韩解读1. c:if ... 类似2. if(10>2){out.println("<h1>10 > 2 成立~</h1>")}
--%>
<c:if test="${10 < 2}"><h1>10 > 2 成立~</h1>
</c:if>
</body>
</html>

在这里插入图片描述

标签if的应用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>c:if标签使用</title>
</head>
<body>
<c:set scope="request" var="num1" value="20"></c:set>
<c:set scope="request" var="num2" value="10"></c:set>
<c:if test="${num1 > num2}"><h1>${num1} > ${num2}</h1>
</c:if>
</body>
</html>

标签set的应用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>c:set标签的使用</title>
</head>
<body>
<h1>c:set标签的使用</h1>
<%--<%--%>
<%--    //Java代码--%>
<%--    request.setAttribute("email", "hsp@sohu.com");--%>
<%--%>--%>
<%--老韩解读<c:set /> set 标签可以往域中保存数据1. 等价 域对象.setAttribute(key,value);2. scope 属性设置保存到哪个域page 表示 PageContext 域(默认值)request 表示 Request 域session 表示 Session 域application 表示 ServletContext3. var 属性设置 key 是什么4. value 属性设置值
--%>
<c:set scope="request" var="name" value="韩顺平教育~"></c:set>
c:set-name的值${requestScope.name}
</body>
</html>

在这里插入图片描述

foreach标签的使用

<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="com.hspedu.entity.Monster" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0Filename: jstl_foreach
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>c:forEach 标签</title>
</head>
<body>
<h1>c:forEach 标签</h1>
<hr/>
<h1>1种遍历方式从i到j</h1>
<ul><%--1.遍历 152. 输出 begin 属性设置开始的索引 end 属性设置结束的索引3. var 属性表示循环的变量(也是当前正在遍历到的数据)4. 等价 for (int i = 1; i <= 5; i++) {}5. 在默认情况下, i 每次会递增1--%><c:forEach begin="1" end="5" var="i"><li>排名=${i}</li></c:forEach>
</ul>
<hr/>
<h1>2种遍历方式:遍历数组</h1>
<%request.setAttribute("sports", new String[]{"打篮球", "乒乓球"});
%>
<%--<c:forEach items="${ requestScope.sports }" var="item"/>1. items 遍历的集合/数组2. var 遍历到的数据3. 等价 for (Object item: arr) {}
--%>
<c:forEach items="${requestScope.sports}" var="sport">运动名称= ${sport}<br/>
</c:forEach>
<hr/>
<h1>3种遍历方式:遍历Map</h1>
<%Map<String, Object> map = new HashMap<>();map.put("key1", "北京");map.put("key2", "上海");map.put("key3", "天津");request.setAttribute("cities", map);
%>
<%--1. items 遍历的map集合2. var 遍历到的数据3. entry.key 取出key4. entry.value 取出值
--%>
<c:forEach items="${requestScope.cities}" var="city">城市信息: ${city.key}--${city.value}<br/>
</c:forEach>
<hr/>
<h1>4种遍历方式:遍历List</h1>
<%List<Monster> monsters = new ArrayList<>();monsters.add(new Monster(100, "小妖怪", "巡山的"));monsters.add(new Monster(200, "大妖怪", "做饭的"));monsters.add(new Monster(300, "老妖怪", "打扫位置的"));request.setAttribute("monsters", monsters);
%>
<%--items 表示遍历的集合var 表示遍历到的数据begin 表示遍历的开始索引值 ,0开始计算end 表示结束的索引值step 属性表示遍历的步长值varStatus 属性表示当前遍历到的数据的状态,可以得到step,begin,end等属性值//老师提示, 对于jstl标签,能看懂,会使用即可
--%>
<c:forEach items="${requestScope.monsters}" var="monster">妖怪的信息: ${monster.id}-${monster.name}-${monster.skill}<br/>
</c:forEach>
</body>
</html>

choose标签的应用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>c:choose标签的使用</title>
</head>
<body>
<h1>c:choose标签的使用</h1>
<%request.setAttribute("score", 50);request.setAttribute("k1", "request-k1的值");//session.setAttribute("k1", "session-k1的值");//application.setAttribute("k1", "application-k1的值");//pageContext.setAttribute("k1", "pageContext-k1的值~");
%>
<%--老师多说一句
1. 如果${requestScope.score} 那么就明确的指定从request域对象取出数据
2. 如果${score}, 这是就按照从小到大的域范围去获取 pageContext->request->session->application
3. 一会老韩给小伙伴验证一把.
--%>
k1=${k1}
<c:choose><c:when test="${requestScope.score > 80}"><h1>${score}-成绩优秀</h1></c:when><c:when test="${requestScope.score >= 60}"><h1>${score}-成绩一般, 及格了</h1></c:when><c:otherwise><h1>${score}-没有及格,下次努力~</h1></c:otherwise>
</c:choose>
</body>
</html>

jstl作业

package com.hspedu.servlet;import com.hspedu.entity.Monster;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;public class QueryServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 准备要显示的数据--> 从DBArrayList<Monster> list = new ArrayList<>();list.add(new Monster(100, "牛魔王", "芭蕉扇"));list.add(new Monster(200, "狐狸精", "美人计"));list.add(new Monster(300, "白骨精", "吃人骨头"));//2. 把list放入到request域, 供jsp页面使用request.setAttribute("monsters", list);//3. 请求转发 list.jsprequest.getRequestDispatcher("/jstl/list.jsp").forward(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>显示所有的妖怪</title>
</head>
<body>
<h1>显示所有的妖怪</h1>
<table border="1px" width="400px"><tr><td>id</td><td>name</td><td>skill</td></tr>
<%--    使用c:foreach循环显示即可 显示id > 200--%><c:forEach items="${monsters}" var="monster"><c:if test="${monster.id >= 200}"><tr><td>${monster.id}</td><td>${monster.name}</td><td>${monster.skill}</td></tr></c:if></c:forEach></table>
</body>
</html>
<%--Created by IntelliJ IDEA.User: 韩顺平Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>查询妖怪</title>
</head>
<body>
<h1>查询妖怪</h1>
<a href="<%=request.getContextPath()%>/queryServlet">点击查询所有的妖怪</a>
</body>
</html>

在这里插入图片描述

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

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

相关文章

使用gpt对对话数据进行扩增,对话数据扩增,数据增强

我们知道一个问题可以使用很多方式问&#xff0c;但都可以使用完全一样的回答&#xff0c;基于这个思路&#xff0c;我们可以很快的扩增我们的数据集。思路就是使用chatgpt或者gpt4生成类似问题&#xff0c;如下&#xff1a; 然后我们可以工程化这个过程&#xff0c;从而快速扩…

【JAVA】数组

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 数组 1. 数组的基本概念1.1 为什么要使用…

Spring Boot整合ES的两种方式

使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成&#xff0c;简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…

网关 GateWay 的使用详解、路由、过滤器、跨域配置

一、网关的基本概念 SpringCloudGateway网关是所有微服务的统一入口。 1.1 它的主要作用是&#xff1a; 反向代理&#xff08;请求的转发&#xff09; 路由和负载均衡 身份认证和权限控制 对请求限流 1.2 相比于Zuul的优势&#xff1a; SpringCloudGateway基于Spring5中…

javascript:js介绍初体验和变量以及数据类型的使用。

目录 一.介绍 1概念 2作用 3组成 二.js初体验 1.js的书写位置 a.行间引入 b.内部引入 c.外部引入​编辑 2.js的注释 3.js的结束符 4.输入输出语句 输出语法 输入语法 三.变量及数据类型 ​ 1.字面量 2.变量 ​编辑 变量的使用 ​编辑 let和var的区别…

在 Linux 上以 All-in-One 模式安装 KubeSphere

官方文档&#xff1a;https://www.kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/ 操作系统 最低配置 Ubuntu&#xff1a; 16.04,18.04, 20.04, 22.04 2 核 CPU&#xff0c;4 GB 内存&#xff0c;40 GB 磁盘空间Debian Buste&#xff1a;Stretch 2 核 CPU&am…

【严重】Smartbi商业智能BI软件权限绕过漏洞

漏洞描述 Smartbi 是一款商业智能应用&#xff0c;提供了数据集成、分析、可视化等功能&#xff0c;帮助用户理解和使用他们的数据进行决策。 在 Smartbi 受影响版本中存在权限绕过问题&#xff0c;未授权的攻击者可以通过 RMI 的方式调用 getPassword 接口获取管理员 token …

jQuery知识

DOM知识 alert(我是弹窗); prompt(弹窗输入);Dom元素节点获取 方式一&#xff1a;通过 id 获取 一个 元素节点&#xff08;为什么是一个呢&#xff1f;因为 id 是唯一的&#xff09; var div1 document.getElementById("box1"); 方式二&#xff1a;通过 标签名 获…

conda 环境 numpy 安装报错需要 Microsoft Visual C++ 14.0

到公司装深度学校环境。项目较旧&#xff0c;安装依赖&#xff0c;一堆报错&#xff08;基于 conda 环境&#xff09;&#xff1a; numpy 安装报需要 C 14.0 No module named numpy.distutils._msvccompiler in numpy.distutils; trying from distutilserror: Microsoft Visu…

预测知识 | 预测模型变量重要性、可视化及论文撰写指南

预测知识 | 预测模型变量重要性、可视化及论文撰写指南 目录 预测知识 | 预测模型变量重要性、可视化及论文撰写指南变量重要性模型可视化论文撰写指南参考资料 变量重要性 关于预测模型变量重要性&#xff0c;大家一定熟悉不过。但如下图所示&#xff0c;其展示上可有进一步优…

网络安全进阶学习第十三课——SQL注入Bypass姿势

文章目录 一、等号被过滤二、substr、mid等被过滤三、逗号被过滤四、and/or被过滤五、空格被过滤五、其他绕过方式 一、等号被过滤 1、like&#xff0c;rlike语句&#xff0c;其中rlike是正则2、大于号>&#xff0c;小于号<3、符号<>&#xff1a;<>为不等于…

飞凌OKMX6ULL-C开发板试用

开箱体验 主要配件包括&#xff1a;USB Type-C调试线、电源线、主板。 资源下载 开发环境 飞凌提供了制作好的ubuntu18.04的镜像&#xff0c;直接到网盘下载解压即可&#xff0c;VMWare的安装可以参考网上教程&#xff0c;这里不赘述。安装好VMWare后直接打开解压出来的ubu…

高性能MySQL实战(一):表结构

大家好&#xff0c;我是 方圆。最近因需求改动新增了一些数据库表&#xff0c;但是在定义表结构时&#xff0c;具体列属性的选择有些不知其所以然&#xff0c;索引的添加也有遗漏和不规范的地方&#xff0c;所以我打算为创建一个高性能表的过程以实战的形式写一个专题&#xff…

IMv1.0

一、背景内容 总结golang基础内容&#xff0c;通过一个实例实时 IM系统简进行总结知识 二、简要的图 简要说明&#xff1a; 1.在server.go中&#xff0c;创建一个Newserver返回server指针的结构体 2.正对这个指针结构体实现两个方法 Handler&#xff08;处理方法&#xff0…

VBA遍历Wrod所有表格每个单元格,单元格未尾两个回车替换

一、遍历 word中遍历所有表格的每个单元格。因为在单元格时会常出错。浪费了不少时间。 Sub a()Dim doc As Document, tb As Table, ce As cellDim rng As Range, p As ParagraphSet doc ActiveDocumentFor Each tb In doc.TablesFor Each ce In tb.Range.Cells 关键处就是这里…

redis入门2-命令

Redis的基本数据类型 redis的基本数据类型&#xff08;value&#xff09;: string,普通字符串 hash&#xff08;哈希&#xff09;,适合存储对象 list(列表),按照插入顺序排序&#xff0c;可以由重复的元素 set(无序集合)&#xff0c;没有重复的元素 sorted set(有序集合)&…

Rust 原生支持龙架构指令集

导读近日&#xff0c;Rust 开源社区发布 1.71.0 版本&#xff0c;实现对龙架构&#xff08;LoongArch&#xff09;指令集的原生支持。 龙架构操作系统发行版和开发者可基于上游社区源代码构建或直接下载 Rust 开源社区发布的龙架构二进制版本。Rust 开发者将在龙架构平台上获得…

【枚举】CF1706 C

有人一道1400写了一个小时 Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先先去观察样例&#xff1a; 很显然&#xff0c;对于n是奇数的情况&#xff0c;只有一种情况&#xff0c;直接操作偶数位就好了 主要是没搞清楚n是偶数的情况 其实有个小技巧&…

无涯教程-Perl - delete函数

描述 此函数从哈希中删除指定的键和关联的值,或从数组中删除指定的元素。该操作适用于单个元素或切片。 语法 以下是此函数的简单语法- delete LIST返回值 如果键不存在,并且与已删除的哈希键或数组索引关联的值,则此函数返回undef。 Perl 中的 delete函数 - 无涯教程网无…

FreeRTOS(vTaskList与vTaskGetRunTimeStats)

目录 1、Cube配置 ①配置SYS ②配置TIM3 ③配置USART2 ④配置FreeRTOS ⑤配置中断优先级 2、代码添加改动 ①在main函数合适位置开启TIM3中断 ②修改HAL_TIM_PeriodElapsedCallback函数 ③完善两个相关函数 ④vTaskList与vTaskGetRunTimeStats的使用 vTaskList&#xff…