为您找到搜索结果:5879个
关于jsp页面是放在webroot目录下和web-inf下优缺点
CSDN问题:jsp放在webroot目录下 这样就可以让用户直接访问,jsp放在web-inf目录下就必须要通过请求才能访问。因此放在web-inf下jsp页面显得要安全。 既然这样 ,那是不是只要是需要通过请求才可以访问的页面就一定要放在web-inf目录下呢还有放在webroot和放在web-inf目录下都各有什么明显的优缺点 。望大家讨论... 1楼:通过设置过滤器,放在webroot下面的文件也可以实现不能直接访问。所以说放在哪里就看习惯是什么样了。一般项目都是要求隐藏性的,只让客户通过请求访问而不是直接访问jsp页面。若放在webroot下面,肯定要加一个过滤器阻止所有对*.jsp的访问。只要比较的话:放在webroot下面:优点,程序结构清晰,便于编码和维护;缺点,要加过滤器。放在web-inf下面:优点,不用过滤器;缺点,打乱了程序结构,编码和维护麻烦点。其实二者没啥大区别,个人倾向于放在webroot下面 2楼:放web-inf干嘛,web-inf一般都是用来放不允许用户访问到的东西吧,JSP本来就是用于访问...
tomcat部署javaweb项目的三种方式
一、将项目文件夹或war包直接拷贝到tomcat的webapps下二、在TomcatconfCatalinalocalhost下建立xml文件修改内容如下<Contextpath="/webproject"reloadable="true"docBase="C:workspacewebproject"workDir="C:workspacewebprojectwork"/>其中:path为http://localhost:8080/后的项目名docBase为你编辑项目的地址workDir为tomcat编译jsp存放的地址如果用eclipse+tomcat,记得配置contextdirectory指向xml所在文件夹,这种context片断提供了一种便利的方法来部署web应用,不需要编辑server.xml 优点:可以定义别名。服务器端运行的项目名称为path,外部访问的URL则使用XML的文件名。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。 三、在Tomcat的server.xml文件中Host节点...
在线支付接口开发总结
经过这段时间对支付宝在线支付接口、手机在线支付接口、农业银行在线支付接口、以及支付宝担保交易接口的开发,对在线支付的原理有了一定的了解,开发过程中有点小的心得体会,在这里记录一下。 首先,这几个接口中,前面三个都是单一的支付接口,对于需要集成的商户而言,所需要做的工作为:集成支付功能使用户可以在线支付,接受支付结果进行商户系统中订单相关数据的处理。其次,担保交易接口是一个完整的在线担保体系,因此包含了在线支付、确认收货、在线申请退款、客户维权、商户退款五个相关接口。关于具体的功能可以参考支付宝提供的文档资料,这里仅进行技术开发上的分析。 其实这些在线支付的接口从原理上来讲都是一样的。这里简单地阐述一下: 首先,开发这些接口的第三方公司会给商户提供一个唯一标识pid,而且与该标识相对应的会有一个KEY,双方使用这个KEY作为加密的密钥。 其次,商户使用接口的时候,根据不同支付方的开发文档的要求,将所需要的参数(订单的相关信息如:金额、商品等)拼接成相应的形式。在发送请求之前需要对数据进行加密,而加密的方式会由支付方提供,文档中会有相应的描述,有的接口也会提供现成的方法供商户使用。...
***系统吞吐量(TPS)、用户并发量、性能测试概念和公式
PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间: 一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理解了上面三个要素的意义之后,就能推算出它们之间的关系:QPS(TPS)= 并发数/平均响应时间 &...
***git自动化部署总结
在网上搜了一堆没用找到太仔细的教程,于是花费2天时间,自己研究了下。现在分享如下:思路:利用crontab定时去去执行gitpull脚本首先,用gitclone命令将中央库的代码下载到阿里云gitclonehttps://username:psw@git.oschina.net/xapp/xserver.gitxm第二步、在项目目录 /opt/lampp/htdocs/xm 下创建一个脚本xm-pull.sh,内容如下:#!/bin/bashcd/opt/lampp/htdocs/xm/usr/bin/gitpullhttps://username:psw@git.oschina.net/xapp/xserver.gitmaster:master第三步、cd~进入到个人目录,创建CRONTAB定时器文件xm-cron[root@iZ254lfyd6nZxm]#cd~[root@iZ254lfyd6nZ~]#lshello.txttest-confxm-cron[root@iZ254lfyd6nZ~]#vixm-cron*****/bin/bash/opt/lampp...
****Web API 版本控制的几种方式
个人建议:用contenttype,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现webapi版本化的三种方式。我从评论里又收集到两种方式,所以一共是5种:方式一:利用URL ?12HTTPGET:https://haveibeenpwned.com/api/v2/breachedaccount/foo 方式二:利用用户自定义的requestheader ?123HTTPGET:https://haveibeenpwned.com/api/breachedaccount/fooapi-version:2 方式三:利用contenttype ?123HTTPGET:https://haveibeenpwned.com/api/breachedaccount/fooAccept:application/vnd.haveibeenpwned.v2+json 方式四:利用contenttype ?123HTTPGET:https://haveibeenpwned.co...
iOS网络加载图片缓存与SDWebImage
加载网络图片可以说是网络应用中必备的。如果单纯的去下载图片,而不去做多线程、缓存等技术去优化,加载图片时的效果与用户体验就会很差。一、自己实现加载图片的方法tips: *iOS中所有网络访问都是异步的.(自己开线程去下载)*普通为模型增加UIImage属性的方法做的是内存缓存(下次启动还需要从网络重新加载),而要做本地缓存的话,还要自己手动存储网络上下载的图片.*为了加快访问,还需要自己去弄缓存.(内存缓存或者本地缓存)*当图片没有下载完成时,还要设置占位图片。 以下代码用NSOperation开异步线程下载图片,当下载完成时替换占位图片。 viewsourceprint?01.//02.// XNViewController.m03.// 加载网络图片,普通的用NSOperation来做.04.//05.// Createdbynengon14-7-7.06.// Copyright(c)2014年neng.Allrightsreserved.07.//08. 09.#import "XNVie...
开源框架:SDWebImage
http://blog.csdn.net/uxyheaven/article/details/7909373 SDWebImage是我搞iOS以来少数佩服的框架,膜拜一下作者.真的写的非常棒!这套开源框架还是蛮重要的,涉及到异步加载图片源和自动缓存.我们如果能够熟练使用其API就可以实现很多复杂的需求了.作者依旧在更新,目前3.0版本已经非常强大!简化了更多API接口.加强了下载类,支持多个文件同时下载,内置了下载进度功能.等github托管地址如下:https://github.com/rs/SDWebImageSDWebImageAPI文档入口(英文的,蛋疼,如果中文的话,估计咱也不写这篇文章了,要么也很短.):http://hackemist.com/SDWebImage/doc/ 如果你只是匆匆忙忙下载了一个framework就回到了自己工程,可能会遇到无法使用的情况:那么下面的文章来解决你遇到的问题:http://blog.csdn.net/qjlhlh/article/details/8191111里面提到一句,使用这类代码的时候,最好预先看看Readm...
jmeter添加断言
先创建一个线程组,再创建一个http请求。为了方便观察,我们添加两个监听器,察看结果树和断言结果。添加断言:响应断言,响应断言也是比较常用的一个断言设置响应断言:正常情况下响应代码是200。选择响应代码,匹配模式选择equals。点击添加,输入内容200。开始运行,查看结果:结果为绿色,说明通过重新设置断言,将200设置为201,再次运行查看结果:会发现,结果为红色,响应的结果中响应码为200。再看看断言结果:之前设置的响应结果为200时,没有报错将结果设置为201时,报错:接收到的是200,而预期的是201...
jmeter简单的使用
一般步骤是:在测试计划下面新建一个线程组,线程组下面添加请求,请求中添加结果和断言1、打开页面:2、添加线程组:3、线程组中设置参数:很重要的几个参数:线程数、ramp-upperiod、循环次数。线程数是执行的时候执行次数;ramp-upperiod是完成上面设置线程数所用的时间,则每一个线程数耗用的时间就为,设置的时间除以线程数;循环次数为设置的时间和线程数循环执行多少次,如果选择永远则手动输入的次数不能输入,也就是永远的循环执行下去,直到自己手动点击停止执行。4、添加请求5、添加一个http请求后,设置请求内容对于web页面来说,通常用到的请求协议就http或https两种。contentencoding是内容编码,中文的话就使用utf-8,这样可以保证中文不出现乱码6、添加察看结果树 结果是执行的时候保存执行后的结果7、执行,查看结果选择察看结果树,点击上面的执行按钮。执行后可选择执行后的结果进行取样器结果、请求、相应数据的察看也可以选择不同方式察看 ...
测试过程
测试是贯彻到软件生命周期(计划-需求-设计-编码-测试-维护)的每一个环节中一、测试的四个阶段 四个阶段为:单元测试——集成测试——系统测试——验收测试 软件产品层次:函数——模块、子系统——软件 1、单元测试 a、时间:单个函数完成后,对函数执行测试 b、对象:函数 c、依据:LLD(详细设计说明) d、执行人员:开发 2、集成测试 a、时间:在一个模块完成后,对该模块进行测试 b、对象:模块、子系统 c、依据:HLD(概要设计说明)&em...
测试方法
一、黑白灰 从测试方式上区分 1、黑盒测试:根据测试对象的外在特性进行测试 适用对象:系统测试,也称UI测试 其他测试地方:单元测试、集成测试也用,验证函数、模块的功能 2、白盒测试:根据测试对象的内部逻辑进行测试 适用对象:单元测试,也称代码测试 其他测试地方:集成、系统测试也用 3、灰盒测试:兼具黑盒、白盒测试的方法 适用对象:集成测试 其他测试地方:性能测试二、动态盒静态 软件在测试过程中是否执行区分 1、动态适用:软件、模块、子函数、函数、程序 2、静态适用:SRS(需求说明书)、HLD(概要设计)、LLD(详细设计)、用户手册、帮助、代码三、人工和自动化...
软件测试概述
一、测试是什么 1、找bug,就是查找软件测试错误的过程 2、加深对软件的认知,使软件更适合用户的使用 3、测试工作——执行测试 a、参与需求评审、计划测试流程、书写测试方案、编辑测试用例 b、参与需求会议、设计评审会、参加测试例会、测试总结会议 c、学习测试工具、了解项目业务、 d、编辑测试用例能力、熟悉规划测试用例时的方法 4、与产品经理沟通需求 和开发沟通测试过程中输出的问题单二、测试目的 1、验证软件能实现用户需要的正常功能,找bug 2、预防问题的出现,前期发现问题避免问题的出现;对问题进行总结分析,配合开发规避问题三、软件的生命周期 用户提出需求——...
jmeter使用csv进行参数化(二)
上篇说的是csv的第一种方法进行参数化,这篇说第二种方法。重新打开录制好的脚本。1、提取函数变量 打开选项--函数助手对话框 设置对话框参数: 选择csvread,然后将变量文件的路径填写进来。添加文件变量的列:0为第一列,1为第二列。在编程代码中第一个字符,列等下标永远是0,也是从0开始计算的 点击生成,生产的内容可直接观察到 复制生成按钮左边框中的内容。 2、将变量添加进脚本中 直接copy进入就行,如下图 3、添加察看结果树运行 运行后的结果与第一篇文章一样。同样达到了加参的效果 ...
jmeter使用csv进行参数化(一)
先录制一个脚本,具体录制可以参考笔者的随笔:http://www.cnblogs.com/wuyazi/p/8889770.html 1、准备参数化文本内容:mac没有自带的txt文本编辑器,笔者是在word中新建的然后保存成txt文档。参数与参数之间用逗号隔开,英文逗号。笔者亲试中文逗号是无法将参数分割开的,就会默认 为一个参数来处理。内容编辑完成后写成保存txt文档,当然.dat文档也是可以的将文档保存到固定位置,获取文档的路径。windows中直接右键就可以复制到文档的路径。mac中笔者一般都是将文档直接拖到终端中,文档路径直接生成 2、进入jmeter中,在线程组中右键添加--配置元件--csv数据文件设置设置csv数据文件内容: 文件名天填写刚才获取到的文件路径+文件名+文件格式 文件编码写保存文件时的格式,一般中文都是utf-8 变量名称指的是变量指代的内容,每一列之间用逗号隔开。步骤1中保存的变量用逗号隔开,这儿设置变量名时一样用逗号隔开 3、将设置的变量配置到运行脚本中 配置变量是:...