这是一个servlet程序
可以放在 jsp文件目录下\web-inf\classes\package\*.class要在classpath里指一下servlet.jar文件的绝对路径http://expert.csdn.net/Expert/topic/1197/1197493.xml?temp=.100918

解决方案 »

  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
      

  2.   

    我用了代码实验室的方法,http://www.code-labs.com/jsp/中的javamail调用,结果出错:org.apache.jasper.JasperException: Unable to compile Note: sun.tools.javac.Main has been deprecated.
    C:\tomcat\work\DEFAULT\ROOT\sendmail_1.java:4: Package javax.mail not found in import.
    import  javax.mail.*;
            ^
    C:\tomcat\work\DEFAULT\ROOT\sendmail_1.java:5: Package javax.mail.internet not found in import.
    import  javax.mail.internet.*;
            ^
    C:\tomcat\work\DEFAULT\ROOT\sendmail_1.java:6: Package javax.activation not found in import.
    import  javax.activation.*;
            ^
    3 errors, 1 warning at org.apache.tomcat.facade.JasperLiaison.javac(JspInterceptor.java:898)
    at org.apache.tomcat.facade.JasperLiaison.processJspFile(JspInterceptor.java:733)
    at org.apache.tomcat.facade.JspInterceptor.requestMap(JspInterceptor.java:506)
    at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java:968)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:875)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
    at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
    at java.lang.Thread.run(Thread.java:536)
      

  3.   

    我把javamail api包里的jar文件,我看了一共有4个,我把解压缩的文件放在jdk下,然后在环境变量里指了一下这4个jar包,哎,各位大哥,帮帮小妹吧,看看程序:
    import java.io.*;import javax.servlet.*;import javax.servlet.http.*; 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=gb2312"); 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(); }} 这段servlet程序怎么用啊,直接存为*.class吗,在哪里看效果啊,总之,我就是不会用,请说得具体一点
      

  4.   

    小妹妳为什么不照我的步骤试试,
    我的练习可以 Work…..加油!
      

  5.   

    a.
    建议妳先到 http://apache.oregonstate.edu/jakarta/tomcat-4/binaries/ Download 
    最新版的 Tomcat: tomcat-4.1.18.exe
    Tomcat 里面包括 Servlet Engine and JSP Engine 妳要看出 Servlet 的效果, 
    方法很多, 其中一个方法就是使用 Tomcat:tomcat-4.1.18.exe 安装方法很简单, 按一下再指定目录即可,
    假设妳安装目录:
    D:\Tomcat 4.1
    不用修改配置文件
      http://localhost:8080
      test it如果有欢迎接口说明tomcat安装配置成功b. 接下来 Config Tomcat:D:\Tomcat 4.1\webapps 
    add a new d newproject
    Create Directory:
    D:\Tomcat 4.1\webapps\newproject
        D:\Tomcat 4.1\webapps\newproject\WEB-INF
        D:\Tomcat 4.1\webapps\newproject\WEB-INF\classesc. Next 用 Servlet 写 JavaMail 方法很多假设妳用 Notepad Compile 时必须把所有用到的 library 加到 Classpath 中
      假设 Servlet Name= SendMailServlet.java放在 : C:\tmp\test
      
      C:\tmp\test>dir
     磁盘区 C 中的磁盘没有卷标。
     磁盘区序号:  98D4-FB0A
     目录:  C:\tmp\test
    2003/02/08  01:49p      <DIR>          .
    2003/02/08  01:49p      <DIR>          ..
    2003/02/08  01:49p               2,663 SendMailServlet.java <==========================
                   3 个档案           4,285 字节
                   2 个目录   6,969,479,168 字节可用
      SendMailServlet.java 内容如下:
    import 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();
      }
    }
    d. Compile SendMailServlet.java设定 Classpath:
    C:\tmp\test>set classpath=.;D:\Tomcat 4.1\common\lib\servlet.jar; D:\Tomcat 4.1\common\lib\mail.jar
    开始 Compile
    C:\tmp\test>javac SendMailServlet.java
      Compile 完成 在C:\tmp\test 目录中会产生一个档案  SendMailServlet.classe. 开始 Run Servlet SendMailServlet.class
       1.Copy SendMailServlet.class to D:\Tomcat4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class
       2. D:\Tomcat 4.1\webapps\newproject\WEB-INF 目录中加一个档案
         web.xml
         内容如下:
        <?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> 3. Start Tomcat
     4. http://localhost:8080/newproject/servlet/SendMailServlet 开启妳测试 Javamail
       的 Page 填好资料 Submit 后就可传 Mail