⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 confirmservelt.java

📁 这是一本关于高级软件工程的书籍
💻 JAVA
字号:
package org.tsinghua.netshop;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.tsinghua.netshop.beans.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;

public class ConfirmServelt extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=GBK";

    //Initialize global variables
    public void init() throws ServletException {
    }

    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        String username = (String) request.getSession().getAttribute("username");
        String uname = request.getParameter("uname");
        String phone = request.getParameter("phone");
        String email = request.getParameter("email");
        String postalcode = request.getParameter("postalcode");
        String address = request.getParameter("address");
        String remark = request.getParameter("remark");
        String uid = request.getParameter("uid");
        String total = request.getParameter("total");
        request.getSession().setAttribute("remark",remark);
        People p = new People();
        p.loadByUsername(username);
        p.setUname(uname);
        p.setPhone(phone);
        p.setEmail(email);
        p.setPostalcode(Integer.parseInt(postalcode));
        p.setAddress(address);
        p.update();
        request.getSession().setAttribute("people",p);
        Orderform of = new Orderform();
        of.setUid(Integer.parseInt(uid));
        of.setTotal(Float.parseFloat(total));
        of.setRemark(remark);
        of.insert();
        Hashtable ha = (Hashtable) request.getSession().getAttribute("buylist");
        of.findFidAndDatetime();
        request.getSession().setAttribute("fid",of.getFid());
        Enumeration e = ha.elements();
        String cname = "";
        float count = 0;
        while (e.hasMoreElements()) {
            Goods g = (Goods) e.nextElement();
            Ordersub os = new Ordersub();
            os.setFid(of.getFid());
            os.setPid(g.getPid());
            os.setPname(g.getPname());
            os.setPrice(g.getPrice());
            os.setNumber(g.getbuyNumber());
            os.insert();
            cname = cname + " " + g.getPname();
            count = count + g.getbuyNumber() * g.getPrice();
        }

        // 以下为邮件发送
        String body = "尊敬的用户您好:\n";
        body = body + "\t\t\t\t您于" +of.getDatetime().toLocaleString() + "在美讯产品发布网站中预订了" + cname +
               ",共" + count + "元。为了您能够顺利购物,请在完成汇款后回复此邮件。\n";
        body = body + "\t\t\t\t谢谢\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t美讯产品发布网站";
        try{
        Properties props = new Properties(); //也可用Properties props = System.getProperties();
        props.put("mail.smtp.host", "smtp.sina.com.cn"); //存储发送邮件服务器的信息
        props.put("mail.smtp.auth", "true"); //同时通过验证

//方法二:(如果是在weblogin配置JavaMail:则需指定JNDI名检索
//Context ctx=new InitialContext();
//Session s=(Session)ctx.lookup("MailSession");
//Message msg=new MimeMessage(s);


//这个Session类代表JavaMail 中的一个邮件session. 每一个基于 JavaMail的应用程序至少有一个session但是可以有任意多的session。
//Session类定义全局和每个用户的与邮件相关的属性。这此属性说明了客房机和服务器如何交流信息。


        Session s = Session.getInstance(props, null); //根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
        s.setDebug(true); //设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法

//  一旦创建了自己的Session对象,就是该去创建要发送的消息的 时候了。这时就要用到消息类型(MimeMessage是其中一种类型)。
// Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session。
//  Message类表示单个邮件消息,它的属性包括类型,地址信息和所定义的目录结构。

        Message message = new MimeMessage(s); //由邮件会话新建一个消息对象

//message.setContent("hello","test/plain");//设置消息的内容类型,如果发送的格式有HTML格式就必须设置,
//message.setText("Hello");//发送一般文本格式的消息

//设置邮件,一旦您创建了 Session 和 Message,并将内容填入消息后,就可以用Address确定信件地址了。
//如果想让一个名字出现在电子邮件地址后,也可以将其传递给构造器:
//Address from=new InternetAddress("http://blog.csdn.net/xmqds/archive/2004/07/02/'mailto:xmqds@21cn.com发件人的邮件地址

        Address from = new InternetAddress("billy12151@sina.com"); //发件人的邮件地址
        message.setFrom(from); //设置发件人

        Address to = new InternetAddress(p.getAddress()); //收件人的邮件地址
        message.setRecipient(Message.RecipientType.TO, to); //设置收件人,并设置其接收类型为TO,还有3种预定义类型如下:

//Message.RecipientType.TO
//Message.RecipientType.CC
//Message.RecipientType.BCC

        message.setSubject("欢迎您访问美讯产品发布网站"); //设置主题
        message.setText(body); //设置信件内容
        message.setSentDate(new Date()); //设置发信时间

        message.saveChanges(); //存储邮件信息

// Transport 是用来发送信息的,
// 用于邮件的收发打操作。
        Transport transport = s.getTransport("smtp");
        transport.connect("smtp.sina.com.cn", "登录名", "密码"); //以smtp方式登录邮箱
        transport.sendMessage(message, message.getAllRecipients()); //发送邮件,其中第二个参数是所有已设好的收件人地址
        transport.close();



    }

    catch (MessagingException e1) {
        out.println(e1.toString());
    }
    response.sendRedirect("lastconfirm.jsp");
}


//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException {
    doGet(request, response);
}

//Clean up resources
public void destroy() {
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -