发表于: 2016-10-18 22:43:04

0 2540


今天完成的事情:修改接口,给发送验证码模块增加防攻击的代码。

明天计划的事情:写接口,学习git,希望能够快速解决掉关于git的协作问题。

遇到的问题:

1.


Counting objects: 184, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (53/53), done.

Writing objects: 100% (184/184), 88.69 KiB | 0 bytes/s, done.

Total 184 (delta 135), reused 155 (delta 119)

remote: Resolving deltas: 100% (135/135), completed with 66 local objects.

remote: error: GH006: Protected branch update failed for refs/heads/master.

remote: error: At least one approved review is required

To github.com:15394730733/youxiao.git

 ! [remote rejected] master -> master (protected branch hook declined)

error: failed to push some refs to 'git@github.com:15394730733/youxiao.git'


这里不知道为什么不能提交,受保护的头,


2.


Java compiler level does not match the version of the installed Java project facet.

Java 编译器级别与已安装的 Java 项目方面的版本不匹配。

右键项目“Properties”,在弹出的“Properties”窗口左侧,单击“Project Facets”,打开“Project Facets”页面。


在页面中的“Java”下拉列表中,选择相应版本就OK了


我感觉自己项目编译报错会不会因为这里的设置导致的


3.

如何防止短信验证码被恶意点击


短信发送间隔设置——设置同一号码重复发送的时间间隔,一般设置为60-120秒


  IP限定——根据自己的业务特点,设置每个IP每天的最大发送量


  手机号码限定——根据业务特点,设置每个手机号码每天的最大发送量


我使用手机号码限定,通过记录每个电话号码已发送验证码的次数来进行防攻击,

这里如何记录电话号码已经发送验证码的次数,修改原有缓存池,创建新的缓存池



4.

在查找project facets 的时候http://blog.csdn.net/mydeman/article/details/6950443

看到这篇blog

1.经常执行clean命令重新编译发布项目


2、Eclipse官方Maven插件无法识别WTP Project。

使用Maven来管理项目的构建和依赖,的确方便了很多,再也不需要安装一大堆的插件,也不需要担心依赖库

的管理和更新。在刚开始使用m2eclipse插件时,该插件的官方网站还在Sonatype上,即

http://m2eclipse.sonatype.org/,而安装也是两个插件Core和Extras(http://m2eclipse.sonatype.org/

installing-m2eclipse.html)。

可是忽然有一天,再次来到http://m2eclipse.sonatype.org/时,发现了该

插件已经迁移到了Eclipse官网的通知。当时想,这下子好了,肯定二者的结合会更加紧密,对我们开发者来讲

应该是件好事。可是按照新的指南(http://eclipse.org/m2e/download/)安装后才发现,这个Eclipse

官方发布的插件,竟然不支持WTP,也就是无法将原来的项目识别一个Dynamic Web Project。

真是令人失望 :-(

解决方法:Project →右键“Properties”→从左侧列表中选择“Project Facets”→将右侧的

Dynamic Web Project”勾上,注意选择正确的版本。

3.、和2是相关的问题,无法从Project Facets选择Dynamic Web Project。

一般情况下遇到无法识别Dynamic Web Project的情况,都可以通过2中方法解决。可是昨天一个同事碰到

另外一个情况:使用Existing Maven Projects导入项目后,只识别了src/main/java为project的source 

folder,而test和resources都被当做普通目录对待(新建一个Maven Project时,也是只创建了src/main/java

和src/main/webapp文件夹,其他都没有创建)。他就把src/main/resources、src/test/java和

src/test/resources加为了Source Folder,等到要在Eclipse中调试时,才发现原来现在还不是一个Web Project

无法Run On Server。于是就按照2中的步骤添加Dynamic Web Project的Facet,总是提示错误。

解决方法:先把除了src/main/java之外的文件夹从Source Folder中去掉,再添加为Dynamic Web Project,

最后再把其他文件夹加回到Source Folder中。


5.

在查找project Facets的时候找到了Facet 和WTP


以下来自百度百科

Facet提供了一个功能强大扩展WTP的机制,用户可以在创建web项目时添加各种功能模块。


Facet项目框架提供了一个功能强大扩展WTP的机制,用户可以在创建web项目时添加各种功能模块。当一个Facet

添加到项目中后,


它可以执行任何必要的操作如:拷贝resources(资源;财力;智谋;方法),安装


builders(建设者;建筑工人;创建者),添加natures(性质;本性;风景;品种)等,同时Facet也可以用作用户

界面元素可用的标志。


百度知道中关于eclipse 的Facet的个人理解

其实我感觉,就是让我们在创建项目时候,可以独立定义一个有一个模板供我们使用,在里面定义各种用到服务的版本,


你在导入从其他地方拿过来的项目时候,需要修改项目与project facets的编译环境一致。


关于WTP


以下来自百度百科


WTP WAP传输协议层,提供传输支持,增加由WDP提供的数据报服务的可靠性。


Eclipse WTP

WTP(Web Tools Platform )项目在eclipse平台上进行扩展,是一个开发J2EE Web应用程序的工具集



6.

这篇blog讲解了catalina.bat干了点什么

http://www.cnblogs.com/fantiantian/p/3623740.html


startup.bat文件的作用就是找到catalina.bat文件,然后把参数传递给它,在startup.bat中,调用catalina.bat的命令call 

"%EXECUTABLE%" start %CMD_LINE_ARGS%,其中"%EXECUTABLE%"这个就是catalina.bat文件,这个命令至少向catalina.bat传递一个参数--start.


catalina.bat开始

第一行@echo off后面的命令只执行不显示

第十七行if "%OS%" == "Windows_NT" setlocal如果这个环境变量等于"Windows_NT" 那么此文件对于环境变量的修改只对该文件(就是自己)有效。

第十八行至八十五行的注释内容blog解释他们是一些先决条件,还有对一些变量进行说明。

同时他做了一个实验,发现在test.bat中设置的环境变量,在test2.bat中也能够使用

第八十八行if not ""%1"" == ""run"" goto mainEntry如果接收到的第一个参数是run那么就去mainEntry节点

blog的解释是这句话是为了那些直接打开catalina.bat文件的人准备的

第八十九行if ""%TEMP%"" == """" goto mainEntry如果TEMP环境变量是空那么就去mainEntry节点

由于系统有TEMP环境变量,而且不为空,所以继续执行到第九十行

第九十行if exist "%TEMP%\%~nx0.run" goto mainEntry

这里%~nx0代表执行文件的名字,

这句话就是说如果TEMP环境变量指定的目录下有catalina.bat.run 这个文件那么就去mainEntry节点,当然没有啦,

所以继续往下走

第九十一行echo Y>"%TEMP%\%~nx0.run"在TEMP环境变量指定的目录下创建一个catalina.bat.run,并写入Y

第九十二行if not exist "%TEMP%\%~nx0.run" goto mainEntry如果指定目录下的catalina.bat.run还不存在就直

接去mainEntry节点

第九十三行echo Y>"%TEMP%\%~nx0.Y"在TEMP环境变量指定的目录下创建一个catalina.bat.Y,并写入Y

第九十四行call "%~f0" %* <"%TEMP%\%~nx0.Y"

这里%~f0:表示运行的文件的全路径

%*:在batch file中,每一个命令的参数都以%1,%2,%3 .....的形式展现,我们也可以使用%来代替所有的参数

%1,就是第一个赋予这个执行文件的参数,

%*就是所有被赋予这个执行文件的参数。

第九十四行执行的结果是调用自身?这里我看blog也没有明白,需要再找找资料

第九十六行set RETVAL=%ERRORLEVEL%这里是给RETVAL赋值,赋的是上次执行结果,如果执行正确ERRORLEVEL就是0.错误就是1

第九十七行del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1

>NUL 就是将输出输出到NUL中,这样有错误的情况下你什么都拿不到。

2>&1:2是值错误输出,&1是标准输出,意思就是将错误输出重定向到标准输出中

>NUL 2>&1的意思就是将错误输出重定向到标准输出,最后在重定向到NUL中,这样出现错误,你从表面上不

会看出来。如果将>NUL 2>&1删除以后,这条命令就会将错误信息显示出来

del /Q是安静模式删除,不要求确认。NUL是DOS下的一个虚拟设备,相当于一个文件(输入时立即结束,

输出时仅作模拟)。2>&1,2是值错误输出,&1是标准输出,意思就是将错误输出重定向到标准输出中。

>NUL 2>&1,就是将错误输入重定向到标准输出,

重定向到NUL中。这行作用就是安静模式删除*\AppData\Local\Temp\test.bat.Y。

第九十八行exit /B %RETVAL%退出catalina.bat文件(就是自己),然后将%RETVAL%的值赋值给ERRORLEVEL

剩下的明天继续

http://www.cnblogs.com/yizhishi/p/5936149.html

这篇blog也不错



返回列表 返回列表
评论

    分享到