SERVLET
放在
你的目录\WEB-INF\classes\这里放servlet然后用 localhost:8080/yourSiteName/servlet/Servlet名 来访问。另外,如果有需要,可以通过定义web.xml里的<servlet>项来进行限制访问和一系列的东东。

解决方案 »

  1.   

    Try it:(To http://jakarta.apache.org download TOmcat4.* Version and Install)
    1.C:\tmp\test Directory Create a class SendMailServlet.javaimport javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import sun.net.smtp.*;public class SendMailServlet extends HttpServlet {
      public static String MAIL_FROM = "from";
      public static String MAIL_TO = "to";
      public static String MAIL_SUBJECT = "subject";
      public static String MAIL_BODY = "body";
      public static String MAIL_HOST = "mailhost";
      public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html; charset=BIG5");
        PrintWriter out = resp.getWriter();
        out.println("<form method=POST action=\"" + req.getRequestURI() + "\">");
        out.println("<table>");
        out.println("<tr><td>send mail server:</td>");
        out.println("<td><input type=text name=" + MAIL_HOST + " size=30></td></tr>");
        out.println("<tr><td>from:</td>");
        out.println("<td><input type=text name=" + MAIL_FROM + " size=30></td></tr>");
        out.println("<tr><td>to:</td>");
        out.println("<td><input type=text name=" + MAIL_TO + " size=30></td></tr>");
        out.println("<tr><td>subject:</td>");
        out.println("<td><input type=text name=" + MAIL_SUBJECT + " size=30></td></tr>");
        out.println("<tr><td>text:</td>");
        out.println("<td><textarea name=" + MAIL_BODY + " cols=40 rows=10></textarea></td></tr>");
        out.println("</table><br>");
        out.println("<input type=submit value=\"Send\">");
        out.println("<input type=reset value=\"Reset\">");
        out.println("</form>");
        out.flush();
      }  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
        resp.setContentType("text/html; charset=gb2312");
        PrintWriter out = new PrintWriter(resp.getOutputStream());
        String from = req.getParameter(MAIL_FROM);
        String to = req.getParameter(MAIL_TO);
        String subject = req.getParameter(MAIL_SUBJECT);
        String body = req.getParameter(MAIL_BODY);
        String mailhost = req.getParameter(MAIL_HOST);
        try {
          SmtpClient mailer = new SmtpClient(mailhost);
          mailer.from(from);
          mailer.to(to);
          PrintStream ps = mailer.startMessage();
          ps.println("From: " + from);
          ps.println("To: " + to);
          ps.println("Subject: " + subject);
          ps.println(body);
          mailer.closeServer();
          out.println("Success!");
        }
        catch (Exception ex)
        {
          out.println("An error about:" + ex.getMessage());
        }
        out.flush();
      }  public void init(ServletConfig cfg) throws ServletException {
        super.init(cfg);
      }
      public void destroy() {
        super.destroy();
      }
    }2.C:\tmp\test>dir
     磁碟區 C 中的磁碟沒有標籤。
     磁碟區序號:  98D4-FB0A 目錄:  C:\tmp\test2003/02/08  01:49p      <DIR>          .
    2003/02/08  01:49p      <DIR>          ..
    2003/02/07  07:23p                 881 HelloWorld2.class
    2003/02/07  07:17p                 741 HelloWorld2.java
    2003/02/08  01:49p               2,663 SendMailServlet.java <==========================
                   3 個檔案           4,285 位元組
                   2 個目錄   6,969,479,168 位元組可用C:\tmp\test>set classpath=.;D:\Tomcat 4.1\common\lib\servlet.jarC:\tmp\test>javac SendMailServlet.javaC:\tmp\test>dir
     磁碟區 C 中的磁碟沒有標籤。
     磁碟區序號:  98D4-FB0A 目錄:  C:\tmp\test2003/02/08  01:53p      <DIR>          .
    2003/02/08  01:53p      <DIR>          ..
    2003/02/07  07:23p                 881 HelloWorld2.class
    2003/02/07  07:17p                 741 HelloWorld2.java
    2003/02/08  01:53p               3,040 SendMailServlet.class <==========================
    2003/02/08  01:49p               2,663 SendMailServlet.java
                   4 個檔案           7,325 位元組
                   2 個目錄   6,969,475,072 位元組可用C:\tmp\test>
    Copy SendMailServlet.class to D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class3.Config Tomcat:
      1.D:\Tomcat 4.1\webapps add a new directory newproject
        D:\Tomcat 4.1\webapps\newproject\WEB-INF
        D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class
        D:\Tomcat 4.1\webapps\newproject\WEB-INF\web.xml
    =>Detail:
    <?xml version="1.0" encoding="ISO-8859-1"?><!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>test2</servlet-name>  
           <servlet-class>SendMailServlet</servlet-class>  
        </servlet>  
        <servlet-mapping>  
           <servlet-name>test2</servlet-name>  
           <url-pattern>/servlet/SendMailServlet</url-pattern>  
        </servlet-mapping>
    </web-app>4. Start Tomcat
       Run:
       http://localhost:8080/newproject/servlet/SendMailServlet