------------从J2EE体系结构说起
因为想学习MVC模式及struct构架
所以决定搭建JSP+Servlet+EJB环境
WEB应用服务器我选择了Tomcat
配置服务器的过程中我查阅了许多资料,发现还有很多人都和我一样在配置过程中遇到了不少问题,而网上的资料大都讲得很笼统,最后虽然能配置成功,但对于服务器的结构根本不理解。
要想理清web服务器,应用服务器,容器等概念,还需要从J2EE的体系结构说起。
----------------------------------------------------------------------------------------------------------------------------------------------
J2EE:(Java 2 Platform Enterprise Edtion)意思是JAVA2平台企业版。在这里不能不提到他的几个兄弟J2ME,J2SE,JRE,JDK,JVM,就像我当年看到已、巳、己一样,我第一次看到登时就晕了过去。
首
先说J2ME
:M表示Micro,是Java2平台的微型版,用来开发小型设备上的应用系统,像手机掌上电脑等。J2SE:S表示Standard,使Java2平台
的标准版,适用于开发普通台式电脑上的应用系统。J2ME和J2EE是在J2SE的基础上发展来的,前者是对J2SE的简化和提炼,而后者则是对J2SE
的扩冲。
JRE:JAVA Runtime Eviroment,是JAVA的运行环境,包含了JVM:JAVA Virtue Machine.即JAVA虚拟机,我们编译好的字节码文件就是通过它来运行。
JDK:JAVA Developments Kits,使JAVA开发的工具包。
J2EE,J2SE,J2ME都包含了不同的J2RE和JDK。
J2EE支持了JAVA的企业级应用,以往人们把这种结构分为两层:Client/Server。当业务逻辑与Sever相连时,一旦业务逻辑发生变化,
就需要重写Server端,当业务逻辑与Client相连时,又需要对所有Client进行维护。系统的可移植性差。直道后来提出了多层体系结构。
--------------------------------------------------------------------------------------------------------------------------------------------------
组件,容器与服务器:如果把体系结构看成是对应用系统的横向分层,那么每一层又可以分为组件,容器,服务器。
什么是组件呢?组件是对可重用代码的封装,用来完成系统部分功能。
J2EE中定义了三类组件:客户端应用程序(Applet组件)
Web组件:Jsp或Servlet
业务逻辑组件:EJB
容
器与服务器:组件不能独立运行,需要有人提供与性的环境,这个人就是容器,容器把组件和底层平台分离开,J2EE体系中的任何组件都必须部署到容器中才能
运行,J2EE规范中定义了三类容器:客户端容器,WEB容器,EJB容器分别对应于上述组件,而所有的容器都必须运行于应用服务器之上,转了一圈终于说
到了正题上,大部分的J2EE应用服务器都直接包含了容器,例如WebLogic,Tomcat,JBoss等
部署描述:向容器提供信息,保证组件在容器上正常运行的过程就是部署,提供信息的文件就是部署描述文件,通常都是标准的XML文件。组件开发完成以后,要按照一定的目录结构组织到一起,容器调用组件时,会先从部署描述文件中读出组件信息,然后加载组件。
---------------------------------------------------------------------------------------------------------------------------------------------
配置过程:
1.下载J2SDK
j2sdk1.5下载地址:http://java.sun.com
一.配置j2sdk1.5.0
1.Windows 系列下配置
我的电脑->属性->高级->环境变量--〉添加系统变量
追加变量名:JAVA_HOME 变量值:C:/j2sdk1.5.0 注:变量值填写J2sdk的安装目录
追加变量名:Path下变量值:%JAVA_HOME%/bin;
追加变量名:CLASSPATH下变量值:.;%JAVA_HOME%/lib;或.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
注:.; 代表当前路径,一定要写,不然在执行的时候 要加“ -cp class文件路径 ”这个参数来指定Class文件的位置
用记事本编辑以下代码,并保存为HelloWorld.java:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
在控制台中输入:
javac HelloWorld.java
如果没有错误输入:
java HelloWorld
看到Hello,World!
J2sdk就配置好了
------------------------------------------------------------------------------------------------------------------------------------------------
2.下载tomcat
地址在:http://tomcat.apache.org/download-55.cgi
对于windows平台来说可以下个Windows Executable版,可以双击运行,根据提示点击下一步,就可完成基本配置,免去了设定环境变量等手动操作。
完成后可以在安装目录下找到下列文件
/bin :存放各种平台下启动和关闭脚本;
/common:/lib 存放服务器和WEB应用都能访问的JAR
/shared:/lib存放WEb应用能访问但服务器不能访问的JAR
/server:/webapps中存放自带的两个应用,manager和admin,用来管理Tomcat,/lib中用来存放服务器能访问但WEB应用不能访问的JAR
/work:tomcat把Jsp生成的servlet文件放在这个目录下
/temp:存放临时文件
/logs:存放日志文件
/conf:存放各种配置文件
---------------------------------------------------------------------------------------------------------------------------------------------
3.配置javaBean
打开记事本:输入如下代码:
package untitled4;
import java.lang.String;
public class Jsp1Bean {
private String sample = "Hello JAVABEAN";
//Access sample property
public String getSample() {
return sample;
}
//Access sample property
public void setSample(String newValue) {
if (newValue!=null) {
sample = newValue;
}
}
}
保存为Jsp1Bean.java
在控制台力编译javac Jsp1Bean.java
然后把得到的Jsp1Bean.Class文件拷贝到 /common/classes/untitled4/ 下
也可以保存到/webapps/ROOT/WEB_INF/class/untitled4/ 下
tomcat都可以找到的
然后在记事本中编辑:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="untitled4.Jsp1Bean"%>
<html>
<jsp:useBean id="ls" class="untitled4.Jsp1Bean" scope="page">
</jsp:useBean>
<%=ls.getSample()%>
</html>
保存为example.jsp保存到tomacat/webApp/ROOT/ 下
启动服务器后,打开IE浏览器并在地址栏中输入:http://localhost/example.jsp
如果看到 "Hello JAVABEAN"。表示javabeans配置成功
-----------------------------------------------------------------------------------------------------------------------------------------
4.配置Servlet
用记事本编辑以下代码,并保存为Hello.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Hello extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");
out.println("<HTML><BODY>");
out.println("Hello!");
out.println("</BODY></HTML>");
}
}
将编译好的class文件
保存在tomcat/common/classes目录下
也可以保存在tomcat/webApp/ROOT/classes/ 下
注册Servlet
用记事本打开C:/tomcat/webapps/ROOT/WEB-INF/web.xml
在
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; version="2.4">
<display-name>Welcome to Tomcat</display-name>
<description>Welcome to Tomcat</description>
- <!-- JSPC servlet mappings start
-->
.
.
.
- <!-- JSPC servlet mappings end
-->
</web-app>
之间相应位置追加以下两组数据:
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/servlet/Hello</url-pattern>
</servlet-mapping>
*注:<servlet-name>...</servlet-name>为servlet在服务器中的ID
<servlet-class>...</servlet-class>为servlet-class类名
<url-pattern>...</url-pattern>为镜像路径亦虚拟路径
C:/tomcat/common/classes为类共享目录,亦可在:
C:/tomcat/webapps/你的应用目录/WEB-INF/web.xml
中注册,不过在应用servlet时须加入/tomcat/webapps/下的目录名。
重新启动服务器后,打开IE浏览器并在地址栏中输入:http://localhost:8080/servlet/Hello
显示:“Hello!”,则配置成功!
至此servlet运行环境配置、调试完成。