- 【Python】邮件处理2
宅男很神经
python开发语言
7.Pythonemail库深度解析:MIME邮件构建与解析的艺术在前面的章节中,我们深入探讨了电子邮件的底层协议(SMTP,POP3,IMAP)以及如何使用imaplib库从服务器接收和管理邮件。然而,邮件内容的实际格式和结构并非由这些传输协议定义,而是由MIME(MultipurposeInternetMailExtensions)标准规范。Python的email库是处理MIME格式邮件的强
- 【网络安全基础】第八章---电子邮件安全
薄荷椰果抹茶
信息安全与网络安全安全web安全网络
仅供参考文章目录一、电子邮件协议二、邮件格式2.1RFC53222.2MIME2.3S/MIME(重点)三、域名系统(DNS)四、域名密钥识别邮件(DKIM)一、电子邮件协议传输邮件时使用两种协议:1)简单的邮件传输协议SMTP——把消息通过互联网从源移动到目的地2)邮件访问协议——用于在邮件服务器之间传输信息,两个最常使用:POP3(邮局协议):允许客户端从邮件服务器上下载邮件IMAP(网络邮件
- URLEncoder和URLDecoder(乱码处理)
前言在进行向服务器传递表单数据的实验的时候,发现得到的英文字符正常而中文字符都是乱码。在百思不得其解的时候,学习了一下URLEncoder和URLDecoder,以及顺藤摸瓜找到了产生乱码的原因和解决办法,在此记录一波。URLEncoder和URLDecoderURLEncoder和URLDecoder主要用完成普通字符和application/x-www-form-urlencodedMIME字
- HTML表格导出为Excel文件的实现方案
~风清扬~
前端技术htmlexcel前端
1、前端javascript可通过mime类型、blob对象或专业库(如sheetjs)实现html表格导出excel,适用于中小型数据量;2、服务器端方案利用后端语言(如python的openpyxl、java的apachepoi)处理复杂报表和大数据,确保安全性与格式控制;3、常见问题包括数据类型识别错误、样式丢失、大文件卡顿、浏览器兼容性及乱码,需通过设置单元格类型、使用后端样式api、分页
- 阿里云一句话语音识别
前端:阿里云语音识别应用(一句话语音识别){{isRecording?'停止录音':'开始录音'}}识别结果:{{recognitionResult}}WebSocket状态:{{websocketStatus}}使用的音频格式:{{usedMimeType}}import{ref,onMounted,onUnmounted}from'vue'//状态管理constisRecording=ref(
- Python 办公自动化实战:实现自动发送邮件工具(含图文、附件、多收件人)
2501_92511010
网络服务器运维
一、应用场景分析你是否遇到以下问题:每天发送日报邮件,只是换个文件或几个数字需要批量群发通知邮件给公司员工、客户或注册用户希望程序运行后自动发出日志或报告提醒想给用户发送图文并茂的HTML邮件或带附件的邮件Python可以做到:✅自动化邮件发送流程✅支持多种格式(纯文本、HTML、图像、附件)✅批量发送并控制收件人✅可结合数据自动构建邮件内容二、邮件基础知识:SMTP与MIMESMTP(Simpl
- nginx优化详解(2)
IT冰西瓜
nginx服务器运维linux
1、http主体优化1.1、开启高效传输模式[root@cjq11~]#vim/usr/local/nginx/conf/nginx.confhttp{includemime.types;#媒体类型(主配置文件加载从。。)default_typeapplication/octet-stream;#默认媒体类型足够sendfileon;tcp_nopushon;#这一行取消注释即可sendfileo
- web项目---http请求头和响应头
lbxxzt
javawebhttp头域请求头响应头实体头消息头
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应头,相应的内容包括消息协议的版本,成功或者错误编
- java中使用tika_java-使用Tika jars进行Mimetype检查
chsqi
java中使用tika
我正在开发单独的标准Java批处理程序.我正在尝试使用TikaJars确定文件附件的模仿类型.我正在使用Tika1.4Jar文件.我的代码看起来像Parserparser=newAutoDetectParser();InputStreamstream=newFileInputStream(fileAttachment);intwriterHandler=-1;ContentHandlerconte
- Nginx配置文件 的主要组件详细讲解
宫耕乐道
nginx
全局配置:设置用户、工作进程数和错误日志等基本参数。事件模块:配置连接处理方式,优化并发性能。HTTP核心模块:设置MIME类型、日志格式、压缩和文件缓存等。虚拟主机配置:包括HTTP和HTTPS两种虚拟主机的配置示例。负载均衡配置:展示了如何配置多个后端服务器的负载均衡。#Nginx主配置文件#运行Nginx服务的用户和用户组userwww-data;#工作进程数,通常设置为CPU核心数work
- HTTP协议,Content-Type格式介绍篇
rit8432499
http网络协议网络
HTTP协议中的Content-Type格式介绍在HTTP协议中,Content-Type头字段用于指示请求和响应中的媒体类型(MIME类型)。它告诉客户端和服务器如何解释和处理消息的主体内容。了解Content-Type对于确保数据在网络上传输和处理的正确性至关重要。Content-Type头字段的基本结构Content-Type头字段的基本格式如下:Content-Type:type/subt
- python email模块
weixin_34314962
python操作系统运维
pythonemail模块官方文档email模块电子邮件包是一个用于管理电子邮件消息的库。它的特殊设计不用于向SMTP(RFC2821)、NNTP或其他服务器发送任何电子邮件消息;这些是模块的函数,如smtplib和nntplib。电子邮件包尝试尽可能符合RFC,支持RFC5233和RFC6532,以及与mime相关的RFC2045、RFC2046、RFC2047、RFC2183和RFC2231。
- Python之email
qq_33483515
python翻译文档python电子邮件
电子邮件包是用于管理电子邮件,包括MIME和其他RFC2822,基于消息的文档库。它涵括大部分功能在一些较旧的标准模块,例如RFC822,mimetools,多文件,和其它非标包,如mimecntl。它是专门设计中不具有任何发送电子邮件到SMTP(RFC2821),NNTP,或其他服务器;这些都是模块,如和的smtplib的nntplib功能。电子邮件包试图尽可能RFC兼容成为可能,支持除RFC2
- Python内置模块之email/smtplib详细功能介绍及示例
Python中的email和smtplib模块详解email模块email模块是Python中用于处理电子邮件消息的核心模块,它提供了创建、解析和操作电子邮件消息的功能。主要子模块和类email.message.EmailMessage-表示电子邮件消息的主要类email.mime-用于创建MIME消息的子模块email.parser-用于解析电子邮件消息email.generator-用于生成电
- 应用中的“复制功能”如何实现##HarmonyOS应用开发##
harmonyos-next
很多应用都有一个“点击复制”的功能,这一功能在实际操作中非常便捷,这一功能的实现主要是通过BasicServicesKit(基础服务)中的“剪贴板服务”实现的。代码如下:async_Copy(text:string){letpasteData=pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN,text);letsystemPasteboard
- 【学习笔记】curl: symbol lookup error: curl: undefined symbol: curl_mime_type
Masec
学习笔记Debug
使用tensorflow目录下的./tensorflow/tensorflow/contrib/makefile/downlaod_dependenceise.sh脚本下载相关依赖时遇到报错:curl:symbollookuperror:curl:undefinedsymbol:curl_mime_type解决方法是下载最新的curl,解压后使用./configmakemakeinstall进行升
- RK3568交叉编译lighttpd
花落已飘
RK3568开发专栏CCGI
文章目录1.下载lighttpd源码2.解压源码包3.进入源码目录4.设置交叉编译环境变量5.设置交叉编译工具链环境变量6.配置源码以交叉编译7.编译源码8.安装到指定目录(源码目录下的install-aarch64)9.在开发板中运行lighttpd基本模块配置网页根目录与监听端口用户和组(已注释)日志相关目录列表开启(重要)模块路径设置默认首页文件名MIME类型设置(告诉浏览器如何处理不同文件
- java-springboot文件上传校验之只允许上传excel文件,且检查不能是脚本或者有害文件或可行性文件
Java开发追求者
javaspringbootexcel上传文件校验
四重验证机制:文件扩展名检查(.xlsx/.xls)MIME类型检查文件魔数验证(真实文件类型)可执行文件特征检测防御措施:使用try-with-resources确保流关闭限制文件大小防止DoS攻击使用ApachePOI的FileMagic进行专业验证生产环境建议:Yaml#application.yml配置spring:servlet:multipart:max-file-size:10MBm
- 【六】Android MediaPlayer整体架构源码分析 -【start请求播放处理流程】【Part 5】【01】
小白兔LHao
MediaPlayerconfigureCodecACodecsetPortModeMediaCodec
承接上一章节分析:【六】AndroidMediaPlayer整体架构源码分析-【start请求播放处理流程】【Part4】本系列文章分析的安卓源码版本:【Android10.0版本】【此章节小节编号将重新排序】mCodec->configureCodec(mime.c_str(),msg)实现分析:ACodec配置编解码器。【备注:该章节分析的该配置处理流程非常长】//[frameworks/av
- PHP实战:安全实现文件上传功能教程
Estar.Lee
编程教程phpandroid开发语言
HTML部分:PHP部分:$max_size){die('文件大小超过限制');}$finfo=finfo_open(FILEINFO_MIME_TYPE);$detected_type=finfo_file($finfo,$_FILES['userfile']['tmp_name']);if(!in_array($detected_type,$allowed_types)){die('不允许的文
- Nginx配置详解: 从基础入门到高级实战的全面指南
AA-代码批发V哥
nginxnginx运维
Nginx配置:从基础入门到高级实战的全面指南前言一、Nginx配置基本结构1.1Nginx配置文件结构1.2配置指令语法规则二、Nginx基础配置详解2.1全局块配置2.1.1工作进程数配置2.1.2错误日志与PID文件配置2.2events块配置2.2.1最大连接数配置2.2.2事件驱动模型选择2.3http块基础配置2.3.1日志格式定义2.3.2MIME类型配置三、Nginx虚拟主机与lo
- HTTP Accept简介
闲人*
http网络协议运维
一、HTTPAccept是什么HTTP协议是一个客户端和服务器之间进行通信的标准协议,它定义了发送请求和响应的格式。而HTTPAccept是HTTP协议中的一个HTTP头部,用于告诉服务器请求方所期望的响应格式。这些格式可以是媒体类型、字符集、语言等信息。HTTPAccept由若干元素组成,每个元素包含三个信息:媒体类型(MIME类型)、可选的参数和参数值。例如,下面的HTTPAccept头部表示
- 文件上传漏洞—服务端检测&绕过方法总结(持续更新)
the zl
Web安全—漏洞学习web安全安全前端
Web安全—文件上传漏洞文件上传漏洞简介和原理可参考Web安全—文件上传漏洞此篇文章,本文仅对服务端检测方法和绕过方法进行总结服务端检测方法&绕过方法:检测方法一:前端JS检测(通常为检测文件扩展名)绕过方法:1,禁止Web浏览器加载JS代码2,修改前端代码,添加需要上传的脚本语言扩展名3,Burpsuite抓包修改filename参数检测方法二:服务端MIME类型检测(检测POST内容的Cont
- HTTP 协议浅析
cici15874
http网络协议网络
一、HTTP协议概述HTTP(HyperTextTransferProtocol,超文本传输协议)是应用层协议,主要用于分布式、协作式的超媒体信息系统。HTTP是万维网的数据通信基础,定义了浏览器(客户端)和服务器之间的通信标准。1.协议版本HTTP/0.9:初版,只有GET方法和纯文本传输。HTTP/1.0:增加了POST和HEAD方法,支持多种MIME类型。HTTP/1.1:改进性能,支持持久
- MIME类型参考
ATCO
其它技术JAVA-WEB.NETwebform网文收藏
一般常见的MIME类型:超文本标记语言文本.html,.htmltext/html普通文本.txttext/plainRTF文本.rtfapplication/rtfGIF图形.gifimage/gifJPEG图形.ipeg,.jpgimage/jpegMIDI音乐文件mid,.midiaudio/midi,audio/x-midiMPEG文件.mpg,.mpegvideo/mpegAVI文件.a
- nginx的localtion指令详解
溜溜刘@♞
nginxnginx运维
1.Nginx的HTTP配置主要包括三个区块,结构如下:http{#这个是协议级别includemime.types;default_typeapplication/octet-stream;keepalive_timeout65;gzipon;server{#这个是服务器级别listen80;server_namelocalhost;location/{#这个是请求级别roothtml;inde
- nginx负载均衡、java、tomcat装包
宁藏在云烟里
javanginx负载均衡
一、nginx七层负载均衡1、七层负载均衡基础配置2、负载均衡状态[root@server]#vim/usr/local/nginx/conf/nginx.confworker_processes1;event{worker_connections1024;}http{ #七层负载均衡支持http、ftp协议includemime.types;default_typeapplicatio
- 轻量级高性能MIME类型查找工具:mrmime
咎丹娜
轻量级高性能MIME类型查找工具:mrmimemrmimeAtiny(2.8kB)andfastutilityforgettingaMIMEtypefromanextensionorfilename项目地址:https://gitcode.com/gh_mirrors/mr/mrmime在现代Web开发中,处理文件类型和MIME类型是不可或缺的一部分。无论是文件上传、下载,还是静态资源服务,准确地
- Nginx 多种域名配置方式总结
海天胜景
nginx运维
#usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;includessl.c
- Python自动批量发送邮件
隆海博客
Pythonpython开发语言后端
Python自动批量发送邮件1.定义发送邮件函数2.发送邮件1.定义发送邮件函数importsmtplibfromemail.mime.textimportMIMETextfromemail.utilsimportformataddr#1.定义发送邮件defsend_email(email_addr,send_msg,send_subject):""":paramemail_addr:收件人邮件地
- java线程Thread和Runnable区别和联系
zx_code
javajvmthread多线程Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
- 【转】JSON与XML的区别比较
丁_新
jsonxml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
- c++ 实现五种基础的排序算法
CrazyMizzz
C++c算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
- 我的软件
麦田的设计者
我的软件音乐类娱乐放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
- linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
- 各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
- oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
- tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
- 遍历的方法
百合不是茶
遍历
遍历
在java的泛
- linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
- java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
- 【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
- 【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
- 通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
- java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
- Netty源码学习-ReplayingDecoder
bylijinnan
javanetty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
- js特殊字符过滤
cngolon
js特殊字符js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
- hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
- linux shell脚本中切换用户执行命令方法
daizj
linuxshell命令切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
- 好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
- Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
- linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总linux管道命令linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
- Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
- asp.net获取站点根目录下子目录的名称
hvt
.netC#asp.nethovertreeWeb Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
- Eclipse程序员要掌握的常用快捷键
justjavac
javaeclipse快捷键ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
- c++编程随记
lx.asymmetric
C++笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
- linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
- 随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
- 我认为POJO是一个错误的概念
windshome
javaPOJO编程J2EE设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&