📄 checkout.java
字号:
package goodTrans;
import java.io.IOException;
import java.io.PrintWriter;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @version 1.0
* @author
*/
public class CheckOut extends HttpServlet {
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=gb2312");
PrintWriter out = resp.getWriter();
HttpSession session = req.getSession();
ServletContext sc = session.getServletContext();
session.removeAttribute("handle");
try {
InitialContext context = new InitialContext();
//从最初的上下文中
//查找队列连接工厂
QueueConnectionFactory qcf =
(QueueConnectionFactory) context.lookup("QCF");
//从队列连接工厂
//创建新的队列连接
QueueConnection conn = qcf.createQueueConnection();
// 在创建了QueueConnection之后 , 就进行启动 , 这样它就可以用于处理传入的消息 。 //开始连接
conn.start();
// 现在 , 可以用QueueConnection来创建QueueSession对象 。 在创建了QueueSession对象之后 , 就必须指定该会话是否要进行处理 , 以及它应该如何应答任何接收到的消息 。 在本文中 , 我们将不处理会话 , 消息应答也将由基础JMS提供者自动进行处理 。 //从队列连接中创建新的队列会话
//该会话不应该进行处理
//而应该使用自动会话应答
QueueSession sessionMsg =
conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
//在发送和接收任何消息之前 , 您必须从JNDI中检索Queue对象 , 获得消息将发送到哪儿以及从何处读取的详细资料 。 为达此目的 , 可以按照类似的方式使用QueueConnectionFactory来查找上下文对象 。 同样 , 您可以选择传送到查找的对象的名称 , 如同您在下面将配置的一样 。 //查找用于发送和接收
//来自最初上下文中的消息
Queue q = (Queue) context.lookup("Q");
//在找到该Queue对象之后 , 就可以在创建QueueSender对象时进行使用 , 它可用于向队列发送消息 。 QueueSender对象是从现有的QueueSession对象中创建的 : //使用队列会话创建新的队列发送者。
//该发送者应该创建成能把消息发送到
//队列
QueueSender sender = sessionMsg.createSender(q);
//在创建了QueueSender对象之后 , 现在 , 您就可以创建和发送消息了 。 和QueueSenders类似 , 可以使用Session对象来创建JMS消息 。 在本文中 , 您将创建一个TextMessage消息 , 其消息数据可以用您选择的某些文本进行初始化 。 //使用该队列会话创建一个文本消息
//将此消息的数据初始化为
//您选择的某个字符串
TextMessage sentMessage =
sessionMsg.createTextMessage("trade finished");
//使用该队列发送者发送sentMessage对象
sender.send(sentMessage);
out.println("交易完成!谢谢您的光临!欢迎下次再来!");
} catch (Exception ne) {
ne.printStackTrace();
}
}
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -