|   
 1.JDK的配置: 
Path:c:\jdk1.4\bin; (目的是在任何位置都可以执行javac, java, jar等命令) 
ClassPath:.;c:\jdk1.4\lib\dt.jar;C:\jdk1.4\lib\tools.jar;c:\jdk1.4\lib\j2ee.jar; 
注意:“.”代表当前路径。j2ee.jar包括了servlet等类,否则可能出现编译servlet文件时找不到servlet和HttpServletResponse等类的错误。 
  
2.Tomcat必须的配置: 
Java_Home: 如:c:\jdk1.4; 
CATALINA_HOME:(也就是Tomcat安装的根目录)如:C:\JBuilder9\thirdparty\jakarta-tomcat-4.1.24-LE-jdk14 
  
3.ANT必须的配置: 
ANT_HOME:也就是Ant安装的根目录 
还要将Ant_Home\bin添加到Path中(目的是在任何位置都可以执行ant命令)。 
  
  
4.JAR的使用: 
jar的用法很简单,只要将JDK配置正确,就可以使用jar命令来打包.jar文件了。 
如我写了一个简单的访问mysql数据库的servlet,代码如下: 
  
=============Servlet1.java===================== 
//这是用JBuilder向导生成的servlet 
  
package untitled4; 
  
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import java.util.*; 
import java.sql.*; 
  
  
  
public class Servlet1 extends HttpServlet { 
   
  private static final String CONTENT_TYPE = "text/html; charset=GBK"; 
   
  //初始化全局变量 
  public void init() throws ServletException { 
  } 
   
  //处理 Get 请求 
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType(CONTENT_TYPE); 
  
    String r = "";                      //要打印到屏幕上的变量 
    ResultSet rs = null;                 //结果集 
    Statement stmt = null;               //SQL语句 
    Connection conn = null;             //数据库连接 
  
    PrintWriter out = response.getWriter(); 
  
    try { 
  
      try { 
        Class.forName("com.mysql.jdbc.Driver");          //装载mysql的驱动 
        conn = DriverManager.getConnection(            //连接到指定的数据库,用户root,密码为空 
            "jdbc:mysql://localhost/mydb", "root", ""); 
        stmt = conn.createStatement();                   //创建SQL语句对象 
        String queryString = "select * from mytable";       //构造查询语句 
        rs = stmt.executeQuery(queryString);              //执行查询,如果是insert, update, delete 则使用executeUpdate方法。 
  
        while (rs.next()) {                              //如果查询返回的结果集不为空则循环 
          String name = rs.getString("name");            //得到name字段的值 
          String id = rs.getString("id");                 //得到id字段的值 
          r = r + ": "name + ", " + id;                   //得到要打印的变量值  
        } 
      } 
      finally { 
        if (rs != null) { 
          rs.close();                                    //关闭结果集 
        } 
  
        if (stmt != null) { 
          stmt.close();                                  //关闭SQL语句对象 
        } 
  
        if (conn != null) { 
          conn.close();                                  //关闭数据库连接对象 
        } 
  
      } 
    } 
    catch (SQLException e) { 
    } 
    catch (ClassNotFoundException e) { 
    } 
    
    //输出变量r的值 
    out.println("<HTML>"); 
    out.println("<BODY>"); 
    out.println("r="); 
    out.println(r); 
    out.println("</BODY>"); 
    out.println("</HTML>"); 
  
  } 
  //清除资源 
  public void destroy() { 
  } 
  
} 
  
  
======================================= 
  
先使用javac编译,javac -d . Servlet1.java,  
如图: 
  
-d .是指在当前路径下生成代码中指定的包的名字命名的文件夹,并将编译好的.class文件放在这个文件夹中。 
本例中将生成一个名为untitled4的文件夹。编译成功后,会生成一个文件夹untitled4,里面有编译好的Servlet1.class文件。 
  
jar的帮助文件如下: 
  
  
编译成功后就可以打包成.jar文件了,做法如下: 
jar cvf 4.jar untitled4/. 
如图: 
  
注意:4.jar 是打包成功后的.jar文件的名字, untitled4是.class所在的目录,/.是指将指定的目录下的文件递归打在4.jar这个.jar文件中。 
  
在Tomcat的webapps目录下新建一个文件夹b,在b中新建一个文件夹WEB-INF,在WEB-INF中新建文件夹lib,将4.jar这个文件拷贝到b\WEB-INF\lib下。如果不想放在webapps下,则要修改server.xml,添加自己定制的路径: 
  
如果要添加D:\ltf为自己指定的路径/mydir,则在这个文件的<Host> </Host>之间添加如下内容: 
    <Context path="/mydir" docBase="D:\ltf" debug="0" 
        reloadable="true" crossContext="true"> 
       </Context>。这里只是介绍一下还有这种用法,以下均按照程序放在webapps中来示例的。 
  
在b\WEB-INF中新建一个文件web.xml。内容如下: 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
  <servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>untitled4.Servlet1</servlet-class> 
  </servlet> 
  <servlet-mapping> 
    <servlet-name>servlet1</servlet-name> 
    <url-pattern>/servlet1</url-pattern> 
  </servlet-mapping> 
</web-app> 
  
  
写好这个文件后,WEB-INF的目录结构如下: 
  
  
  
lib中的文件如下: 
  
mysql的驱动也可以放在这里,最好是放在Tomcat的Common的Lib目录下,因为在那里可以被部署在tomcat上的所有应用公用。 
在WEB-INF中还有另一个classes目录,这个目录中直接放置没有打包成.jar的.class文件。 
我们的Servlet1.class就可以放在这个目录下,但要将untitled4的文件夹一起保持原来的结构拷贝过来,否则无法运行。 
  
现在我们来看看执行效果: 
启动Tomcat: 
执行Tomcat根目录中的bin目录中的startup.bat, 
出现如下窗口: 
  
  
启动IE,在地址栏输入:http://localhost:8080。“8080”是端口号可以更改,更改的方法是修改tomcat的conf目录中的server.xml。 
  
  
只要将“8080”改为自己指定的数字就行了,如“80”。 
  
我们看看执行结果: 
  
请注意,我输入的是http://localhost:8080/b/servlet1,是servlet1,而不是Servlet1,如果输入Servlet1则会出现错误: 
  
  
为什么?我们的类名分明是大写的Servlet1,而不是小写的servlet1,那为什么输入大写的不行,而小写的就可以了呢?答案在web.xml里,请注意url-pattern部分的值: 
  
  
如果将/servlet1改为/Servlet1则就要输入大写的了,否则就会出现刚才输入大写的错误。 
我的mysql的数据库中的数据如下: 
  
我之所以贴出这张图,是向大家介绍这个mysql的控制台,这个控制台是mysql厂商开发的可视化的工具。我在使用的过程中发现与MS的SQLServer的控制台非常类似。 
目前是0.9.3的beta版,是多语言版。我在使用过程中发现一个小bug就是图中被我用鼠标点击的部分,这部分本来应该是汉字,但显示的却是乱码。虽然有些bug,但这个工具对于我这样的mysql的新手来说却是救命稻草,如果需要可以到mysql的官方网站上下载,期待正式版快点出来。 
  
  
另外:刚才的那个例子也可以打包成.war文件部署,过程如下: 
  
注意这个例子一定是将WEB-INF目录下的文件打包,而不是将外层的文件夹b打包,而且在命令行中WEB-INF必须大写,否则部署后不能正确执行。 
将打包后的c.war拷贝到Tomcat的Webapps的目录下,如图: 
  
这个文件夹中的c目录为Tomcat启动后自动解开的文件。 
启动Tomcat,打开IE,输入:http://localhost:8080/c/servlet1,结果如下: 
  
  
   
 
  |