processservlet.java

来自「介绍了j2ee开发常用的学习知识,如servlet,javamail,EJB等知」· Java 代码 · 共 167 行

JAVA
167
字号
/*
 * ProcessServlet.java
 *
 * Created on 2007年11月30日, 下午3:29
 */

package com.study.exercise;

import com.logon.UserBean;
import com.logon.UserBeanFacadeLocal;
import java.io.*;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.naming.NamingException;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author hyl
 * @version
 */
public class ProcessServlet extends HttpServlet {
    
    @Resource(mappedName = "jms/SendPasswordFactory")
    private ConnectionFactory sendPasswordFactory;
    
    @Resource(mappedName = "jms/SendPassword")
    private Topic sendPassword;
    
    @EJB
    private UserBeanFacadeLocal userBeanFacade;
    
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String operation=request.getParameter("operation");
        
        if(operation.equals("logon"))doLogon(request,response);
        if(operation.equals("reg"))doReg(request,response);
        if(operation.equals("retake"))doRetake(request,response);
        
    }
    protected void doLogon(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String id=request.getParameter("userID");
//		将用户ID放入会话
        request.getSession().setAttribute("userid",id);
        String password=request.getParameter("password1");
        String resultpage="/notFindUser.jsp";
        List users = userBeanFacade.findAll();
        boolean flag=true;
        for (Iterator it = users.iterator(); it.hasNext()&&flag;) {
            UserBean ub = (UserBean) it.next();
            if(ub.getUsername().equals(id)&&ub.getPassword().equals(password)){
                resultpage="/logonsuccess.jsp";
                flag=false;
            }
        }
        RequestDispatcher dispatcher =getServletContext().getRequestDispatcher(resultpage);
        dispatcher.forward(request, response);
        
    }
    protected void doReg(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String resultpage="/regsucess.jsp";
        String id=request.getParameter("userID");
        String password=request.getParameter("password");
        String password1=request.getParameter("password1");
        String email_address=request.getParameter("email_address");
        if(!password.equals(password1)){
            request.setAttribute("promote","两次密码不一致!");
            resultpage="/reg.jsp";
           
        }else{
            List users = userBeanFacade.findAll();
            boolean flag=true;
            for (Iterator it = users.iterator(); it.hasNext()&&flag;) {
                UserBean ub = (UserBean) it.next();
                if(ub.getUsername().equals(id)){
                    request.setAttribute("promote","用户名已经存在!");
                    resultpage="/reg.jsp";
                    flag=false;
                }
            }
            if(flag){//注册新的用户
                UserBean newuser=new UserBean();
                newuser.setEmail(email_address);
                newuser.setUsername(id);
                newuser.setPassword(password);
                userBeanFacade.create(newuser);
                resultpage="/regsucess.jsp";
            }
        }
         RequestDispatcher dispatcher =getServletContext().getRequestDispatcher(resultpage);
            dispatcher.forward(request, response);
    }
    protected void doRetake(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        //发送消息给队列
        PrintWriter out =response.getWriter();
        String userid=(String)request.getSession().getAttribute("userid");
        Connection connection = null;
        Session session = null;
        try {
            connection = sendPasswordFactory.createConnection();
            session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
            MessageProducer messageProducer = session.createProducer(sendPassword);
            TextMessage message = session.createTextMessage();
            //将用户ID 发送给消息驱动EJB
            message.setText(userid);
            // Publish the message
            
            messageProducer.send(message);
            messageProducer.close();
            connection.close();
            response.sendRedirect("sendpassword.jsp");
            
        } catch (JMSException ex) {
            ex.printStackTrace();
        }
    }
    
    // <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 + -
显示快捷键?