首页 理论教育Resin下载、安装与配置

Resin下载、安装与配置

【摘要】:也可能是“端口号”发生冲突,此时要修改端口号,见“实训5:2、Resin配置”中的“http端口号配置”)正常启动后出现如图1-16所示的“Resin”窗口。对它们的配置影响整个Resin。后两个位于Resin安装目录“D:\resin-3.1.9”下的各应用程序目录下,对它们的配置与该应用目录下的应用相关。WEB-INF/resin-web.xml也可用于Resin,它覆盖和补充WEB-INF/web.xml中的配置。在conf/resin.conf文件中配置。所有的JSP程序都会被Resin转换为Servlet程序。

1.Resin下载、安装、启动

打开“http://www.caucho.com/download/”站点,下载resin-3.1.9.zip压缩包。

Resin安装很简单,只需将resin-3.1.9.zip解压缩到某个目录即可。可以将其安装在D盘的\resin-3.1.9目录下,即“D:\resin-3.1.9”,该目录称为Resin的安装目录。

Resin 3.1.x在启动前要安装好JDK 1.5或以上版本;配置环境变量JAVA_HOME,JAVA_HOME的值是JDK的安装目录,在实训4中已安装了JDK 1.6,配置了环境变量JAVA_HOME。

Resin的启动也很简单,双击“D:\resin-3.1.9”文件夹下的程序文件httpd.exe即可。(注:不能正常启动的原因可能是JDK版本较低或环境变量没有配置正确。也可能是“端口号”发生冲突,此时要修改端口号,见“实训5:2、Resin配置”中的“(1)http端口号配置”)正常启动后出现如图1-16所示的“Resin”窗口。

978-7-111-38219-5-Chapter01-18.jpg

图1-16 “Resin”窗口

在“Resin”窗口选择“Stop”则停止Resin服务器、选择“Start”启动Resin服务器、单击“Quit”按钮则关闭窗口退出Resin服务器。

如果安装和启动正确则在计算机B(客户端计算机)浏览器的地址栏中输入“http://192.168.2.1:8080/”会显示Resin测试页,如图1-17所示。如果使用计算机S(服务器端计算机)的浏览器显示Resin测试页,则地址栏中应输入“http://localhost:8080/”。

978-7-111-38219-5-Chapter01-19.jpg

图1-17 Resin测试页

使用“记事本”输入下列“welcome.htm”程序,存在目录“D:/resin-3.1.9/we-bapps/ROOT/EXAMS/”下,文件名为“welcome.htm”,在客户端计算机的浏览器地址栏中输入“http://192.168.2.1:8080/EXAMS/welcome.htm”则浏览器窗口显示如图1-18所示。

978-7-111-38219-5-Chapter01-20.jpg

图1-18

welcome.htm:

978-7-111-38219-5-Chapter01-21.jpg

978-7-111-38219-5-Chapter01-22.jpg

2.Resin配置

配置Resin的目的是为了定义一些与应用开发有关的参数,如:应用程序的存放目录、Servlet的编译和装载路径、Servlet的映射名称、session的配置等。Resin的配置文件主要有4个,它们是XML格式的文本:

978-7-111-38219-5-Chapter01-23.jpg

前两个在Resin安装目录“D:\resin-3.1.9”的“conf”目录下。对它们的配置影响整个Resin。后两个位于Resin安装目录“D:\resin-3.1.9”下的各应用程序目录下,对它们的配置与该应用目录下的应用相关。WEB-INF/web.xml含有顶级web-app标签,它是定义Servlet映射位置和安全事务的标准地方。WEB-INF/resin-web.xml也可用于Resin,它覆盖和补充WEB-INF/web.xml中的配置。一般将WEB-INF/web.xml只作为对Servlet的配置,将WEB-INF/resin-web.xml作为对其他特殊配置的补充。

(1)http端口号配置

配置的端口号不能与其他服务的端口号相同。resin-3.1.9出厂时的http端口号是8080。打开conf/resin.conf文件,找到:

978-7-111-38219-5-Chapter01-24.jpg

若将其中的8080改为7001:

978-7-111-38219-5-Chapter01-25.jpg

保存resin.conf文件后重启Resin,则浏览器URL地址中的端口号就要写为7001,如:

978-7-111-38219-5-Chapter01-26.jpg

(2)应用目录配置

用户编写的应用程序的存放目录。在conf/resin.conf文件中配置。可配置多个目录。resin-3.1.9的出厂配置是

978-7-111-38219-5-Chapter01-27.jpg

其中:web-app是标签,id和root-directory是web-app标签的属性,root-directory的值是用户目录或应用程序存放的根目录,它建立在Resin安装目录下。id的值作为URL中文档路径的前缀,代表root-directory的值。例如,假定D:/resin-3.1.9/webapps/ROOT目录下有应用程序Hello.jsp,若客户机浏览器要调用Hello.jsp,则URL地址应是

978-7-111-38219-5-Chapter01-28.jpg(www.chuimin.cn)

若要增加一应用目录:APP/DOC,并用A代表它,则conf/resin.conf文件中配置如下:

978-7-111-38219-5-Chapter01-29.jpg

978-7-111-38219-5-Chapter01-30.jpg

假定“D:/resin-3.1.9/APP/DOC”目录下有应用程序“login.jsp”,若客户机浏览器要请求“login.jsp”,则URL地址应是

978-7-111-38219-5-Chapter01-31.jpg

根据“conf/resin.conf”文件中的应用目录配置,Resin启动时,若该应用目录不存在,则Resin自动在Resin安装目录下建立该应用目录。

本实训课程例题使用的应用目录是“webapps/ROOT”。

(3)默认文件配置

如果URL的文档路径中缺少文件名,如:

978-7-111-38219-5-Chapter01-32.jpg

则Resin服务器会调用默认文件。对所有应用有效的默认文件在“conf/app-default.xml”文件中配置;只对某一应用有效的默认文件在相应应用目录下的WEB-INF/web.xml或WEB-INF/resin-web.xml文件中配置。Resin在“conf/app-default.xml”文件中的初始配置是

978-7-111-38219-5-Chapter01-33.jpg

因此,对于输入的URL地址http://192.168.2.1:8080/,则会依次请求:

978-7-111-38219-5-Chapter01-34.jpg

直到找到匹配的为止。

注意,在“conf/app-default.xml”文件中,<welcome-file-list>标签是<web-app-default>标签的子标签。

(4)Servlet程序的存放路径配置

Servlet是为HTTP请求服务的Java类。所有的JSP程序都会被Resin转换为Servlet程序。用户也可以直接编写Servlet程序,编写Servlet程序的唯一要求是实现javax.servlet.Servlet接口

用户编写的Servlet程序通常放在“WEB-INF/classes”目录中,这是在“conf/app-de-fault.xml”配置文件中配置的,如下:

978-7-111-38219-5-Chapter01-35.jpg

在应用目录下,Resin自动建立Servlet程序的存放目录,目录名是“compiling-loaderpath="WEB-INF/classes"/”中path的值。存放在这一目录中的Servlet程序改变时,Resin会自动重新编译和装载它。

(5)Servlet的调用配置

对于用户编写的Servlet,在“conf/app-default.xml”配置文件中可用<servlet-mapping>标签定义对它的调用模式。例如,假定用户编写了一个Servlet程序“firstServlet.java”,其存放在路径“webapps/ROOT/WEB-INF/classes”中(“webapps/ROOT”是在“conf/resin.conf”文件中定义的应用目录,“WEB-INF/classes”是在“conf/app-default.xml”文件中定义的Servlet存放目录)。若“conf/app-default.xml”配置文件中有配置:

978-7-111-38219-5-Chapter01-36.jpg

则服务器端浏览器调用firstServlet.java的URL如下:

978-7-111-38219-5-Chapter01-37.jpg

<servlet-mapping>标签中,servlet-name="invoker"中的invoker表示用类名调用Serv-let,而url-pattern="/servlet/*"中的/servlet/*表示在调用Servlet的路径前要加上/servlet/。(警告,配置"invoker"的方式调用Servlet会造成安全漏洞,存放在应用目录中的Servlet,甚至用户不知道的打包在.jar中的Servlet都可能被调用。)

为了安全上的考虑,将Servlet的调用模式配置在“WEB-INF/web.xml”文件中。假定路径“webapps/ROOT/WEB-INF/classes/test”中有Servlet程序“login.java”。“webapps/ROOT/WEB-INF”中的“web.xml”内容如下:

978-7-111-38219-5-Chapter01-38.jpg

则服务器端浏览器调用该“login.java”的URL如下:

978-7-111-38219-5-Chapter01-39.jpg

但要注意,<servlet>标签要先于<servlet-mapping>标签定义。