messageservlet.java

来自「精通NetBeans光盘源代码,很好很好的资料」· Java 代码 · 共 115 行

JAVA
115
字号
/*
 * MessageServlet.java
 *
 * Created on 2006年5月20日, 上午10:17
 */
package org.netbeans.jms;

import java.io.*;
import java.net.*;
import javax.jms.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import java.util.*;

/**
 *
 * @author boyingking
 * @version
 */
public class MessageServlet extends HttpServlet {
    private static String QUEUE_NAME ="queue/OptionQueue";
    private static String CONNECTION_FACTORY="ConnectionFactory";
    private static String PROVIDER_URL="localhost:1099";
    private QueueSender  sender;
    private QueueSession session;
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=gb2312");
        request.setCharacterEncoding("gb2312");
        PrintWriter out = response.getWriter();
        //获取从客户端发送的值
        String bugProduct=request.getParameter("bugProduct");
        String title=request.getParameter("title");
        String name=request.getParameter("name");
        String contactType=request.getParameter("contactType");
        String content=request.getParameter("content");
        Hashtable hash = new Hashtable();
        //将获取的值以键-值对的形式添加到Hashtable对象中
        hash.put("bugProduct",bugProduct);
        hash.put("title",title);
        hash.put("name",name);
        hash.put("contactType",contactType);
        hash.put("content",content);
        try {
            Context ctx = getInitialContext();            
            //查找JMS工厂
            QueueConnectionFactory conFactory =
                    (QueueConnectionFactory) ctx.lookup(CONNECTION_FACTORY);            
            // 创建JMS连接
            QueueConnection connection = conFactory.createQueueConnection();            
            // 创建JMS session对象
            session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);            
            // 查找JMS队列
            javax.jms.Queue chatQueue = (javax.jms.Queue) ctx.lookup(QUEUE_NAME);
            // 创建JMS发送者
            sender = session.createSender(chatQueue);
            // 发送消息
            this.sendMsg(hash);//调用sendMsg方法发送消息
            out.println("<h3>发送消息成功</h3>");            
        } catch(Exception e) {
            e.printStackTrace();
            out.println("发送消息失败<br>");
            out.println(e);
        }
        out.println("<br><h3><a href=options.jsp>返回</a></h3>");
        out.close();
    }
    private Context getInitialContext() throws NamingException{
        Properties env = new Properties();
        env.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        env.put("java.naming.provider.url", PROVIDER_URL);
        return new InitialContext(env);
    }
    
    private void sendMsg(Map msg) throws Exception {
        MapMessage message = session.createMapMessage();
        Set keys = msg.keySet();
        Iterator i = keys.iterator();
        while (i.hasNext()) {
            String key = (String) i.next();
            String val = (String) msg.get(key);
            message.setString(key, val);
        }
        // 将message发送到消息队列
        sender.send(message);
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}

⌨️ 快捷键说明

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