一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

IIS7 與 Tomcat整合(use isapi_redirect.dll)

因為想要在一台電腦上同時執行 ASPX 與 JSP 而只能使用80 PORT, 所以只能透過IIS 來轉發 request到tomcat 使用的Tomcat版本是8.0 方法如下: 1.下載 The Apache Tomcat Connectors  我下載的版本是1.2.40 可以得到 isapi_redirect.dll , 我是放在 c:\tomcat8\bin\ 2.設定connector 根據官網的文件 isapi_redirect 的設定方式有兩種 (1) registry setting 在HKLM\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0 新增最少以下資訊 extension_uri:/jakarta/isapi_redirect.dll  (固定值) log_file: c:/tomcat8/logs/isapi_redirect.log log_level: info worker_file: c:/tomcat8/conf/workers.properties (workers設定檔的位置) worker_mount_file: C:/tomcat8/conf/uriworkermap.properties (uri對照的mapping) (2)isapi_redirect.properties 設定同上, 不過我試的結果是沒有用, 所以用第一種方法 #固定值 extension_uri=/jakarta/isapi_redirect.dll #log檔放的位置可以依日期來當檔名可以參考官網設定 log_file=c:/tomcat8/logs/isapi_redirect.log #log的記錄內容有 debug, info, warn, error, trace log_level=info #worker設定檔的位置 worker_file=c:/tomcat8/conf/workers.properties #worker uri mapping對照檔的位置 worker_mount_file=C:/tomcat8/conf/uriworkermap.properties 3.建立workers.properties文件 官網worker參數設定 #隨便設定, 但是要跟等等設定的 uriworkermap.properties一致就好 worker.list=jspWorker #可以是ajp13, ajp14, jni, lb 或是 status #不過以下的設定需要跟server.xml的connector的設定一致 worker.geloinWorker.type=ajp13 #tomcat server所在的電腦 worker.geloinWorker.host=localhost worker.geloinWorker.port=8009 4.設定uriworkermap.properties 詳細設定要參考官網的uri設定 這邊要跟workers.properties的 worker.list設定一致 /*.jsp=jspWorker […]

龙生   02 Aug 2017
View Details

访问maven项目总是报404

刚进公司,不是很熟悉maven,总是访问不了项目,总是报404的错; 解决如下; 选中“项目", 然后右击选择“properties”—->Deployment Asssembly, 然后将webContent项remove掉,还有test相关的文件也可以remove掉, test是测试相关的文件,     add一个folder文件,next-->next-->src下的main下的webapp文件,最后击“Finish”,     在add一个Java Build Path Entries,next—>Maven Dependencies文件,最后再点击"Finish"; 最后再点击"OK";重新启动tomcat,在浏览器中输入相应的地址:http://localhost:8080/MavenTest/index.jsp ,进行测试web项目是否创建成功。 //tomcat 没有jar问题

  from:http://blog.csdn.net/my_name_nb/article/details/59112305

龙生   01 Aug 2017
View Details

maven国内镜像(maven下载慢的解决方法)

Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢。国内oschina的maven服务器很早之前就关了。今天发现阿里云的一个中央仓库,亲测可用。

修改${maven.home}/conf或者${user.home}/.m2文件夹下的settings.xml文件,在<mirrors>标签下加入上述内容即可。如下: <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <!--阿里云仓库--> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <!--中央仓库1--> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2/</url> </mirror> <!--中央仓库2--> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> </mirrors> </settings> from:http://www.cnblogs.com/xiongxx/p/6057558.html

龙生   01 Aug 2017
View Details

Java中存在着两种Random函数

一、java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:

二、java.util.Random 下面Random()的两种构造方法: Random():创建一个新的随机数生成器。 Random(long seed):使用单个 long 种子创建一个新的随机数生成器。 我们可以在构造Random对象的时候指定种子(这里指定种子有何作用,请接着往下看),如:Random r1 = new Random(20); 或者默认当前系统时间的毫秒数作为种子数:Random r1 = new Random(); 需要说明的是:你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。如下面的Java代码:

初始化时25并没有起直接作用(注意:不是没有起作用),rand.nextInt(100);中的100是随机数的上限,产生的随机数为0-100的整数,不包括100。 具体用法如下例:

备注:下面是Java.util.Random()方法摘要: protected int next(int bits):生成下一个伪随机数。 boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。 void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。 double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。 float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。 double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。 int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。 long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。 void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。 下面给几个例子: 生成[0,1.0)区间的小数:double d1 = r.nextDouble(); 生成[0,5.0)区间的小数:double d2 = r.nextDouble() * 5; 生成[1,2.5)区间的小数:double d3 = r.nextDouble() * 1.5 + 1; 生成-231到231-1之间的整数:int n = r.nextInt(); 生成[0,10)区间的整数: int n2 = r.nextInt(10);//方法一 n2 = Math.abs(r.nextInt() % 10);//方法二   参考资料: http://blog.sina.com.cn/s/blog_93dc666c0101h3gd.html http://blog.csdn.net/wpjava/article/details/6004492

龙生   29 Jul 2017
View Details

在eclipse中使用maven创建springMVC项目

一、在eclipse中创建maven-archetype-webapp项目: 1.新建项目选择maven项目 2.默认,下一步 3.选择maven-archetype-webapp,其他保持默认即可 4.如下填写完成后,点击完成即可 5.创建完成后的maven项目结构如下 其中index.jsp报错,错误信息:Multiple annotations found at this line: – The superclass "javax.servlet.http.HttpServlet" was not found on the Java   意思是缺少servlet包,我们可以导入javax.servlet-api-3.1.0.jar包,我们可以用两种方式来处理:     1> 在pom.xml中的dependencies中加入依赖包     

2> 可以在build path中添加tomcat 库,如下 点击next出现下面界面,如下操作 至此,一个正常的maven web项目已经建好,如下: 二、配置springMVC 1.在pom.xml中添加对spring的依赖 pom.xml

保存后会下载对应的jar文件 2.编辑web.xml文件 web.xml内容

  3.创建springContext.xml文件,在src/main/resources包中创建springContext.xml文件,如图: springContxt.xml内容  

在springContext.xml中,base-package是指定spring控制器控件的包,前缀指定的是视图目录,被设置为/WEB-INF/views,即视图目录被放到WEB-INF下。后缀指定的是视图的扩展名。例如,"hellospring"视图,将被放到/WEB-INF/views/hellospring.jsp。   4. 创建Spring控制器和视图 创建HelloSpringController.java类,在src/main/java包中,如下图: HelloSpringController.java

在上面的代码中,@Controller注解为Spring标注前置控制器的方式,@RequestMapping注解映射web请求到具体要操作的类或者方法上面,@RequestMapping注解既可以用到类上,也可以用到方法上,在此不再详述,如有疑问,可以百度。@RequestParam注解为请求指定参数。这种方式提供了一个一致 的编程风格。 另外上述代码中ModelAndView类指定具体的视图,这里是"hellospring",由于我们在springContext.xml配置了视图的前后缀,所以在这里只需要写出视图的具体名称即可,其具体指定的就是:前缀+视图名称+后缀,即完整的视图路径/WEB-INF/views/hellospring.jsp,也就是所要展示的视图的位置。 项目首页index.jsp内容  

上述代码中,点击跳转 的链接其实就是我们HelloSpringController.java中定义的控制器的一个@RequestMapping注解方法,name=zhangsan为showMessage接受的参数。 在/WEB-INF/views/下创建hellospring.jsp视图,如图: hellospring.jsp

上述代码中显示我们在HelloSpringController.java的showMessage方法中添加的两个参数message和name,如图:     好,至此我们使用maven搭建springMVC的操作已经全部完成,完成后整个项目的结构如下图: 三、将项目部署到tomcat服务器运行 首页 http://localhost:8080/HelloSpringMVC/  ,其中也可以使用 http://localhost:8080/HelloSpringMVC/index.jsp 两个效果是一样的 点击跳转 页   注意:若是跳转后页面直接显示${message} ${name}说明jstl表达式不起作用,我们可以在pom.xml中添加如下依赖:

from:http://www.cnblogs.com/qixing/p/qixing.html

龙生   28 Jul 2017
View Details

Maven .m2文件夹创建

settings.xml存在于两个地方: 1.安装的地方:$M2_HOME/conf/settings.xml 2.用户的目录:${user.home}/.m2/settings.xml 前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。 如果你偶尔需要创建用户范围的settings,你可以简单的copy Maven安装路径下的settings到目录${user.home}/.m2。Maven默认的settings.xml是一个包含了注释和例子的模板,你可以快速的修改它来达到你的要求。 发现很多第三方的项目默认的setting配置都是用户目录/.m2/settings.xml 所以为了方便,需要自己创建.m2文件夹,并在其中配置settings.xml 网上的教程就是使用命令

使用之后,发现并没有生成.m2文件夹 查找很多之后发现,必须把默认的maven里面的本地存储设置为默认的,就是不要设置

这一行注释或取消掉,再执行mvn help:system命令就OK了。   http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html

龙生   27 Jul 2017
View Details

centos7安装java1.8

一、使用yum命令搜索支持jdk版本

二、使用yum安装jdk8

三、检查是否成功

龙生   27 Jul 2017
View Details

CentOS7入门_安装并配置tomcat8.5.14

首先是下载,当然是官方网址 http://tomcat.apache.org/ 进入官网后了我们看到从tomcat6-tomcat9可供我们选择,因为tomcat9还是alpha版本,我们就选择最新的稳定版8.5.14.当然你也可以选择最常用的tomcat7.0.7. 具体的大家可以看这篇博客里面有各个版本的介绍tomcat版本介绍 选择完成之后我们就可以下载了。这里我给出两个版本的下载地址,如果大家需要其他版本的Tomcat可以自行去官网上面下载。

下载完成后我们解压

解压完毕之后我们进入tomcat目录下的bin文件,当然你也可以使用mv命令重命名文件夹,如果不太了解mv命令可以查看我的linux常用命令。 执行./catalina.sh 或者./startup.sh启动tomcat。 如果出现上图,并且在浏览器的8080端口中可以看到tomcat的猫就说明tomcat启动成功。   如果启动tomcat时,出现以以下错误说明jdk的环境变量没有配置。参考我的jdk安装指南配置。 如果tomcat 启动成功但是外网机访问不到请检查linux的防火墙是不是没有关闭,或者外网机是不是设置了代理。

怎么看tomcat服务是否启动成功呢,使用命令:

如果看到tomcat的进程就说明tomcat启动成功了。如果没有出现就说明tomcat有问题。更换活着重新解压缩tomcat试试。 启动成功之后我们可以先看看在本机上是否可以访问。我们使用wget命令:

出现下图返回 200 ok 说明在本机上是没有问题的。 确认本机没有问题后,我们互相ping linux系统和windows系统的ip地址,看是否可以相互ping通,如果不能以相互ping通的话。请检查检查windows和linux服务器连接问题。比如防火墙,或者代理问题。 如果本机上也没有返回 200 就检查tomcat的配置文件,看他得端口号是不是默认的8080,如果端口号也没错的话还是看不见tomcat的猫的话可以留言和我讨论。

  最后一点,如何设置tomcat开机自启动。将tomcat配置在 /etc/rc.local 下。

启动tomcat之前必须将java环境变量设置好。

重启reboot验证,tomcat 是否启动了,执行。

出现下图就说明tomcat已经启动了。 最后也就是见证奇迹的时刻,我们把我们的网站发布至/usr/local/tomcat-8.5.14/webapps/ROOT文件夹下; 我们就可以直接访问我们的网站了!   from: http://www.cnblogs.com/Jxiaobai/p/6840480.html?utm_source=itdadao&utm_medium=referral

龙生   27 Jul 2017
View Details

闰年的算法

var result = "平年"; var year = DateTime.Now.Year; //不是整百年,且可以被4整除 if (year % 100 != 0 && year % 4 == 0) { result = "闰年"; } //能被400整除 if (year % 400 == 0) { result = "闰年"; } //对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年 if (year > 3200 && year % 3200 == 0 && year % 172800 == 0) { result = "闰年"; }

龙生   23 Jul 2017
View Details

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7) call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数 说明 mixed call_user_func_array ( callable $callback , array $param_arr ) 把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。 参数 callback 被调用的回调函数。 param_arr 要被传入回调函数的数组,这个数组得是索引数组。 返回值 返回回调函数的结果。如果出错的话就返回FALSE 更新日志 版本 说明 5.3.0 对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。 范例 Example #1 call_user_func_array()例子 <?php function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\n"; } class foo { function bar($arg, $arg2) { echo __METHOD__, " got $arg and $arg2\n"; } } // Call the foobar() function with 2 arguments call_user_func_array("foobar", array("one", "two")); // Call the $foo->bar() method with 2 arguments $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four")); ?> 以上例程的输出类似于:

Example #2 call_user_func_array()使用命名空间的情况 <?php namespace Foobar; class Foo { static public function test($name) { print "Hello {$name}!\n"; } } // As of PHP 5.3.0 call_user_func_array(__NAMESPACE__ .’\Foo::test', array('Hannes')); // As of PHP 5.3.0 call_user_func_array(array(__NAMESPACE__ .’\Foo', 'test'), array('Philip')); ?> 以上例程的输出类似于:

Example #3 把完整的函数作为回调传入call_user_func_array() <?php $func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */ ?> 以上例程会输出:

Example #4 传引用 <?php function mega(&$a){ […]

龙生   18 Jul 2017
View Details
1 110 111 112 175