仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1189|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA编程:Resin服务器的利用

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。服务器1、JavaWeb服务器选择简介在实践举行javaWeb项目实行的时分,我们能够接纳的贸易javaWeb服务器有IbmWebSphere,BeaWebLogic。这两种服务器功效完全而壮大,撑持一切的java服务容器尺度,合适制品贸易javaWeb使用的公布。可是这两种服务器是贸易服务器,代价高贵,并且对体系资本请求极高。出格是Websphere设置庞大,假如不共同接纳ibmWebsphereStudioApplication十分不合适开辟。并且他们分歧的版本对servlet.jar等javax组件和jdk的请求分歧。如Websphere3.5所请求的servlet.jar撑持的是旧版本的javax.servlet.http.HttpSession操纵,不撑持session.setAttribute()session.getAttribute()。在开辟大概进修过程当中,有很多收费的轻型的JavaWeb服务器能够供我们选用,如Tomcat,Resin,Orion等等。他们利用都很便利,占用资本也很少,合适开辟中不休的调试;还能够和Jbuilder如许的集成开辟工具集成利用。依据实践开辟中的情形来看,JakataTomcat和SunJava分离的最好,和其他使用服务器共同利用可撑持完全的j2ee尺度,使用也很普遍。可是从Java广泛存在的编码成绩来看,仍是Resin办理的最好。另有从利用的角度讲,团体以为Resin比Tomcat便利,并且Resin也能够分离Jbuilder6等ide利用。Resin夸大利用Xml手艺,从Resin本人的HomePage利用xtp就能够看出来。2、Resin的安装和设置Resin能够在http://www.caucho.com/download/index.xtp收费下载和利用。利用Resin开辟大概进修是收费的,可是假如把Resin作为免费产物公布是必要付费的。今朝的版本是2.10。当地下载:http://www.javafan.net/softview.jsp?ID=26Resin2.1.8http://www.javafan.net/softview.jsp?ID=159Resin3.0.8下载Resin时选择ArchiveVersions中的windows.zip的一般安装包resin-2.1.0.zip。把该zip包解压就任何目次上面,如d:esin。以下先容都假定Resin安装在d:esin下。进进d:esinin,键进httpd,能够在命令行把持台下运转Resin服务器。此时弹出一个有start和stop两个Radio按纽和一close按纽的对话框。在这里能够看到Resin的运转信息。这些信息同时Resin能够在d:esinlog目次上面的stdout.log日记文件中观察到。如:Resin2.0.4(builtThuNov1517:56:24PST2001)Copyright(c)1998-2001CauchoTechnology.Allrightsreserved.StartingResinonWed,23Jan200214:41:47+0800(CST)httplisteningto*:80srunlisteningtohaitaiserver:6802点选stop,能够中断以后的Resin服务器历程;再点选start,又能够开启新的Resin服务器历程。封闭该对话框,则回到Command把持台的盘符提醒形态下。假如在nt4大概win2k情况下,必要把Resin当做服务,只必要在Command把持台的该目次下,键进httpd?install,就能够在办理工具的服务上面看到新增了一条ResinWebServer的主动的服务。今后只需进进nt4大概win2k,就能够启动Resin服务。该服务也能够像其他服务一样设置成手动大概禁用形态。注重有的时分在安装完服务后,启动Resin,其实不能看到本人写的Resin例程能够被剖析,扫瞄器显现服务器找不到毛病。只需从头启动win2k大概nt,就可以办理该成绩。上面扼要先容一下Resin服务器的设置。Resin服务器和年夜多半JavaWeb服务器一样,经由过程一个Xml文件设置。进进d:esinconf目次,翻开resin.conf,这是一个xml格局的文本。这内里有良多标志,先查找到:<http-server>。在<http-server></http-server>标志对中的设置和resin的JavaWeb服务器有关。找到<app-dir>,在<app-dir></app-dir>标志对中的暗示resin的根,相称于Apache的htdocs大概IIS的wwwroot。Resin自带http服务器,可是也能够不利用它,接纳Apache大概IIS做http服务器。这个鄙人面段落中会提到。再查找<httpport=8080/>标志,它能够如许设置<httphost=localhostport=80/>。host参数指定的是服务器,port指定的是http端口,默许是localhost和8080。另有<srunhost=localhostport=6802/>标志。这个是jsp和javaServlet的引擎设置。一样平常默许就能够了,除非6802端口已被其余程序占用了。然后,设置jdk。这个必要在classpath中设置。右键点击我的电脑,在体系特征的初级标签中,点击情况变量,在体系变量中新建一个情况变量,变量名为classpath,值为jdk地点的目次;再新建别的一个情况变量,变量名为path,值为javac.exe和java.exe地点的目次(在jdk地点的目次上面的bin目次下)。一样平常如许子设置今后,Resin就能够利用了。在d:esindoc中(假定你的<appdir></appdir>对中的称号是doc,也就是根是d:/resin/doc,并且你的<httphost=localhostport=80/>如左设置),任意写一个jsp文件,如能够写个test.jsp文件,内容为<%=1+2+3%>。然后,在扫瞄器中,键进http://localhost/test.jsp。假如你能够看到扫瞄器显现6,则暗示Resin服务器已能够一般运转了。注重,修正设置后,一样平常从头启动resin才干看到变更。3、Resin利用简介利用Resin开辟JavaWeb项目时,必要创建本人的WebApp。这里不先容ResinCmp/Ejb的开辟和利用,只先容用Resin开辟一般的jspjavaservlet项目。在这里还要谈到resin.conf的设置。Resin中的使用能够有2种体例公布:一是在Resin的目次下公布;二是打包成War公布。1、在Resin的目次下公布在resin.conf中查找<web-app>标签,该标签暗示一个web使用。标签中,id属性暗示该使用的Web路径。如<web-appid=/test>,暗示该使用在Web上会见的时分应当用http://hostname/test/来会见。app-dir属性暗示该使用的实践路径。如<app-dir>d:esindoc        est</app-dir>暗示该使用在d:esindoc        est目次上面。默许值为根上面的和id同名的目次。Resin能够设置3种error-page:404毛病也就是文件找不到毛病页;Exception背例页;不克不及毗连java引擎页。他们分离能够如许子设置。404文件找不到页<web-appid=/app1><error-pageerror-code=404location=/file_not_found.jsp/></web-app>Exception背例页<web-appid=/foo><error-pageexception-type=java.lang.NullPointerExceptionlocation=/nullpointer.jsp/></web-app>不克不及毗连到srunServlet引擎毛病页该页设置和使用有关,属于服务器的设置。<http-server><error-pageexception-type=connectionlocation=/missing_file.html/></http-server>classpath的设置拜见上面的语句:<classpathid=WEB-INF/classessource=WEB-INF/srccompile=true/>id参数的值暗示classpath中编译后的class的寄存路径;source参数的值暗示classpath中java源代码的寄存路径;compile中的值多是true大概false,暗示是不是由Resin的srun主动编译java源代码。Classpath的设置一样平常和javaBean大概Servlet的利用有关。id的值暗示javaBean的编译好的包寄存的根,source的值暗示javaBean的java源代码寄存的根。Servlet不异。Servlet的设置拜见上面的语句:<servlet-mappingurl-pattern=*.xtpservlet-name=xtp/><servlet-mappingurl-pattern=*.jspservlet-name=jsp/><servlet-mappingurl-pattern=/servlet/*servlet-name=invoker/>一样平常就是指定那些必要经由过程srun的剖析。好比在这里,把*.jsp改成*.jss,其他稳定,那末只需在会见时碰到*.jss的文件就和本来碰到*.jsp一样处置。经由过程这个能够指定剖析的引擎,如以下的设置:<servlet-mappingurl-pattern=*.xtpservlet-name=com.caucho.jsp.XtpServlet/>在Servlet中,也能够指定servlet。如<servletservlet-name=helloservlet-class=test.HelloWorld/><servlet-mappingurl-pattern=/hello.htmlservlet-name=hello/>在servlet-mapping中有个主要的参数case-sensitive假如在windows上,最好设置成false,疏忽巨细写,从而和windows的商定分歧。Session的设置拜见以下的设置语句:<session-config><session-max>4096</session-max><session-timeout>30</session-timeout><enable-cookies>true</enable-cookies><enable-url-rewriting>true</enable-url-rewriting><file-store>WEB-INF/sessions</file-store></session-config>session-max:最年夜session数目session-timeout:session过时工夫,以分钟为单元。是不是同意cookie:指session是不是接纳cookies。假如接纳cookies,扫瞄器必需撑持session才干利用,公布时倡议改成false。enable-url-rewriting和enable-cookies一样平常共同利用。假如enable-cookies是false,enable-url-rewriting应当设成true对照符合。file-store:该设置唆使服务器是不是把session作为文件寄存在服务器上。假如把该项正文失落,则在你的web-app目次下的WEB-Inf/sessions目次不保留序列化后的session对象。Session另有jdbc-store设置,对应着把session经由过程jdbc永世保留在数据库中。实在也就是会话变量的序列化后的保留和从头载进的物理完成。在这里session还撑持了多服务器的设置成绩,经由过程tcp-store参数设置。因为触及到负载均衡的成绩,在这里不具体叙说,只复杂写一个例子:<http-server><httpid=aport=80/><srunid=ahost=host-aport=6802/><httpid=bport=80/><srunid=bhost=host-bport=6802/><hostid=><web-appid=><session-config><tcp-store/><always-load-session/></session-config></web-app></host></http-server>这个例子暗示session是依照tcpring的体例传送。temp-dir的设置temp-dir指的是使用的一时目次。也就是在javax.servlet.context.tempdir顶用到的目次。模认是使用目次下的WEB-INF        mp目次。以上的设置都能够在<web-app>标签对中设置,把持某个web使用的设置。2、打包成War公布以下是先容对怎样在resin下利用已打包成War的javaWeb使用举行公布。实在这个是最复杂也是最明晰的优秀办法。在j2ee中,一切的项目都打包成ear公布。个中,Web使用打包成war,ejb使用打包成jar。在resin中,这些都能够间接部署。这里我只对打包成war的Web使用的部署做先容。在resin.conf中,查找这个:<war-dirid=webapps/>。他暗示war文件应当被拷贝的路径。这里指的是相对resin的安装路径,如以上的设置暗示d:esinwebapps。只需从头启动Resin就能够了。Resin会把该war主动解包到webapps目次下。你能够在command把持台大概stdout.log中看到相似于[2002-04-2709:56:21.680]initializingapplicationhttp://haitaiserver:8080/rwtest的语句。这个暗示该Web使用是主动安装的。只需这个使用是切合j2ee尺度的Web使用,应当不会有成绩。经由过程如上显现的路径就能够会见到这个使用。假如你到d:esinwebappswtest中扫瞄,你会看到Resin已为你天生了rwtest目次,上面是META-INF和WEB-INF另有你本人的JSPervlet文件和目次。是完整切合j2ee的布局的。你能够在rwtest目次下创建新的jspervlet,一样能够被编译息争析并运转的。在实践操纵中,可使用Jbuilder大概WebSphere等Ide工具举行集成调试和打包,十分的便利。4、利用Resin举行javaWeb项目标开辟和调试这里篇幅无限,不成能讲太多,我只对实践中最有效的部分做先容。Resin中假如界说了毛病页,则堕落后最多见的一年夜串Exception不会被看到,间接跳转到毛病页。以是倡议开辟中先不设置毛病页。jsp毛病中最多见的就是NullpointException,其次是称号的拼写毛病。毛病也能够在Resin安装目次下的log目次下的stderr.log中找到。经由过程对该log文件的剖析能够看到良多有效的毛病信息。在调试jsp的时分,假如界说了compile为true,jsp先被翻译成Servlet的java文件,再被编译成class文件。能够在你本人的work目次中找到该文件。java的称号在Resin中是如许子界说的:本来的jsp文件名前加下划线,再加上_jsp这个字样。以是在java使用中的定名不要以_jsp开头,也不要呈现中文称号等字符;实在称号以_jsp为开首也是分歧法的。关于java对多国言语的撑持成绩,在Resin中失掉了很好的办理。以jsp为例,参考Resin主动天生的javaServlet文件。只需在任何的jsp文件的最入手下手处增添:<%@pagecontentType="text/html;charset=gb2312"%>中文成绩就办理了。观察天生的Servlet源文件片段:response.setContentType("text/html;charset=gb2312");request.setCharacterEncoding("GB2312");以上为设置字符集privatestaticbyte[]_jsp_string26;privatestaticbyte[]_jsp_string27;_jsp_string26="
</table>
<tableclass="type">
<tr>
<td>".getBytes("GB2312");_jsp_string27="
</td><td>
</tr>
<!--
<tr>
<td>".getBytes("GB2312");以上是对页面的显现的编码。个中,getBytes("gb2312")是静态编码,这是Resin为懂得决某些情况下仍是不克不及一般显现而设置的。在Resin的设置文件(/conf/resin.conf)中,能够经由过程设置<jspprecompile=truestatic-encoding=falserecompile-on-error=true/>中的static-encoding属性为true大概false,来把持是不是静态编码。实在在Resin容器的外部,一切的字符都是依照iso-8859-1来处置的。iso-8859-1是一个年夜字符集,固然中文的gb2312和8859在字的界说上有分歧,可是编码是包涵了gb2312的。依照办理多国言语的办法,在纯英文平台上用iso-8859-1处置外部编码,而把字符的显现推向客户真个呆板。以是如许只需编码是准确的,在页面上显现中文就不存在成绩。Tomcat3.2不便利的中央是Tomcat对数据库的操纵中文撑持欠好,必要手动在javaBean大概Servlet中硬编码。经由过程测试,在Resin中完整没有这个成绩。Tomcat4.0办理了这个成绩。不外团体习气来说仍是以为resin在设置方面便利一些。在Resin中能够主动办理引进的jar。这个在利用特别的类大概第三方供应的开辟包十分有效。办法十分复杂:只需把该jar大概是zip拷贝到Resin安装目次下的lib目次上面,从头启动Resin,就能够了。如db2用到的db2java.zip文件,只需轻松拷贝到d:esinlib中就能够了。Resin供应了对Jbuilder的集成调试。能够到:http://www.caucho.com/projects/jbuilder/resin-jbuilder.jar收费下载到resin的jbuilder的ide扩大包。然后,把该包该名成:resin-jbuilder.jar,拷贝到jbuilder6libext目次下。然后,把Resin2.1解包安装在jbuilder6esin-2.1目次下,就能够了。翻开任何的War项目,在project上点右键,选择properties,选择Servers标签。在本来的选择框上,就能够看到多了一项Resin2.1。如许子就能够象本来用tomcat一样调试jspervlet了,并且比Tomcat更便利。调试办法和用Tomcat调试一样。5、其他成绩利用Resin能够和apache分离利用。也就是使用apache做http服务器,而Resin做srun服务器。能够参考resinconfamples目次下的apache.conf。次要就是把app-dir设成/usr/local/apache/htdocs(也就是apache的root)。同时在apache中的http.conf也做了响应的设置。Resin还供应了对该历程的主动安装程式,运转resininetup,你能够在弹处的对话框当选择apache,如许子就能够了。只需你已经安装过apache,resin能够本人找到httpd.conf文件地点的路径。利用命令行体例启动Resin,假如修改了Resin.conf,Resin会本人从头启动顺应新的设置。这个很合适早期安装时利用。Resin对数据库缓冲池的撑持很好。在这里,它供应了DBPool对缓冲池做了封装。实践利用时,只需在resin.conf如许设置:<dbpool.sql>  <id>ORCL</id>  <driver>oracle.jdbc.driver.OracleDriver</driver>  <url>jdbc:oracle:thin:@localhost:1521:SMTH</url>  <!--<url>jdbc:oracle:oci8:@SMTH</url>-->  <user>scott</user>  <password>tiger</password>  <max-connections>5</max-connections></dbpool.sql>然后,在你的jsp大概servlet中就能够如许子利用了:先导进com.caucho.sql.*包,然后以下间接失掉毗连:Connectionconn=DBPool.getPool("ORCL").getConnection();团体倡议不要如上利用毗连池,仍是依照ejb的办法用从Context中间接找到的DataSource对象中失掉毗连通用性对照好。代码也很复杂:Contextctx=newInitialContext();DataSourceds=(DataSource)ctx.lookup(“jdbc/EmployeeDB”);Connectionconn=ds.getConnection();在Resin中以下设置jdbc就能够了:<resource-ref><res-ref-name>jdbc/EmployeeDB</res-ref-name><res-type>javax.sql.DataSource</res-type><init-paramdriver-name="com.caucho.jdbc.mysql.Driver"/><init-paramurl="jdbc:mysql_caucho://localhost:3306/test"/><init-paramuser="name"/><init-parampassword="password"/><init-parammax-connections="20"/><init-parammax-idle-time="30"/></resource-ref>用ResinWebServer开辟仍是对照兴奋的。只是没有像Weblogic大概WebSphere那模样供应现成的办理把持台罢了。可是从不乱性和便利性来说,Resin团体以为比Tomcat要好良多。何况Resin另有供应了resin-cmp和resin-ejb,功效更壮大。
手机用到的是用j2me所编出来的小程序。
小女巫 该用户已被删除
沙发
发表于 2015-1-21 15:17:03 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
海妖 该用户已被删除
板凳
发表于 2015-1-29 07:06:51 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
再见西城 该用户已被删除
地板
发表于 2015-1-30 15:50:05 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
兰色精灵 该用户已被删除
5#
发表于 2015-2-6 13:53:50 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-7 05:43:15 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
小妖女 该用户已被删除
7#
发表于 2015-2-10 07:11:01 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-2-25 13:57:31 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
若天明 该用户已被删除
9#
发表于 2015-3-7 21:21:47 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
乐观 该用户已被删除
10#
发表于 2015-3-11 21:17:21 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
透明 该用户已被删除
11#
发表于 2015-3-13 23:09:44 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
12#
发表于 2015-3-17 09:08:54 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
深爱那片海 该用户已被删除
13#
 楼主| 发表于 2015-3-17 23:09:23 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
再现理想 该用户已被删除
14#
发表于 2015-3-22 04:15:53 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
admin 该用户已被删除
15#
发表于 2015-3-31 05:17:19 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
简单生活 该用户已被删除
16#
发表于 2015-4-1 16:11:02 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
精灵巫婆 该用户已被删除
17#
发表于 2015-4-4 01:27:34 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
飘飘悠悠 该用户已被删除
18#
发表于 2015-4-26 14:11:10 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
不帅 该用户已被删除
19#
发表于 2015-4-26 23:10:25 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
山那边是海 该用户已被删除
20#
发表于 2015-5-2 06:15:18 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表