严重警告:知道tomcat的人不要往下看<o:p></o:p>
开场白:比较枯燥、相当无味<o:p></o:p>
开始了<o:p></o:p>
需要什么?<o:p></o:p>
Jdk和tomcat
我的版本: j2sdk<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">1.4.1</st1:chsdate>和tomcat-4.1.18
什么,还没有这两个东东?那就请您不要在往下看了,赶快狗狗去或者email去.
安装和配置<o:p></o:p>
把你的jdk装了吧,就装在你的d盘如何? D:\j2sdk<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">1.4.1</st1:chsdate>
把tom先生的猫(tomcat)也解压缩了吧,也放在d盘算了, D:\tomcat-<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">4.1.18</st1:chsdate>
设置你的系统环境变量,为了让我的这个成为傻瓜式的,请原谅我的罗嗦.
我的电脑—右键—高级—环境变量—系统变量—
新建
变量名: java_home
变量值: D:\j2sdk<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">1.4.1</st1:chsdate>
编辑
变量名: Path
变量值: D:\j2sdk<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">1.4.1</st1:chsdate>\bin\;(在最前面加)
ok,确定就行了
启动<o:p></o:p>
在你的D:\tomcat-<st1:chsdate isrocdate="False" month="12" day="30" islunardate="False" w:st="on" year="1899">4.1.18</st1:chsdate>\bin\下找到startup.bat,用老鼠点她两下,让她运行起来吧.
在你的ie地址栏输入: http://localhost:8080/
看到
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape fillcolor="#00e4a8" id="_x0000_s1026" type="#_x0000_t75" style="WIDTH: 414pt; HEIGHT: 154.1pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\05\clip_image001.png" o:title=""></v:imagedata><v:shadow color="#1c1c1c"></v:shadow><w:wrap type="none"></w:wrap><w:anchorlock></w:anchorlock></v:shape>
恭喜你,你的配置工作做好了.
来hellochina一下<o:p></o:p>
所有程序介绍的书第一个例子恐怕都是helloworld,我们来个hellochian如何
在你的tomcat下建立一个文件夹,就叫myOne吧
myOne下建个文件夹WEB-INF
WEB-INF下建两个文件夹:classes和lib
照着写吧,不要问为什么?想你的程序运行起来,就别写错了.
<o:p> </o:p>
用你的记事本写hello.jsp放到你的myOne下面吧
<html>hellochina</html>
什么,还不知道html为何物?那你还是学习学习吧,写的不好,至少看的明白吧。
用你的记事本写web.xml放到WEB-INF下吧
<?xml version="1.0" encoding="gb2312"?><o:p></o:p>
<o:p> </o:p>
<!DOCTYPE web-app<o:p></o:p>
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"<o:p></o:p>
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><o:p></o:p>
<o:p> </o:p>
<web-app><o:p></o:p>
<o:p> </o:p>
<!-- Action Servlet Configuration --><o:p></o:p>
<servlet><o:p></o:p>
<servlet-name>action</servlet-name><o:p></o:p>
<!-- Specify servlet class to use:<o:p></o:p>
- Struts1.0.x: ActionComponentServlet<o:p></o:p>
- Struts1.1: ActionServlet<o:p></o:p>
- no Struts: TilesServlet<o:p></o:p>
--> <o:p></o:p>
<!-- <servlet-class>org.apache.struts.tiles.ActionComponentServlet</servlet-class> --> <o:p></o:p>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <o:p></o:p>
<!-- <servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class> --><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify configuration file names. There can be several comma <o:p></o:p>
separated file names<o:p></o:p>
--> <o:p></o:p>
<o:p></o:p>
<o:p> </o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify Tiles debug level.<o:p></o:p>
O : no debug information<o:p></o:p>
1 : debug information<o:p></o:p>
2 : more debug information<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-debug</param-name><o:p></o:p>
<param-value>1</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify Digester debug level. This value is passed to Digester<o:p></o:p>
O : no debug information<o:p></o:p>
1 : debug information<o:p></o:p>
2 : more debug information<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-parser-details</param-name><o:p></o:p>
<param-value>0</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify if xml parser should validate the Tiles configuration file.<o:p></o:p>
true : validate. DTD should be specified in file header.<o:p></o:p>
false : no validation<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-parser-validate</param-name><o:p></o:p>
<param-value>true</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p> </o:p>
<!-- Struts configuration, if Struts is used --><o:p></o:p>
<init-param><o:p></o:p>
<param-name>config</param-name><o:p></o:p>
<param-value>/WEB-INF/struts-config.xml</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>validate</param-name><o:p></o:p>
<param-value>true</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>debug</param-name><o:p></o:p>
<param-value>2</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>detail</param-name><o:p></o:p>
<param-value>2</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<load-on-startup>2</load-on-startup><o:p></o:p>
</servlet><o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<!-- Action Servlet Mapping --><o:p></o:p>
<servlet-mapping><o:p></o:p>
<servlet-name>action</servlet-name><o:p></o:p>
<url-pattern>*.do</url-pattern><o:p></o:p>
</servlet-mapping><o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<!-- The Welcome File List --><o:p></o:p>
<welcome-file-list><o:p></o:p>
<welcome-file>login.jsp</welcome-file><o:p></o:p>
</welcome-file-list><o:p></o:p>
<o:p> </o:p>
<!-- Struts Tag Library Descriptor --><o:p></o:p>
<o:p></o:p>
<o:p></o:p>
</web-app><o:p></o:p>
什么,太长了,写的辛苦?ctrl+c和ctrl+v会吧?
什么,看不懂?我有叫你看明白吗?
把你的tomcat重新启动(就是关了,再打开)一下吧.
<o:p> </o:p>
在你的ie地址栏输入: http://localhost:8080/hello.jsp
好了
看到结果了吧。就是一句:hellochina。
怎么,觉得太麻烦了?为写这么简单个东东,搞这么多的名堂,太“脱裤子放屁”了吧?
没有人叫你用这个来写一个helloworld的才程序啊。不要觉得它简单,学问可大着呢!好了,当你看到这个例子的结果的时候,那就该对你说:欢迎你,你已经看到“用java开发三层结构程序”的门了。重申:你只是看到门了,还没走到门边,就更别说入门了,继续努力吧,好戏还在后头呢!
本章后话<o:p></o:p>
还记得我们第一个例子的目录结构吗?一定要把你的应用放在tomcat的webapps下面,而且你的应用中一定要有WEB-INF,在WEB-INF下一定要有web.xml,当然在WEB-INF下的文件夹classes和文件夹lib对于你现在来说还没什么用,但是你就先这样照葫芦画瓢吧。将来把你的程序的JAVA类放在classes里,把需要的JAR包放在lib里。
为了让你把目录结构看的更明白,我画了个很丑的东西(圆柱表示文件夹,圆角矩形表示文件)。
好了,希望你的myOne程序一切顺利。
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<v:group coordsize="6480,2652" id="_x0000_s1027" coordorigin="2340,13296" style="MARGIN-TOP: 7.8pt; Z-INDEX: 2; LEFT: 0px; MARGIN-LEFT: 27pt; WIDTH: 324pt; POSITION: absolute; HEIGHT: 132.6pt; TEXT-ALIGN: left"><v:shapetype o:spt="132" coordsize="21600,21600" id="_x0000_t132" path="m10800,qx,3391l,18209qy10800,21600,21600,18209l21600,3391qy10800,xem,3391nfqy10800,6782,21600,3391e"><v:path o:extrusionok="f" o:connectangles="270,270,180,90,0" o:connecttype="custom" textboxrect="0,6782,21600,18209" gradientshapeok="t" o:connectlocs="10800,6782;10800,0;0,10800;10800,21600;21600,10800"></v:path></v:shapetype><v:shape id="_x0000_s1028" type="#_x0000_t132" style="LEFT: 2520px; WIDTH: 900px; POSITION: absolute; TOP: 13452px; HEIGHT: 1404px"></v:shape><v:shape id="_x0000_s1029" type="#_x0000_t132" style="LEFT: 4140px; WIDTH: 1260px; POSITION: absolute; TOP: 13296px; HEIGHT: 780px"></v:shape><v:shape id="_x0000_s1030" type="#_x0000_t132" style="LEFT: 6480px; WIDTH: 900px; POSITION: absolute; TOP: 13452px; HEIGHT: 624px"></v:shape><v:shape id="_x0000_s1031" typ="">