import javax.servlet.*;
import javax.servlet.http.*;import java.io.*;
import java.util.*;import sun.net.smtp.SmtpClient;import com.wrox.util.*;String message, msgFrom, msgTo, msgSubject;private void getParameters(HttpServletRequest req)
throw ServeletException,IOExcption { StringBuffer tempStringBuffer=new StringBuffer(1024); msgSubject="Tech Suppor Request";
msgTo="[email protected]"; msgFrom=req.getParameter("txtEmail");
tempStringBuffer.append("From:");
tempStringBuffer.append(req.getParameter("txt"First"));
tempStringBuffer.append(" ");
tempStringBuffer.append(req.getParameter("txtLast"));
tempStrigBuffer.append("\n");
tempStrigBuffer.append("Phone ");
tempStringBuffer.append(req.getParameter("txtPhone"));
tempStrigBuffer.append("\n");
tempStrigBuffer.append("Email:");
tempStringBuffer.append(req.getParameter("txtEmail"));
tempStrigBuffer.append("\n\n");
tempStrigBuffer.append("Software ");
tempStringBuffer.append(req.getParameter("ddlb_software"));
tempStrigBuffer.append("\n ");
tempStrigBuffer.append("OS");
tempStringBuffer.append(req.getParameter("ddlb_os"));
tempStrigBuffer.append("\n\n ");
tempStrigBuffer.append("Problem:");
tempStringBuffer.append(req.getParameter("txtProblem"));
tempStrigBuffer.append("\n");

message=tempStringBuffer.toString();
}
privat boolean sendMail(){

PrintStream out;
SmtpClient send;

try {
send =new SmtpClient("mail.xyz.com");
send.from(msgFrom);
send.to(msgTo);

out=send.startMessage();

out.println("From: "+msgFrom);
out.println("To: "+msgTo);
out.printnln("Subject: "+msgSubject);
out.println("\n--------------------\n");
out.println(message);
out.println("\r\n");
out.println("\n-----------------------\n");
out.flush();
out.close();
send.closeServer();
}
catch (IOException e) {
log("Error occerred while send mail", e);
return false;
}
return true
}

解决方案 »

  1.   

    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.net.*;
    import java.sql.*;
    import java.text.DateFormat;
    import java.util.Locale;public class test3 extends HttpServlet {
        public void init() {
            try {
                Class.forName("com.imaginary.sql.msql.MsqlDriver").newInstance();
            }
            catch( Exception e ) {
            }
        }
    //Sign guestbook
        public void doPost(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
           String server = "factory";
    String sid = "COSMOS";
    String user = "COSMOS";
    String pass = "COSMOS";
    String port = "1521";
    String url = "jdbc:oracle:thin:@" + server + ":" + port +":" + sid;
            ServletOutputStream out = res.getOutputStream();
            java.util.Date date = new java.util.Date();
            String name, email, commenta;
            Connection conn = null;
            Exception err = null;
            String[] tmp;
    //init//accept name 
            tmp = req.getParameterValues("name");
            if( tmp == null || tmp.length != 1 ) {
                name = null;
            }
            else {
                name = tmp[0];
            }
    //accept email  
            tmp = req.getParameterValues("email");
            if( tmp == null || tmp.length != 1 ) {
                email = null;
            }
            else {
                email = tmp[0];
            }
    //accept comments       
            tmp = req.getParameterValues("commenta");
            if( tmp == null || tmp.length != 1 ) {
                commenta = null;
            }
            else {
                commenta = tmp[0];
            }
      //header
            res.setContentType("text/html");
            printPageHeader(out);
            if( name.length() < 1 ) {
                out.println("You must specify a valid name!");
                printCommentForm(out);
                printPageFooter(out);
                return;
            }
            if( email.length() < 3 ) {
                out.println("You must specify a valid email address!");
                printCommentForm(out);
                printPageFooter(out);
                return;
            }
            if( email.indexOf("@") < 1 ) {
                out.println("You must specify a valid email address!");
                printCommentForm(out);
                printPageFooter(out);
                return;
            }
            if( commenta.length() < 1 ) {
                out.println("You left no comments!");
                printCommentForm(out);
                printPageFooter(out);
                return;
            }
            //access to mSQL
            try {
                Statement statement;
                ResultSet result;
                conn = DriverManager.getConnection(url,user,pass);
                statement = conn.createStatement();
                commenta = fixComment(commenta);
              statement.executeUpdate("INSERT into comments " +
                                        "( email, name, commenta) "+
                                      "VALUES (" + email +
                                       "', '" + name + "', '" +
                                      commenta + "')");
               statement.close();
            }
            catch( java.sql.SQLException e ) {
                e.printStackTrace();
                err = e;
            }
            finally {
                if( conn != null ) {
                    try { conn.close(); }
                    catch( Exception e ) { }
                }
            }
            if( err != null ) {
                out.println("An error occurred on save: " + err.getMessage());
            }
            else {
                printCommentForm(out);
                printComments(out);
            }
        }
        
        
    //browser  the guestbook
        public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
            String server = "factory";
    String sid = "COSMOS";
    String user = "COSMOS";
    String pass = "COSMOS";
    String port = "1521";
    String url = "jdbc:oracle:thin:@" + server + ":" + port +":" + sid;
            ServletOutputStream out = res.getOutputStream();
            Connection conn = null;
            Exception err = null;
            res.setContentType("text/html");
            printPageHeader(out);
            printCommentForm(out);
            printComments(out);
            printPageFooter(out);    }    public String getServletInfo() {
            return "Guest Book Servlet v1.0\nCopyright \251 1997 George Reese";
        }    private void printCommentForm(ServletOutputStream out)
        throws IOException {
            out.println("<CENTER>");
            out.println("<FORM ACTION=\"/examples/servlet/test3\" METHOD=\"POST\">");
            out.println("<TABLE>");
            out.println("<TR ALIGN=\"LEFT\">");
            out.println("<TD>Name:</TD>");
            out.println("<TD><INPUT TYPE=\"TEXT\" NAME=\"name\" SIZE=30></TD>");
            out.println("<TD><INPUT TYPE=\"SUBMIT\" VALUE=\"Save\"></TD>");
            out.println("</TR>");
            out.println("<TR ALIGN=\"LEFT\">");
            out.println("<TD>Email:</TD>");
            out.println("<TD><INPUT TYPE=\"TEXT\" NAME=\"email\" SIZE=30></TD>");
            out.println("</TR>");
            out.println("<TR ALIGN=\"LEFT\">");
            out.println("<TD>Comments:</TD>");
            out.println("</TR>");
            out.println("<TR ALIGN=\"CENTER\">");
            out.println("<TD COLSPAN=3>");
            out.println("<TEXTAREA NAME=\"commenta\" COLS=40 ROWS=7>");
            out.println("</TEXTAREA></TD>");
            out.println("</TR>");
            out.println("</TABLE>");
            out.println("</FORM>");
            out.println("</CENTER>");
        }    private void printComments(ServletOutputStream out)
        throws IOException {
            Connection conn = null;
            
            try {
                DateFormat fmt = DateFormat.getDateInstance(DateFormat.FULL,
                                                            Locale.getDefault());
                String server = "factory";
    String sid = "COSMOS";
    String user = "COSMOS";
    String pass = "COSMOS";
    String port = "1521";
    String url = "jdbc:oracle:thin:@" + server + ":" + port +":" + sid;
                Statement stmt;
                ResultSet results;
                conn = DriverManager.getConnection(url,user,pass);
                stmt = conn.createStatement();
         results = stmt.executeQuery("SELECT name, email,commenta  FROM cosmos.comments ");
                out.println("<DL>");
                while( results.next() ) {
                    String name, email, cmt;
                    java.util.Date date;                name = results.getString(1);
                    if( results.wasNull() ) {
                        name = "Unknown User";
                    }
                    email = results.getString(2);
                    if( results.wasNull() ) {
                        email = "user@host";
                    }
                    out.println("<DT><B>" + name + "</B> (" + email + ") on " );
                }
                out.println("</DL>");
            }
            catch( SQLException e ) {
                out.println("dataerr " );
            }
            if( conn != null ) {
                try { conn.close(); }
                catch( Exception e ) { }
            }
        }
        
        private void printPageHeader(ServletOutputStream out)
        throws IOException {
            out.println("<HTML>");
            out.println("<HEAD>");
            out.println("<TITLE>?</TITLE>");
            out.println("</HEAD>");
            out.println("<BODY>");
            out.println("<CENTER><H1><B>?</B></FONT></CENTER>");
        }    private void printPageFooter(ServletOutputStream out)
        throws IOException {
            out.println("</BODY>");
            out.println("</HTML>");
            out.flush();
        }    private String noHTML(String cmt) {
            if( cmt.indexOf("<") != -1 || cmt.indexOf(">") != -1 ) {
                String tmp = "";            for(int i=0; i<cmt.length(); i++) {
                    char c = cmt.charAt(i);                if( c == '<' ) {
                        tmp = tmp + "<";
                    }
                    else if( c == '>' ) {
                        tmp = tmp + ">";
                    }
                    else {
                        tmp = tmp + c;
                    }
                }
                cmt = tmp;
            }
            return cmt;
        }    private String fixComment(String commenta) {
            if( commenta.indexOf("'") != -1 ) {
                String tmp = "";
                
                for(int i=0; i<commenta.length(); i++) {
                    char c = commenta.charAt(i);
                    
                    if( c == '\'' ) {
                        tmp = tmp + "\\'";
                    }
                    else {
                        tmp = tmp + c;
                    }
                }
                commenta= tmp;
            }
            return commenta;
        }
    }执行时出错说没有drive
      

  2.   

    //Class.forName("com.imaginary.sql.msql.MsqlDriver").newInstance();
    你用的是orcle数据库,应该用orcle的驱动。而且,Class.forName()放在conn = DriverManager.getConnection(url,user,pass);前比较好。