目录 PHP JSP ASP ASP.NET PHP PHP是一种跨平台的服务器端的嵌入式脚本语言。...PHP脚本语言的文件后缀名是 .php JSP JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,...又有新的硕果,就是JSP,JavaServerPage。...JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。...JSP脚本语言的文件后缀名是 .jsp ASP ASP全名ActiveServerPages,是MicroSoft公司开发的服务器端脚本环境,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的
JSP存放在 WEB-INF 跟webroot的区别 放在webroot下面:优点,程序结构清晰,便于编码和维护;缺点,要加过滤器。...> 上面这段语句只有一个名为test的按钮,如果单击这个按钮是,系统就会跳转到/WEB-INF/jsp/test/test.jsp,它的代码如下: 例...page = "/WEB-INF/jsp/test/test.jsp" /> 请注意上面红色的语句,这段就是通过forward的形式来访问...个人认为,像这种方式的可能不大时候采用一般jsp进行编程的系统,因为很多页面上都有采用submit这样的方式来进行跳转,但这种方式却非常适合采用struts结构的系统。...中的jsp代码可以被正常访问,也防止了对这些页面的直接访问,下面我来举例说明。
View类提供的setBackgroundDrawable和setBackgroundResource的区别是什么,同时Android View类很多子类比如TextView、ImageView...一、setBackgroundXXX的用处,设置这个View背景。 ...setBackgroundDrawable 的参数为Drawable对象, setBackgroundColor 的参数为Color对象,比如说Color.Red为红色,或Color.rgb(255,0,0...,setImageBitmap的参数为Bitmap对象,同时ImageView还支持矩阵对象,比如setImageMatrix的参数为Matrix对象。...三、有关Bitmap和Drawable之间的转换可以查看Android123存档文件 Bitmap和Drawable相互转换方法 一句话 其实就是参数的来源不同,参数类型吧
Nacos的前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。...Nacos: Dynamic Naming and Configuration Service CAP上的区别C一致性,A高可用,P分区容错性 eureka只支撑AP 只要集群中任意一个实例不出现问题...Eureka的集群中,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。...如此保证了可用性但牺牲了一致性 nacos支撑CP跟AP两种 nacos是依据设置辨认CP或AP形式,假如注册Nacos的client节点注册时是ephemeral=true即为临时节点,那么Naocs...自我保护机制是一种针对网络异常波动的安全保护措施,可以使Eureka集群更加的健壮、稳定的运行。
不过,正因为ASP很简单,所以单纯使用ASP所能完成的功能也是有限的,好在COM(Component Object Model)技术拯救了ASP,微软提供了COM/DCOM技术,极大拓宽了ASP的应用范围...JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。...PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。...因此普遍认为JSP的执行效率比PHP和ASP都高。 ...结论:JSP对于网站开发来讲不像PHP和ASP那样易学易用,支持JAVA的主机也少于支持PHP的主机,这从一定程度上限制了Java技术在网站上的发展,不过在企业软件应用上来讲,MVC还是拥有相当大的优势的
JSP引擎与JSP容器指的都是同一样的东西,他们都是用来同一管理和运行Web引用程序的“软件”。...常见的JSP引擎有Tomcat、JRun、Resin 广义上来说,JSP引擎是用来管理和运行Web应用程序的软件,而安装了JSP引擎的计算机就是Web服务器。...,同时也能够为动态网页提供服务支持(因为它包含JSP容器和Servlet容器也可以称之为JSP引擎),尽管Tomcat的速度和功能没有Web服务器快和多,但是Tomcat也逐渐为支持静态的内容不断扩大,...大多数的Web服务器都是由C语言等,利用了相应平台的特征,因此用纯Java编写的Tomcat速度上是肯定会稍稍逊色的 、PS: JRun: JRun是一个JSP引擎,与Tomca一样用来管理和运行Web...应用程序(收费的) Resin: Resin是一个JSP引擎,用来管理和运行一个Web程序,是CAUCHO公司开发的Java服务器端的软件,Resin运行JSP的速度非常的快速而且是不收费的!!
14、Iterator与ListIterator的区别 在使用List,Set的时候,为了实现对其数据的遍历,会经常使用到Iterator(跌代器)。...使用跌代器,不需要干涉其遍历的过程,只需要每次取出一个想要的数据进行处理就可以了。但是在使用的时候也是有不同的。 List和Set都有iterator()来取得其迭代器。...对List来说,也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面: 1....因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。...一般情况下,使用Iterator就可以了,如果需要进行记录的前后反复检索的话,就可以使用ListIterator来扩展功能,(有点象JDBC中的滚动结果集)。
jsp:include> :动态包含 1、jsp:include>包含的是html文件 举例: DynamicInclude.jsp: jsp文件是两个相互独立的整体,它们之间的关系是通过request和reponse来发生的,而后者只是简单的嵌套。...,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。...在jsp中有两种包含,静态包含jsp”%>和动态包含jsp:include page=“xxx.jsp”>,下面说一下它们之间的区别 1、jsp”%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而jsp:include page=“xxx.jsp”>是jsp中的动作指令,其文件的包含是发生在编译时期
; } location /images/ { alias /data/web; } # 测试访问:http://www.aaa.com/images/a.jpg alias 访问的是...:/data/web/a.jpg/ root 访问的是: /data/web/images/a.jpg/ 从上面案例分析: root是后缀拼接地址,而alias 则不会拼接!...同时alias会在后缀自动追加一个”/”但是不影响使用,root不会生成”/” 建议使用 alias,root更容易让人产生误解 特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。...以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!
world'); 'hello world'.match(/'hello'/); 二、 区别 简单来说,跟g有关系 exec 只会匹配第一个符合的字符串(意味着g对其不起作用),跟所有分组的反向引用...match 是否返回所有匹配的数组跟正则表达式里是否带着g有关系 ?...); console.log(reg.exec(str)); // 这时候就会返回同一个数组['3ai'],原因是第一个match跟g有关,这里没有全局匹配,所以只有 // 一个,而下面这个本来就只返回第一个匹配的字符串跟它的分组引用...'3ai'],结果符合预期 那什么情况下match的结果会跟exec一样呢,对正则的要求是 不带g呗~ 还是举个栗子 ?...的区别有两点,首先是不同类的方法, 其次是否跟g有关。
world'); 'hello world'.match(/'hello'/); 二、 区别 简单来说,跟g有关系 exec 只会匹配第一个符合的字符串(意味着g对其不起作用),跟所有分组的反向引用...match 是否返回所有匹配的数组跟正则表达式里是否带着g有关系 const str = 'd3aish hello world d5aisy'; const reg = /\dai/...match跟g有关,这里没有全局匹配,所以只有 // 一个,而下面这个本来就只返回第一个匹配的字符串跟它的分组引用,这里没有分组引用,所以 // 也只返回了一个匹配的字段 接下来看看有g的情况下 const...'3ai'],结果符合预期 那什么情况下match的结果会跟exec一样呢,对正则的要求是 不带g呗~ 还是举个栗子 const str = 'version2.1 version2.0'; const...的区别有两点,首先是不同类的方法, 其次是否跟g有关。
在TS中,相信很多人搞不清Object,object以及{}之间的关系,或者没有深究过,觉得他们只是同一个类型的不同别名,其实不然,每一个的存在都是有原因的。今天我们一起来探究他们的不同之处。...{} {}包含了除了null跟undefined所有的类型,类似于这样: image.png (这也是{}跟unknown的区别,unknown可以包含null跟undefined) 但是它对它所指向的对象一无所知...object跟{}有一点不同,它不包含原始类型。 object.png 除了这一点,其它的跟{}很相似。 image.png 所以我们应该用哪个呢? 一般情况下,我们应该一个也不用。...如果我们知道我们数据的具体结构,那单独创建一个type或者interface是最好的。但是在类型编程的时候,我们就得选一个。...image.png 所以: 用于一些复合对象的情况,选object 复合对象跟原始类型皆可的情况,选{} 如果要包含null跟undefined的情况,用unknown
Response public Map f1(){ return new HashMap(); } 就是这么简单的接口...由于这次需要借鉴之前的一个项目的一个接口,我直接copy过来 是直接传入modelMap对象,看了后感觉根本没必要new一个map对象,直接传就行了。...springMVC封装的挺好,考虑挺全,有些小庆幸。...url") @Rseponse public ModelMap f1(ModelMap map){ return map; } 之后copy过来返回modelMap对象的时候...之后才知道,无非就是modelMap支持默认请求视图返回,所以没有对应的页面自然404. 笔记一下。
来来来,本文给你一个清晰的思路~!...一、 exec match分别是谁家的方法 exec是RegExp类的方法 match是String类的方法 分清楚是各是哪里的方法之后,就知道怎么使用了 栗子: /hello/.exec('hello...world'); 'hello world'.match(/'hello'/); 二、 区别 简单来说,跟g有关系 exec 只会匹配第一个符合的字符串(意味着g对其不起作用),跟所有分组的反向引用...match 是否返回所有匹配的数组跟正则表达式里是否带着g有关系 接下来看看有g的情况下 那什么情况下match的结果会跟exec一样呢,对正则的要求是 不带g呗~ 还是举个栗子 这段代码两个函数都返回...["version2.1","version","2","1"] 总的来说,exec跟match的区别有两点,首先是不同类的方法, 其次是否跟g有关。
jsp中有两种include,一种是jsp"%>,另一种是jsp:include page="xxx.jsp"/> 关于第一种jsp"%>: 1.这是一种Driective指令,是一种编译指令,是在编译期间的指令,是静态包含,即将指定的JSP页面或HTML页面包含进来,整个页面一起编译。...2.不能在include指令里面传递参数,如jsp?aa=1"%>是不合法的,只能在运行JSP页面后,在URL地址栏上传递参数。...3.若当前页面中有指令,则xxx.jsp这个被包含的页面中的指令中 不能存在与当前页面指令中相同的元素,不然会报错。...2.除非该指令被运行到,否则不会被Tomcat等JSP Engine编译 3.可以携带参数,代码如下: jsp:include page="included.jsp"> jsp:param name
转发(forward)和重定向(redirect)的区别?...JSP本质上是Servlet的一种简易形式,JSP会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。...Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。...JSP侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式中,JSP适合充当视图(view)而Servlet适合充当控制器(controller)。 讲解JSP中的四种作用域。...session代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的session中。
Ctrl+c和Ctrl+z虽然都是中断命令,但是它们之间还是有区别的。...Ctrl+c是强制中断程序的执行,杀死程序的进程; Ctrl+z是将任务中断,挂起的状态,进程还存在,任务还没有结束; 用户可以使用fg/bg操作继续前台或后台的任务,; fg命令重新启动前台被中断的任务...停止挂起的进程个数为0个; 再执行同样的命令“free -s 2 -h”,用Ctrl+z中断命令的运行: ? 去查看free命令的进程可以发现“free -s 2 -h”的进程还在,如下图: ?...可以看到多了一个停止挂起的进程 #所以Ctrl+c跟Ctrl+z的区别就跟前面说的那样: Ctrl+c是强制中断程序的执行,杀死程序的进程; Ctrl+z是将任务中断,挂起的状态,进程还存在,任务还没有结束...,等下下一次脚本启动的时候,你的锁文件还在,不找出锁文件将其删除,脚本是不能运行的,这样给自己增加了一些麻烦,特别是在处理紧急问题的时候我们的时间更加宝贵。
第一次提交:1.从服务器把hooks的commit-msg copy到本地? 让本地的 Git 提交能自动生成 Gerrit 所需的 Change-Id 。..." 3.git push origin HEAD:refs/for/master 跟git不一样需要提交审核。...Gerrit 的 commit-msg hook 只有在 commit/amend 的时候才会生效。...如果你直接 push 原来的提交,提交里没有 Change-Id,Gerrit 就会报错。...第二次提交:如果你的hook已经安装了成功后的提交步骤:git add git commit -m "你的提交信息"git push origin HEAD:refs/for/master
我们在谈到 服务器多实例的时候,常常会说到 Tomcat 集群 ; 但为什么 谈到 多实例 redis 的时候 没有说 redis 集群 呢?...是因为 类似Tomcat 这样的 集群 强调的是 机器提供的 服务 而 redis 这样的 “集群” 强调的是 数据 ,(因为redis 主要是来存数据的嘛) 将数据分为一片一片的区域,就称为分片...强调的是 数据的分片。 同理 数据库 “集群”的概念也被称为 分片,而不是集群。