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 + -
显示快捷键?