servlet,1 - 手写第一个servlet程序 - 小易Java笔记

声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定

1. 建立程序的文件结构

==>找到tomcat的安装目录,在webapps目录下新建一个名为servlet的目录

==>在servlet目录下新建名为WEB-INF的目录

==>在WEB-INF目录下新建一个名为classes的目录

==>在WEB-INF目录下新建一个名为web.xml的文件

==>在classes目录下新建一个名为FirstServlet.java的文件

2. 用文本编辑工具(如:EditPlus)打开FirstServlet.java,并写入一下代码:

package com.smalle;
 
import java.io.*;
import javax.servlet.*;
 
public class FirstServlet extends GenericServlet{
        public void service(ServletRequest req,ServletResponse res)throws ServletException,IOException{
                OutputStream out = res.getOutputStream();
                out.write("hello servlet!".getBytes());
        }
}

3. 编译.java文件为.class文件。但此时编译是会出问题的,需要把相应的servlet的jar包加入到classpath中。

重新设置环境变量:==> 运行 ==> cmd ==> d: ==> 回车 ==> cd D:\Java\tomcat6\webapps\servlet\WEB-INF\classes ==> 回车 ==> set classpath=%classpath%;D:\Java\tomcat6\lib\servlet-api.jar ==> 回车

编译:==> javac -d . FirstServlet.java ==>回车

:==>如果在classes下出现了com目录,且com下有一个smalle目录,smalle目录下有文件FirstServlet.class则表示编译成功

==>%classpath%表示原来的classpath的值,classpath=%classpath%就是把原来的classpath值赋给现在的classpath,然后在后面加上分号和要加入的jar包

==>-d 表示如果.java文件有包名就要加上-d,. 表示把编译的.class文件保存在当前目录,他们之间是有空格的

4. 用文本编辑工具(如:EditPlus)打开web.xml,并写入一下代码:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 
    <display-name>servlet</display-name>
    <servlet>
      <servlet-name>FirstServlet</servlet-name>
      <servlet-class>com.smalle.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping>
 
</web-app>

5. 启动tomcat,进入到D:\Java\tomcat6\bin目录下双击运行startup.bat

6. 打开浏览器,地址栏中输入http://localhost:8080/servlet/FirstServlet回车,若页面输出hello servlet!那么恭喜您第一个servlet程序手写成功!

附:关于Tomcat安装或者启动异常请参考:http://blog.csdn.net/oldinaction/article/details/39754635