All posts by 龙生
Eclipse中web项目部署至Tomcat步骤
Eclipse的web工程至Tomcat默认的部署目录是在工程空间下,本文旨在将部署目录改为Tomcat安装目录,并解决依赖包输出问题。 1.在Eclipse中添加Tomcat服务器。 2.将web工程发布至tomcat: 选择刚添加的Tomcat: 此时Eclipse将自动生成Servers工程: 3.在Servers视图,Remove删除刚刚发布的项目: 4.打开Tomcat服务器配置项: 5.修改以下两个配置项,Tomcat保持启动状态,否则Server Locations一栏变灰色,不可用: 6.配置lib输出。 项目右键: 点击下一步,选中需要随项目发布到tomcat的包,完成确认操作。 7.修改工程下的.classpath文件,将如下配置项提至最前面,否则发布项目时,先前发布到WEB-INF里面的文件将被覆盖: 8.重新发布项目即可。 from:http://blog.csdn.net/lucklq/article/details/7621807
View Details我的my.ini
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[mysqld] datadir=E:/DATA/MySQL port=3306 sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" default_storage_engine=innodb max_connections=2000 max_allowed_packet=256M tmp_table_size=1024M thread_cache_size=128 innodb_buffer_pool_size=4096M innodb_buffer_pool_instances=3 innodb_log_file_size=50M innodb_file_per_table=1 #host cache skip-host-cache skip-name-resolve [client] port=3306 |
View Details
innodb_file_per_table
MySQL InnoDB引擎 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,当增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。 在MySQL的配置文件[mysqld]部分,增加innodb_file_per_table参数,可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。 注意: 如果启用了innodb_file_per_talbe参数,需要注意的是每张表的表空间内存放的只是数据、索引和插入缓冲Bitmap页,其他数据如:回滚信息、插入缓冲索引页、系统事物信息、二次写缓冲(Double write buffer)等还是放在原来的共享表空间内。同时说明了一个问题:即使启用了innodb_file_per_table参数共享表空间还是会不断的增加其大小的。 独立表空间优缺点: 优点: 1:每个表的数据、索引存放在自己单独的表空间中。 2:空间可以回收(drop/truncate table 方式操作表空间不能自动回收) 3:对于独立的表空间、碎片影响的性能要低于共享表空间 缺点: 单表增加比共享表空间方式更大 结论: 共享表空间在Insert操作上有一些优势,但在其它都没独立表空间表现好。 当启用独立表空间时,请合理调整一下 innodb_open_files 参数。 from:http://www.cnblogs.com/xiaoit/p/4096165.html
View DetailsWin7系统IIS7+Tomcat7集成
IIS是Internet Information Services(互联网信息服务)的缩写,是由微软公司提供的基于运行Microsoft Windows的互P联网基本服务,是微软在Windows中内置的Web服务器软件。通过IIS和Tomcat的集成可以让Tomcat处理JSP,IIS处理ASP和Html静态页面。 一、安装tomcat 我所用的Tomcat是最新版的7.0.27直接安装版,安装的位置是D:\Program Files\Tomcat7,记住这个路径会多次用到,注意在Tomcat之前一定要安装JDK,这里我用的是jdk1.7. 二、配置IIS 进入Win7的控制面板,打开程序功能,点击选择打开或关闭Windows功能 在Windows功能的选项菜单,把internet信息服务的所有的组件全部勾起来。 注意:安装完成后IIS的地址是http://localhost和tomcat的地址http://localhost:8080看看出没出现默认画面。 三、集成Tomcat 1、连接器jk 在tomcat的bin目录下新建目录jk\,把下载的isapi_redirect.dll(连接器,可从网上下载http://mirror.bit.edu.cn/apache//tomcat/tomcat-connectors/jk/binaries/windows/,我使用的是目前的最新版1.2.35),拷贝到这个目录下。 2、在tomcat的conf目录下创建两个文件workers.properties,uriworkermap.properties Workers.properties文件的内容:
|
1 2 3 4 5 6 7 8 |
workers.tomcat_home=D:\Program Files\Tomcat7 workers.java_home=D:\Program Files\Java\jdk1.7 ps=\ worker.list=worker1 worker.worker1.port=8009 worker.worker1.host=localhost worker.worker1.type=ajp13 worker.worker1.lbfactor=1 |
uriworkermap.properties文件的内容(注意:这个文件说明了符合哪些条件的uri才能被转发到tomcat中,可能的设置有)
|
1 2 3 4 |
/*=worker1 /*.jsp=worker1 /jsp-example/*=worker1 !/*.gif=worker1 |
3、导入注册表文件tomcat.reg 任意的在哪里建一个文本文档,命名为tomcat.reg,内容如下:
|
1 2 3 4 5 6 7 |
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0] "extension_uri"="/jakarta/isapi_redirect.dll" "log_file"="D:\\Program Files\\Tomcat7\\logs\\isapi.log" "worker_file"="D:\\Program Files\\Tomcat7\\conf\\workers.properties" "worker_mount_file"="D:\\Program Files\\Tomcat7\\conf\\uriworkermap.properties" "log.level"="realease" |
双击运行这个文件导入到注册表中。 4、建立网站的虚拟目录 打开你的Internet信息服务管理器,进入管理页面,展开左边的连接栏,选择你的一个网站,这里我的网站名是tomcat,主目录是e:\tomcat,鼠标单击右键添加虚拟目录,打开虚拟目录对话框。 别名处写上jakarta,其中jakarta是一个规定名字,必须这么创建,这个虚拟目录要指向isapi_redirect.dll的所在目录,并且设置为可执行IsApi。 5、添加筛选器 选中自己的网站,选择ISAPI筛选器,如图所示: 在出现的框中,单击鼠标右键,单击添加选项,出现添加ISAPI筛选器对话框,在名称处中输入jakarta,并选择连接器的路径,如下图所示: 6、添加脚本映射 单击“程序处理映射”选项,在打开的对话框中鼠标右键单击“添加脚本映射”选项,在打开的对话框中,按下图的配置进行输入: 在弹出的对话框中单击是按钮。 之后选择jakarta这项,单击鼠标右键选择编辑功能权限选项,如下图所示全部选中。至此所有的配置完毕。 在浏览器中输入“http://localhost”,在IE中有时如果不加HTTP的化可能会出现错误,这样(不加8080)访问IIS的服务器,可以看到网页显示的是tomcat的默认主页,说明IIS已经指向了tomcat,为了能更好的服务最好将两个服务器指向同一个的Web的目录,这样的IIS就支持jsp了,完成之后重新启动。 在tomcat的配置文件server.xml文件中添加以下这句话可以更改tomcat的默认目录: <Context path=”” docBase=”e:\tomcat”(此处为你的网站根目录,通过这句话的映射,可以将原先的默认更改为新的目录) debug=”0”/> 以上的操作是我根据网上的,书上的做的总结。在百度文库中我也发了一份,我也是初级的研究,如有不足之处希望大家理解。希望大家给我评论一下。 from:http://blog.csdn.net/longyuhome/article/details/7577502
View DetailsIIS7 與 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 […]
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问题
|
1 2 3 4 |
如果你是maven项目,tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包, 你需要设置一下eclipse: 项目 —> 属性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK 把对应的Maven依赖包也发布到tomcat,调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。 |
from:http://blog.csdn.net/my_name_nb/article/details/59112305
View Detailsmaven国内镜像(maven下载慢的解决方法)
Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢。国内oschina的maven服务器很早之前就关了。今天发现阿里云的一个中央仓库,亲测可用。
|
1 2 3 4 5 6 |
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> |
修改${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
View DetailsReact Native之React速学教程(上)
本文出自《React Native学习笔记》系列文章。 React Native是基于React的,在开发React Native过程中少不了的需要用到React方面的知识。虽然官方也有相应的Document,但篇幅比较多,学起来比较枯燥。 通过《React Native之React速学教程》你可以对React有更系统和更深入的认识。为了方便大家学习,我将《React Native之React速学教程》分为上、中、下三篇,大家可以根据需要进行阅读学习。 概述 本篇为《React Native之React速学教程》的第一篇。本篇将从React的特点、如何使用React、JSX语法、组件(Component)以及组件的属性,状态等方面进行讲解。 What’s React React是一个用于组建用户界面的JavaScript库,让你以更简单的方式来创建交互式用户界面。 当数据改变时,React将高效的更新和渲染需要更新的组件。声明性视图使你的代码更可预测,更容易调试。 构建封装管理自己的状态的组件,然后将它们组装成复杂的用户界面。由于组件逻辑是用JavaScript编写的,而不是模板,所以你可以轻松地通过您的应用程序传递丰富的数据,并保持DOM状态。 一次学习随处可写,学习React,你不仅可以将它用于Web开发,也可以用于React Native来开发Android和iOS应用。 不是模板却比模板更加灵活: 心得:上图是GitHub Popular的首页截图,这个页面是通过不同的组件组装而成的,组件化的开发模式,使得代码在更大程度上的到复用,而且组件之间对的组装很灵活。 Get Started 使用React之前需要在页面引入如下js库 。 react.js react-dom.js browser.min.js 上面一共列举了三个库: react.js 、react-dom.js 和 browser.min.js ,它们必须首先加载。其中,react.js 是 React 的核心库,react-dom.js 是提供与 DOM 相关的功能,browser.min.js 的作用是将 JSX 语法转为 JavaScript 语法,这一步很消耗时间,实际上线的时候,应该将它放到服务器完成。 你可以从React官网下载这些库,也可以将其下载到本地去使用。 心得:在做React Native开发时,这些库作为React Native核心库已经被初始化在node_modules目录下,所以不需要单独下载。 使用React 解压从上述地址下载的压缩包,在根目录中创建一个包含以下内容的 “helloworld.html” 。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <<span class="pl-ent">html</span>> <<span class="pl-ent">head</span>> <<span class="pl-ent">meta</span> <span class="pl-e">charset</span>=<span class="pl-s"><span class="pl-pds">"</span>UTF-8<span class="pl-pds">"</span></span> /> <<span class="pl-ent">title</span>>Hello React!</<span class="pl-ent">title</span>> <<span class="pl-ent">script</span> <span class="pl-e">src</span>=<span class="pl-s"><span class="pl-pds">"</span>build/react.js<span class="pl-pds">"</span></span>><span class="pl-s1"><</span>/<span class="pl-ent">script</span>> <<span class="pl-ent">script</span> <span class="pl-e">src</span>=<span class="pl-s"><span class="pl-pds">"</span>build/react-dom.js<span class="pl-pds">"</span></span>><span class="pl-s1"><</span>/<span class="pl-ent">script</span>> <<span class="pl-ent">script</span> <span class="pl-e">src</span>=<span class="pl-s"><span class="pl-pds">"</span>https://npmcdn.com/babel-core@5.8.38/browser.min.js<span class="pl-pds">"</span></span>><span class="pl-s1"><</span>/<span class="pl-ent">script</span>> </<span class="pl-ent">head</span>> <<span class="pl-ent">body</span>> <<span class="pl-ent">div</span> <span class="pl-e">id</span>=<span class="pl-s"><span class="pl-pds">"</span>example<span class="pl-pds">"</span></span>></<span class="pl-ent">div</span>> <<span class="pl-ent">script</span> <span class="pl-e">type</span>=<span class="pl-s"><span class="pl-pds">"</span>text/babel<span class="pl-pds">"</span></span>> <span class="pl-s1"> <span class="pl-smi">ReactDOM</span>.<span class="pl-en">render</span>(</span> <span class="pl-s1"> <span class="pl-k"><</span>h1<span class="pl-k">></span>Hello, world<span class="pl-k">!</span><span class="pl-k"><</span><span class="pl-k">/</span>h1<span class="pl-k">></span>,</span> <span class="pl-s1"> <span class="pl-c1">document</span>.<span class="pl-c1">getElementById</span>(<span class="pl-s"><span class="pl-pds">'</span>example<span class="pl-pds">'</span></span>)</span> <span class="pl-s1"> );</span> <span class="pl-s1"><</span>/<span class="pl-ent">script</span>> </<span class="pl-ent">body</span>> </<span class="pl-ent">html</span>> |
在 JavaScript 代码里写着 XML 格式的代码称为 JSX,下文会介绍。为了把 JSX 转成标准的 JavaScript,我们用<script type="text/babel">标签,然后通过Babel转换成在浏览器中真正执行的内容。 ReactDOM.render() ReactDOM.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点。
|
1 2 3 4 |
ReactDOM.render( <<span class="pl-ent">h1</span>>Hello, world!</<span class="pl-ent">h1</span>>, document.getElementById('example') ); |
上述代码的作用是将<h1>Hello, world!</h1>插入到元素id为example的容器中。 JSX JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。 每一个XML标签都会被JSX转换工具转换成纯JavaScript代码,使用JSX,组件的结构和组件之间的关系看上去更加清晰。 JSX并不是React必须使用的,但React官方建议我们使用 JSX , 因为它能定义简洁且我们熟知的包含属性的树状结构语法。 […]
View DetailsReact Native之React速学教程(中)
本文出自《React Native学习笔记》系列文章。 React Native是基于React的,在开发React Native过程中少不了的需要用到React方面的知识。虽然官方也有相应的Document,但篇幅比较多,学起来比较枯燥。 通过《React Native之React速学教程》你可以对React有更系统和更深入的认识。为了方便大家学习,我将《React Native之React速学教程》分为上、中、下三篇,大家可以根据需要进行阅读学习。 概述 本篇为《React Native之React速学教程》的第二篇。本篇将从组件(Component)的详细说明、组件的生命周期(Component Lifecycle)、isMounted是个反模式等方面进行讲解,让大家对组件(Component)有个更系统以及更深入的认识。 组件的详细说明 当通过调用 React.createClass() 来创建组件的时候,每个组件必须提供render方法,并且也可以包含其它的在这里描述的生命周期方法。 render ReactComponent render() render() 方法是必须的。 当该方法被回调的时候,会检测 this.props 和 this.state,并返回一个单子级组件。该子级组件可以是虚拟的本地 DOM 组件(比如 <div /> 或者 React.DOM.div()),也可以是自定义的复合组件。 你也可以返回 null 或者 false 来表明不需要渲染任何东西。实际上,React 渲染一个<noscript>标签来处理当前的差异检查逻辑。当返回 null 或者 false 的时候,this.getDOMNode() 将返回 null。 注意: render()函数应该是纯粹的,也就是说该函数不修改组件的 state,每次调用都返回相同的结果,不读写 DOM 信息,也不和浏览器交互(例如通过使用 setTimeout)。如果需要和浏览器交互,在 componentDidMount() 中或者其它生命周期方法中做这件事。保持 render() 纯粹,可以使服务器端渲染更加切实可行,也使组件更容易被理解。 心得:不要在render()函数中做复杂的操作,更不要进行网络请求,数据库读写,I/O等操作。 getInitialState object getInitialState() 初始化组件状态,在组件挂载之前调用一次。返回值将会作为 this.state的初始值。 心得:通常在该方法中对组件的状态进行初始化。 getDefaultProps object getDefaultProps() 设置组件属性的默认值,在组件类创建的时候调用一次,然后返回值被缓存下来。如果父组件没有指定 props 中的某个键,则此处返回的对象中的相应属性将会合并到 this.props (使用 in 检测属性)。 Usage:
|
1 2 3 4 5 6 7 |
getDefaultProps() { return { title: '', popEnabled:true }; }, |
注意 该方法在任何实例创建之前调用,因此不能依赖于 this.props。另外,getDefaultProps() 返回的任何复杂对象将会在实例间共享,而不是每个实例拥有一份拷贝。 心得:该方法在你封装一个自定义组件的时候经常用到,通常用于为组件初始化默认属性。 PropTypes object propTypes propTypes 对象用于验证传入到组件的 props。 可参考可重用的组件。 Usage:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
var NavigationBar=React.createClass({ propTypes: { navigator:React.PropTypes.object, leftButtonTitle: React.PropTypes.string, leftButtonIcon: Image.propTypes.source, popEnabled:React.PropTypes.bool, onLeftButtonClick: React.PropTypes.func, title:React.PropTypes.string, rightButtonTitle: React.PropTypes.string, rightButtonIcon:Image.propTypes.source, onRightButtonClick:React.PropTypes.func }, |
心得:在封装组件时,对组件的属性通常会有类型限制,如:组件的背景图片,需要Image.propTypes.source类型,propTypes便可以帮你完成你需要的属性类型的检查。 mixins array mixins mixin 数组允许使用混合来在多个组件之间共享行为。更多关于混合的信息,可参考Reusable Components。 心得:由于ES6不再支持mixins,所以不建议在使用mixins,我们可以用另外一种方式来替代mixins,请参考:React Native之React速学教程(下)-ES6不再支持Mixins。 statics object statics statics 对象允许你定义静态的方法,这些静态的方法可以在组件类上调用。例如:
|
1 2 3 4 5 6 7 8 9 10 |
var MyComponent = React.createClass({ statics: { customMethod: function(foo) { return foo === 'bar'; } }, render: function() { } }); MyComponent.customMethod('bar'); // true |
在这个块儿里面定义的方法都是静态的,你可以通过ClassName.funcationName的形式调用它。 注意 这些方法不能获取组件的 props 和 state。如果你想在静态方法中检查 props 的值,在调用处把 props 作为参数传入到静态方法。 displayName string displayName displayName 字符串用于输出调试信息。JSX 自动设置该值;可参考JSX in Depth。 isMounted boolean isMounted(),当组件被渲染到DOM,该方法返回true,否则返回false。该方法通常用于异步任务完成后修改state前的检查,以避免修改一个没有被渲染的组件的state。 心得:开发中不建议大家isMounted,大家可以使用另外一种更好的方式来避免修改没有被渲染的DOM,请下文的isMounted 是个反模式。 组件的生命周期(Component Lifecycle) 在iOS中UIViewController提供了(void)viewWillAppear:(BOOL)animated, – (void)viewDidLoad,(void)viewWillDisappear:(BOOL)animated等生命周期方法,在Android中Activity则提供了onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy()等生命周期方法,这些生命周期方法展示了一个界面从创建到销毁的一生。 那么在React […]
View DetailsReact Native之React速学教程(下)
本文出自《React Native学习笔记》系列文章。
React Native是基于React的,在开发React Native过程中少不了的需要用到React方面的知识。虽然官方也有相应的Document,但篇幅比较多,学起来比较枯燥。 通过《React Native之React速学教程》你可以对React有更系统和更深入的认识。为了方便大家学习,我将《React Native之React速学教程》分为上、中、下三篇,大家可以根据需要进行阅读学习。
View Details