20180105随笔

过滤器的执行过程:
// 目标资源执行前执行
chain.doFilter(request, response);
// 目标资源执行后执行

文件上传的前提:
1.表单的method方法必须是post
2.表单的enctype类型必须是:multipart/form-data
3.表单中input的上传输入域为:<input type="file"/>
<form method="post" enctype="multipart/form-data>
name:<input type="text" name="name"/>
file:<input type="file" name="upLoad"/>
<input type="submit" value="up"/>
</form>
form表单的enctype属性,该属性的作用是用来告知服务器,请求正文内容是MIME类型,相当于Content-type
利用第三方组件实施文件上传,apache:commons-fileupload.jar,依赖:commons-io.jar
代码:
// 检查form的enctype是否是multipart类型
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(!isMultipart)
throw new RuntimeException("文件类型不符")
// 解析请求内容,磁盘文件条目工厂
DiskFileItemFactory factory = new DiskFileFactory();// 产生FileItem的工厂
ServletFileUpload sfu = new ServletFileUpload(factory);
// 建立一个数据结构,用于存储FileItem的数据
List<FileItem> items = new ArrayList<FileItem>;
try{
// 对请求进行解析,吧解析的内容放入到items里面
items = sfu.parseRequest(request);
}catch(FileUploadException e){
throw new RuntimeException("failed");
}
// 对items的数据进行遍历取出
for(FileItem item:items){
// 普通字段
if(item.isFormField()){
processFormField(item);
}else{
processUploadField(item);
}
}
上传中考虑的几个问题
1.将文件放到用户访问不到的地方(WEB-INF目录下)
2.重复名字文件被覆盖的问题,把文件名做成唯一,UUID:通用唯一标识码。a.txt--->UUID-a.txt
3.避免一个文件夹中的文件过多
1)按照日期分目录存储
2)按照文件名的hashCode随机生成目录
int hashCode = fileName.hashCode();
int dir1 = hashCode&0xf;
4.文件大小的限制
web文件上传的内容不宜过大,就是要对工厂的容量进行限制
1)限制单个文件的大小
sfu.setFileSizeMax(3*1024*1024);
2)限制整个文件的大小
sfu.setFileMax(5*1024*1024);
try{
items = sfu.parseRequest(request);
}catch(FileUploadBase.FileSizeLimitExceededException e){
response.getWriter().write("must small 3M");
}catch(FileUploadBase.SizeLimitExceededException e){
response.getWriter().write("sum must small 5M");
}
ServketContextListener
ServletContextListener
HttpSessionListener
HttpSessionListener
ServletRequestListener
ServletRequestListener
ServletContextAttributeListener
ServletContextAttributeListener
HttpSessionAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
HttpSessionBindingListener
HttpSessionActivationListener
AJAX引擎:XMLHttpRequest
JSON:js对象标记,js Object Notation

List<String> list = new List<String>;
list.add("a");
list.add("b");
list.add("c");
JSONArray json = JSONArray.fromObject(list);

public class CreateDeng{
// 泛型使用之前必须声明
// <T>就是声明泛型类型,放在返回值的前面
public <T> T v1(){
return null;
}
public <T> void m2(T t){
}
public <T> void m3(class<T> t){
}
}
// 类上声明泛型,实例方法中就可以使用了
public class CreateDeng<T>{
public T m1(){
return null;
}
public void m2(T t){
}
public void m3(class<T> t){
}
// 对于静态方法必须都是先声明后使用
public static <T> void m4(class<T> t){
}
public static <K,V> K m5(V v){}
}
低点:1302.2
高点:1310.1
点差:7.9
7.9×0.382=3.0178---->1310.1-3.01=1307.09
7.9×0.5=3.95---->1310.1-3.95=1306.15
hibernate.cf.xml
<hibernate-configuration>
<session-factory>
<!--JDBC基本链接-->
<properties name="hibernate.connection.driver_class>com.mysql.jdbc.Driver</properties>
<properties name="connection.username">root</properties>
<properties name="connection.password">sorry</properties>
<properties name="connection.url">jdbc:mysql:localhost:3306/day22</properties>
<!--配置数据库方言-->
<properties name="dialect">com.hibernate.dialect.MySQLDialect</properties>
<properties name="hibernate.hbm2ddl.auto">update</properties>
<!--显示sql的语句及格式>
<properties name="hibernate.show_sql">true</properties>
<properties name="hibernate.format_sql">true</properties>
<!--告知映射文件>
<mapping resource="../Student.hbm.xml"/>

</session-factory>
</hibernate-configuration>
I not know how to get the money
200dao*4=800kuajin
Student.hbm.xml
<hibernate-mapping>
<class name="Student" table="STUDENTS">
<id name="id" column="ID">
<!--根据数据库的能力管理主健-->
<generate class="native"></generate>
</id>
<properties name="name" column="NAME"></properties>
<properties name="birthday" column="BIRTHDAY"></properties>
</class>
</hibernate-mapping>
制定自己的三年规划:
2018年,存款10W+;2019年,买一套房,付首付;2020年,买一辆自己的爱车奥迪A4L。无论想什么办法都要实现!!!
Dao.java
public Dao<T>{
void add(T t);
void update(T t);
// 根据主健查找对象
T findOne();
// 根据主健删除对象
void delete(Serializable id)
}
CustomerDao.java
public interface CustomerDao extends Dao<Customer>{
List<Customer> findPageCustomer(int startIndex, int size);
}
config.properties文件用来当作配置文件,通常为用于提供系统参数配置,方便用户对系统参数进行调整,通常以键值对的形式存在
maven 软件项目管理工具
xxx.hbm.xml类实体映射文件:
hibernate.cfg.xml 核心配置文件:数据库配置信息
这个其实也没有什么意思,这个算是一种约定
就像我们中国人的名字都是第一个字是姓,后面的是名一样
我们用这样的命名一眼就可以看出来是hibernate的映射配置文件,
当然如果我们其他的xml配置文件也用这样的格式命名也是可以的,但是这样相当于一种约定,一种命名规范一样
uuid通用唯一识别码:在xxx.hbm.xml文件中,用于配置主健
java 中@的使用
1.javadoc 文档关键字
/*
*@author
*@date
*/
自动生成API文档,标注作者,版本,日期,相关参数等
2.java annotation /java 标注
语法:@关键字(值)
用于把关键字和值传递给编译器,更加精确地控制编译器的动作
关键字随着技术、框架、编译器的不同而不同,比如@Override,说明会重写父类的该方法
@Deprecated 表示当前元素是不赞成使用的
@SuppressWarning 表示忽略一些不当的编译器信息
src/main/java:存放java文件
src/main/resource:存放配置文件
src/test/java:存放测试的java文件
src/test/resource:存放测试的资源文件
src/main/webapp:存放jsp,images,js等文件
src/main/webapp:存放jsp,images,js等文件
FCK文本编辑框,js进度条,js文本框,js使用highslideJs
// 使用InputStream输入流读取到path下的文件,将输入流InputStream写到输出流(response对象中获取)中
InputStream in = new InputStream(new File(ServletActionContext.getServletContext.getRealPath(""), path));
OutputStream out = response.getOutputStream();
while(int b=-1;(b=in.read())!=-1){
out.write(b);
}
out.close();
in.close();
//${}:EL表达式表示你从另外一个页面获得的参数值
style="CURSOR:hand"// 当鼠标悬浮在标签上表现为手形
timestamp:时间戳,是一个数据,一个能够表示在某个时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,
唯一表示某一时刻的时间。
"${pageContext.request.contextPath}/image.jsp?timestamp="+new Date().getTime()
timestamp表示一个参数,一个叫时间戳,浏览器会判断当前请求路径是否发生改变,如果没有改变,它会提取缓存中的数据,
而不是重新去请求。加上时间戳,保证每次请求的路径不一样。
function checkNumberImage(){
// 获取标签
var imageNumber = document.getElementById("imageNumber");
imageNumber.src = "${pageContext.request.contextPath}/image.jsp?timestamp="+new Date().getTime();
}
Random rand = new Random();
String sRand = "";
for(int i=0;i<4;i++){
String rand = String.valueOf(rand.nextInt(10));
sRand += rand;
}
session.setAttribute("CHECK_NUMBER_KEY",sRand);
//ImageIO:用来进行简单的图片IO操作,一个是读(read),另一个是写(write)
1.read:
File file = new File("c:/test/a.jpg");
BufferedImage bi = ImageIO(file);
2.write:
RenderedImage的子类是BufferedImage,传递子类直接实例化父类
public static boolean write(RenderedImage im, String formatName, File output);
public static boolean write(RenderedImage im, String formatName, OutputStream output);
public static boolean write(RenderedImage im, String formatName, BufferedOutputStream output);
// public static boolean isBlank(String str):是否为空(null),长度为0,由空白字符(whitespace)等组成
StringUtils.isBlank(null)=true;
StringUtils.isBlank("")=true;
StringUtils.isBlank(" ")=true;
// public static boolean isEmpty(String str):判断为空,标准是String str=null或者String str.length()==0
StringUtils.isEmpty(null)=true;
StringUtils.isEmpty("")=true;
StringUtils.isEmpty(" ")=false;
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
将此字符和另一个字符忽略大小写后进行比较,返回布尔值
// 从网页获取数值
request.getParameter(xxx)
// 从session获取数值
request.getSession().getAttribute(xxx);
public class loginUtil{
// remember me
public static void rememberMe(String name, String password, HttpServletRequest request, HttpServletResponse response){
// 建立两个Cookie,存放指定值
Cookie nameCookie = new Cookie("name",name);
Cookie passwordCookie = new Cookie("password", password);
// 设置Cookie的有效路径(当前项目)
nameCookie.setPath(request.getContextPath()+"/");
passwordCookie.setPath(request.getContextPath()+"/");
// 设置cookie的生存时间
// 先获取页面用户选定记住我的复选框的值
String rememberMe = request.getParameter("remember");
// 复选框选定
if(remember!=null && remember.equals("yes")){
// 生存时间为7天
nameCookie.setMaxAge(7*24*60*60);
passwordCookie.setMaxAge(7*24*60*60);

}
// 复选框没有选定
else{
nameCookie.setMaxAge(0);
passwordCookie.setMaxAge(0);
}
// 将Cookie添加到response中
response.addCookie(nameCookie);
response.addCookie(passwordCookie);

}
}
// 在页面中读取cookie数据,嵌套java代码
<%
String name = ""'
String password = "";
String checked = "";
// 获取请求的cookie
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length()>0){
// 遍历数据,获取想要的cookie
for(Cookie cookie:cookies){
if(cookie.getName().equals("name")){
name = cookie.getValue();
checked = "checked"
}
if(cookie.getName().equals("password"){
password = cookie.getValue();
}
}
}
%>
// 要知道,每次访问URL链接的时候,先执行过滤器的doFilter方法
// this永远表示当前对象,在jsp中,this就是指9大内置对象的page,Object page = this
request.setAttribute("name",name)
URLEncoder.encode(name,"utf-8");
URLDecoder.encode(name,"utf-8");\
URLDecoder:HTML编码的实用工具类

// 在域对象内,进行存值和取值
在action中将数据放到值栈中,然后在页面中从值栈中取值
每次访问action就创建一次值栈,一个action只有一个值栈
栈结构:root对象栈,context叫做Map栈,放入元素,压栈
值栈分为两个部分,root部分和context部分
ValueStack s = ActionContext.getContext().getValueStack();
s.set("username","fireman");
// 访问控制系统必须要存在session,这样可以记录用户信息,服务器获取用户登录后的session,如果为空,则跳转到登录页面
如果session不为空,直接方形
// 如果在action,service,dao中出现异常,使用catch进行异常捕捉,使用log4j将异常存放到指定的日志文件中,通过return "errorMsg"
跳转到错误页面

// 粗粒度的权限控制,采用过滤器,精确到session的控制权限,判断session是否存在。如果session不存在就跳转到首页,如果存在可以通过URL链接访问对应的操作
// 细粒度的权限控制,采用struts2的拦截器,控制URL,可以访问相关的jsp页面,不可以访问一个jsp页面
webservice:用来在多个独立系统之间,建立一个桥梁
hibernate的二级缓存机制(cache):对应查询结果相同的数据,可以减少频繁操作数据库的操作
sessionFactory:二级缓存:1)类级别缓存;2)集合级别缓存;3)查询级别缓存;4)更新时间戳缓存
SQL的联合查询语句,field理解为字段更为合适
lucene工作原理:
1)索引数据库原理:
向索引库中进行增、删、改的时候:IndexWriter:addDocument(),updateDocument(),deleteDocument()-->创建索引库:一堆二进制文件;
indexSearcher:从索引中检索数据searcher()
Document对象
new Field("id");
new Field("name");
new Field("content");
Article对象
id,name,content
索引库中存放数据的原理
Store:是否将数据存储到索引库的数据区域
Index:是否将数据更新到索引库的目录区域
使用唯一编号来区分数据的唯一性
数据库用来存放数据
索引库用来查询和检索
<properties>
<!--配置扩展-->
<common>IK_Analyzer</common>
<entry key="ext_dic">ext.dic</entry>
<entry key="ext_stopwords>stopword.dic</entry>
</properties>
set和get方法可以提高与变量的安全性和封装性。变量赋值:1)在构造函数内部;2)采用set方法
一般对私有变量进行访问操作,大多数都是使用在包含大多数属性的类实体中
<script language="javascript" src="${pageContext.request.contextPath}/script/xxx.js"></script>
new SimpleDataFormat
Content-Disposition:MIME类型指定代理如何显示附加文件。服务器向浏览器发送文件时,如果用户需要保存,
可以使用该设置进行文件保存,但是必须要附加上:attachment;filename="xxx";
也就是确保浏览器弹出下载对话框
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
JXL是java操作excel的工具类库,从文件中获取excel数据,读取数据后,将数据写入到集合中
用户通过模板导入数据,之后再从模板中读取数据,将数据保存到数据库中,excel导入数据
防止表单重复提交:生成一个token,放到:HttpSession;input隐藏域
表单提交:input=111,之后从HttpSession获取,input隐藏域。
进行对比,一值:保存数据,将HttpSession的数据删除;不一致,重复提交
webapps:web应用所在的目录,供外界访问的web资源的存放目录。在该目录下,有几个文件夹就有几个目录
WEB-INF:用户无法直接访问。classes:存放编译好的字节码文件;lib:存放应用需要的jar包;web.xml配置部署信息
在Tomcat中的lib中的jar包,为所有应用需要的jar包,为所有应用服务
Tomcat中的配置信息:
<Server>:server容器组件,为顶级元素,可以包含一个或者多个<service>元素
<service>:包含一个<engine>,一个或多个<connector>
<connector>:代表实际与用户交互的组件,接受请求,返回相应
<engine>:每个service只有一个engine引擎,处理客户的请求
<host>:一个engine有多个host,具有多个应用
<context>:使用最频繁的元素,代表一个应用
用户的访问都是通过Tomcat的链接过来的,一个引擎中管理多个主机,一个主机有管理多个应用
配置虚拟主机,在网站需要发布的时候,要对Tomcat服务器进行域名和主机配置,重要目录为:Tomcat/conf/server.xml
在<engine>标签中配置:
<Host name="www.deng.com" appBase="e:/appExample"
unpackWARs="true" autoDeploy="true"/>
修改本地hosts文件:C:/Windows/System32/drivers/etc/hosts
name1=value1&name2=value2
只有通过POST提交的方式才能够看到请求正文,正文的内容是要提交的数据
name=username&password=mypassword&sex=male
请求头的作用是向服务器传递一些附加信息
Accept:告诉服务器,浏览器能够接受的MIME类型
在磁盘中,通过文件名的后缀区分文件类型
在网络中,通过MIME来区分数据
MIME特点:大类型/小类型,text/plain
1,2,3,4,5
4:访问的资源不存在
5:服务器内部错误,服务程序出现异常
浏览器收到服务器的相应,数据都是HTML文件,浏览器对HTML文件进行展现
servlet是运行在服务器端的动态资源,能够接受用户请求,发出相应
服务器端的编程都是基于http协议的
建立一个servlet,继承一个javax.servlet.http.HttpServlet抽象类
javax.servlet:通用包
javax.servlet.http:与http协议有关
load-on-startup:一启动就加载
Servlet关联:ServletConfig关联:ServletContext
Servlet依赖:ServletRequest,ServletResponse
GenericServlet实现Servlet
HttpServlet继承GenericServlet
HttpServlet依赖HttpServletRequest和HttpServletResponse
在配置servlet时候可以配置参数
<servlet>
<servlet-name>Demo1</servlet-name>
<servlet-class>com.deng.Demo1</servlet-class>
<init-param>
<param-name>sex</param-name>
<param-value>male</param-value>
</init-param>
</servlet>
//获取
ServletConfig cfg = getServletConfig();
cfg.getInitParameter("sex")
//获取多个值
ServletConfig cfg = getServletConfig();
Enumeration e = cfg.getInitParameterNames();
while(e.hasMoreElements())
{
String value = e.nextElement();
cfg.getInitParameter(value);
}
ServletContext非常重要,每一个应用有一个ServletContext,和应用的生命周期完全一致
实现多个Servlet之间的数据共享,ServletContext里面有一个map结构:key:"P",value:"p1"
Servlet1:ServletContext.setAttribute("P","p1");
Servlet2:ServletContext.getAttribute("P");
...
域表示的是存活范围
向ServletContext存放东西:public void setAttribute(String a, Object obj)
从ServletContext去东西:public Object getAttribute(String a)
从ServletContext删除东西:public void removeAttribute(String a)
获取所有的名称:Enumeration getAttributeNames();

转载于:https://www.cnblogs.com/demo-deng/p/8205835.html

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

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

相关文章

怎么自定义字体_自定义字体@fontface的常见应用

前言font-face允许网页自带字体&#xff0c;从而消除对用户电脑字体的依赖。基本用法如下&#xff1a;font-face { font-family: "family-name"; /* 字体名 */ src: url("family-name.eot"); /* IE9 */ src: url("family-name.eot?#iefix&q…

vue项目中使用mock(一)

一&#xff0c;安装 npm install mockjs --save-dev npm install json5 --save-dev npm install axios --save 二&#xff0c;每个文件内容 目录&#xff1a; 流程&#xff1a; Home.vue执行getUserInforList() 调用main.js中全局变量$api 调用/utils/api下的getUserInfo…

快速搭建redis单机版和redis集群版

单机版 第一步&#xff1a;需要安装redis所需的C语言环境&#xff0c;若虚拟机联网&#xff0c;则执行 yum install gcc-c 第二步&#xff1a;redis的源码包上传到linux系统 第三步&#xff1a;解压缩redis tar zxf redis的压缩文件 第四步&#xff1a;编译 &#xff0c;进入…

使用RxJava和Completable并行执行阻止任务

借助RxJava 1.1.1中引入的Completable抽象&#xff0c;如何并行执行阻止“仅副作用”&#xff08;也称为void&#xff09;任务的并行执行变得更加容易。 “ 正如您可能已经注意到&#xff0c;阅读我的博客时&#xff0c;我主要专注于软件Craft.io和自动代码测试。 但是&#x…

svn 回退到指定版本无法提交_SVN终端演练-版本回退

1. 版本回退概念以及原因?概念: 是指将代码(本地代码或者服务器代码), 回退到之前记录的某一特定版本原因: 如果代码做错了, 想返回之前某个状态重做;2. 修改了,但未提交的情况下, 回退代码方案1: (大力推荐)svn revert (作用:返回到上次提交后版本对应的最原始的状态)方案2: …

vue-awesome-swiper缩略图无法联动的问题

一&#xff0c;安装 npm install vue-awesome-swiper --save // npm install vue-awesome-swiper3.x --save我安装的版本是 “swiper”: “^6.6.1”, “vue-awesome-swiper”: “^3.1.3”, 在使用vue-awesome-swiper组件的时候&#xff0c;缩略图无法和大图实现联动&#xff…

个人博客13

今天的任务依旧为美化界面。 昨天的任务为美化界面。 遇到的问题为页面的布局&#xff0c;以及颜色的搭配。转载于:https://www.cnblogs.com/qilin20/p/8232942.html

tcp wireshark 过滤syn_使用 WireShark 分析 TCP/IP 三次握手 和 四次挥手

TCP 三次握手 示意图Wireshark 抓包注意事项为了演示一个TCP三次握手建立连接的过程&#xff0c;我们通过 Chrome 访问一个网页。已知 HTTP 协议就是建立在TCP链接上的通过 Cmd 的 ping 命令获取 这个网站对应的 IP地址 183.136.236.13确定 这个IP 有一个非常重要的好处&#x…

Python 基础函数

1.输入输出函数 input() 打印输出的内容后&#xff0c;接收输入用户输入的内容&#xff0c;默认为“字符串”类型 print() 打印输出的内容 2.类型转换函数 int() 转为整数 str() 转为字符串 3.类型判断函数 string.isdigit() 判断string是否为数字格式&#xff0c;返回布尔值 4…

Vue+Element导入导出Excel

一&#xff0c;安装 npm install -S file-saver xlsx npm install -D script-loader 二&#xff0c;导入Excel 1&#xff0c;Element 上传控件 <el-uploadaction"/":on-change"onChange":auto-upload"false":show-file-list"false&quo…

javafx 使用_使用JavaFX AnimationTimer

javafx 使用回想一下&#xff0c;给AnimationTimer起个名字可能不是一个好主意&#xff0c;因为它不仅可以用于动画&#xff0c;还可以用于测量fps速率&#xff0c;碰撞检测&#xff0c;模拟步骤&#xff0c;游戏主循环等。实际上&#xff0c;我大部分时间都在看AnimationTimer…

python 定时任务系统_Python定时任务,实现自动化的方法

python教程栏目介绍实现自动化的方法。1. 安装cron基本上所有的Linux发行版在默认情况下都预安装了cron工具。即使未预装cron&#xff0c;也很简单&#xff0c;执行几条简单的命令就可手动安装# 检查是否已经预装了cronservice cron status复制代码安装并启动服务安装&#xff…

sudo su 和 sudo -s区别

sudo su 和 sudo -s区别 sudo su 和 sudo -s都是切换到root用户&#xff0c;不同的是&#xff1a; sudo su 环境用的是目标用户(root)的环境 sudo -s 环境用的是当前用户本身的环境 posted on 2018-01-08 22:25 老于601 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnbl…

js UTF-8编码转为字符串

// UTF8编码转成汉字字符串 export function revertUTF8(szInput) {var x,wch,wch1,wch2,uch"",szRet"";for (x0; x<szInput.length; x) {if (szInput.charAt(x)"%") {wch parseInt(szInput.charAt(x) szInput.charAt(x),16);if (!wch) {bre…

.Net Core 简洁架构事件(这个不完整,待仔细补充)

.Net Core的架构 - 根据微软官方文档 微软给出了.Net Core的架构方法&#xff0c;无论是在web&#xff0c;azure&#xff0c;uwp等等 微软的github地址&#xff1a;https://github.com/dotnet-architecture/eShopOnWeb 转载于:https://www.cnblogs.com/bijinshan/p/8250512.htm…

原理图中如何连线_Altium Designer10绘制原理图

在进行原理图绘制之前,应先将原理图库与PCB库相关联,在原理图绘制完成后,在生成PCB图,如何将原理图库与PCB库相关联?先进入原理图库,如下图所示。双击元器件文件,进行元器件配置。 元器件配置界面如下图所示。选择Add...进行添加对应的PCB库。 选择浏览进行查找相关PCB库…

vue 父组件与子组件之间的传值(普通传值)

一&#xff0c;子组件向父组件传值&#xff08;$emit&#xff09;&#xff1a; 1、定义子组件 <template><div>子组件:<span>{{childValue}}</span><!-- 定义一个子组件传值的方法 --><input type"button" value"点击触发&q…

NetBeans Java EE技巧3:数据库中的RESTful Web服务

许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展。 REST&#xff08;代表性状态转移&#xff09;体系结构样式通常用于设计网络应用程序&#xff0c;而使用Java EE 7&#xff0c;很容易开发用于数据库通信的RESTful后端。 使用简单的POJO&#xff08;普通的Java旧…

python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组

一&#xff1a;序列1&#xff1a;连接操作符()这个操作符允许把一个序列和另一个相同类型的序列做连接&#xff0c;生成新的序列。语法如下&#xff1a;sequence1 sequence2该表达式的结果是一个包含sequence1和sequence2 的内容的新序列。注意&#xff0c;这个操作不是合并操…

vue 父组件与子组件之间的传值(主动传值)

一&#xff0c;父组件主动传值 1&#xff0c;父组件 <Settlement-Table1 ref"comp1"></Settlement-Table1>click(){this.$refs.comp1.getData(this.list1) } // this.list1 是需要穿的值2&#xff0c;子组件 getData(data){console.log("父组件…