沈晓峰 发表于 2013-1-28 19:05:51

servlet同时支持Get 和 POST

注意:servlet必须直接继承HttpServlet,直接实现doGet和doPost即可。


package com.haolianluo.csms.back.administer.servlet.user;

import com.haolianluo.csms.back.administer.servlet.common.BaseServlet;
import com.haolianluo.csms.back.administer.entities.UserInfo;
import com.haolianluo.csms.back.administer.entities.Announcement;
import com.haolianluo.csms.back.administer.entities.Question;
import com.haolianluo.csms.back.administer.service.iface.IAnnouncementService;
import com.haolianluo.csms.back.administer.service.iface.IUserInfoService;
import com.haolianluo.csms.back.administer.service.iface.IQuestionService;
import com.haolianluo.csms.back.administer.service.ServiceFactory;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import java.text.SimpleDateFormat;

/**
* Created by IntelliJ IDEA.
* User: sxf
* Date: 2010-2-2
* Time: 13:55:54
* To change this template use File | Settings | File Templates.
*/
public class UserServlet extends HttpServlet/*BaseServlet*/ {
    private final static IUserInfoService userInfoService = ServiceFactory.returnIUserInfoService();
    private final static IQuestionService questionService = ServiceFactory.returnIQuestionService();
    private boolean Login_Result = false;
    private boolean Register_Result = false;

   
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      System.out.println("doGet成功!........");
      response.setContentType("text/html; charset=utf-8");
      PrintWriter out = response.getWriter();
      String contextPath = request.getContextPath();
      String method = request.getParameter("method");
      String pno = request.getParameter("pno");
      if (pno == null) pno = "0";
      String psize = request.getParameter("psize");
      if (psize == null) psize = "5";
      String pos = request.getParameter("pos");
      if (pos == null) pos = "0";
      String allsize = request.getParameter("allsize");
      if (allsize == null) allsize = "0";
      
      
       // super.doGet(request, response);    //To change body of overridden methods use File | Settings | File Templates.
    }

   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      response.setContentType("text/html; charset=utf-8");
      PrintWriter out = response.getWriter();
      String contextPath = request.getContextPath();
      String method = request.getParameter("method");
      String pno = request.getParameter("pno");
      if (pno == null) pno = "0";
      String psize = request.getParameter("psize");
      if (psize == null) psize = "5";
      String pos = request.getParameter("pos");
      if (pos == null) pos = "0";
      String allsize = request.getParameter("allsize");
      if (allsize == null) allsize = "0";
      request.setAttribute("pno", Integer.valueOf(pno));
      request.setAttribute("psize", Integer.valueOf(psize));
      request.setAttribute("pos", Integer.valueOf(pos));
      if (method != null && method.equals("login")) {
            List<String> infoList = userLogin(request);
            request.setAttribute("infoList", infoList);
            if (Login_Result == true) {
                request.getRequestDispatcher("/problem_lsgd.jsp").forward(request, response);
            } else {
                request.getRequestDispatcher("/problem.jsp").forward(request, response);
            }
      } else if (method != null && method.equals("register")) {
            List<String> infoList = userRegister(request);
            request.setAttribute("infoList", infoList);
            if (Register_Result == true) {
                request.getRequestDispatcher("/problem_lsgd.jsp").forward(request, response);
            } else {
                request.getRequestDispatcher("/problem_reg.jsp").forward(request, response);
            }
      } else if (method != null && method.equals("update_pwd")) {
            List<String> infoList = updatePassword(request);
            request.setAttribute("infoList", infoList);
            request.getRequestDispatcher("/problem_mima.jsp").forward(request, response);
      } else if (method != null && method.equals("save_order")) {
            List<String> infoList = saveOrder(request);
            UserInfo userInfo = (UserInfo)request.getSession().getAttribute("userInfo");
            String telephone = "";
            String userID    = "";
            if(userInfo!=null){
                telephone = userInfo.getMobilenumber();
                userID    = userInfo.getId().intValue()+"";
            }
            List<Question> questionList = questionService.findQuestions(Integer.valueOf(pno),Integer.valueOf(psize),userID,telephone);
            if(questionList!=null)allsize = questionService.allsize()+"";
            request.setAttribute("allsize", Integer.valueOf(allsize));
            request.setAttribute("infoList", infoList);
            request.setAttribute("questionList", questionList);
            request.getRequestDispatcher("/problem_lsgd.jsp").forward(request, response);
      }


      //To change body of overridden methods use File | Settings | File Templates.
    }

    private List<String> userLogin(HttpServletRequest request) {
      List<String> infoList = new ArrayList<String>();
      String username = request.getParameter("username");
      username = this.encodingExceptionFilter(username, "utf-8");

      String password = request.getParameter("password");
      password = this.encodingExceptionFilter(password, "utf-8");

      if (username == null || password == null) {
            infoList.add("请输入用户名/密码!");
            Login_Result = false;
            return infoList;
      }

      UserInfo userInfo = userInfoService.findByNameAndPwd(username, password);
      if (userInfo == null) {
            infoList.add("用户名/密码错误,请重新输入!");
            Login_Result = false;
            return infoList;
      } else {
            request.getSession().setAttribute("userInfo", userInfo);
            Login_Result = true;
//                IAnnouncementService iAnnouncementService =
//                        ServiceFactory.returnAnnoucementService();
//                Announcement newAnnouncement = iAnnouncementService.findNewestAnnouncement();
            request.getSession().setAttribute("mobilenumber", userInfo.getMobilenumber());
      }
      return infoList;
    }

    private List<String> userRegister(HttpServletRequest request) {
      List<String> infoList = new ArrayList<String>();
      String user = this.encodingExceptionFilter(request.getParameter("user"), "utf-8");
      String passwordFirst = this.encodingExceptionFilter(request.getParameter("passwordFirst"), "utf-8");
      String passwordSecond = this.encodingExceptionFilter(request.getParameter("passwordSecond"), "utf-8");
      String mobilenumber = this.encodingExceptionFilter(request.getParameter("mobilenumber"), "utf-8");
      String region = this.encodingExceptionFilter(request.getParameter("region"), "utf-8");
      String mobilebrand = this.encodingExceptionFilter(request.getParameter("mobilebrand"), "utf-8");
      String mobilemodel = null;
      //String mobilemodel = new String(httpServletRequest.getParameter("mobilemodel").getBytes("ISO-8859-1"),"gb2312");
      if (mobilebrand != null) {
            String[] array = mobilebrand.split("###");
            if (array != null && array.length == 2) {
                mobilebrand = array;
                mobilemodel = array;
            }
      }
      String email = this.encodingExceptionFilter(request.getParameter("email"), "utf-8");
      UserInfo userInfo = new UserInfo();
      userInfo.setUser(user);
      userInfo.setPassword(passwordFirst);
      userInfo.setMobilenumber(mobilenumber);
      userInfo.setRegion(region);
      userInfo.setMobilebrand(mobilebrand);
      userInfo.setMobilemodel(mobilemodel);
      userInfo.setEmail(email);
      userInfo.setRegistertime(new Date(System.currentTimeMillis()));
      if (userInfoService.findByName(user) != null) {
            infoList.add("用户名已被使用,请重新注册!");
            Register_Result = false;
            return infoList;
      } else if (userInfoService.find(mobilenumber) != null) {
            infoList.add("手机号已被使用,请重新注册!");
            Register_Result = false;
            return infoList;
      } else {
            userInfoService.register(userInfo);
            UserInfo useReg = userInfoService.findByNameAndPwd(user, passwordFirst);
            if (useReg == null) {
                Register_Result = false;
                infoList.add("注册出现异常,请重新注册!");
            } else {
                Register_Result = true;
            }
            request.getSession().setAttribute("userInfo", useReg);
            return infoList;
      }
    }

    private List<String> updatePassword(HttpServletRequest request) {
      List<String> infoList = new ArrayList<String>();
      String pwd1 = this.encodingExceptionFilter(request.getParameter("passwordFirst"), "utf-8");
      String pwd2 = this.encodingExceptionFilter(request.getParameter("passwordSecond"), "utf-8");
      if (pwd1 == null || pwd2 == null) {
            infoList.add("请输入新的密码!");
            return infoList;
      }
      if (!pwd1.equals(pwd2)) {
            infoList.add("两次输入的密码不一致!");
            return infoList;
      }
      UserInfo userInfo = (UserInfo) request.getSession().getAttribute("userInfo");
      userInfo.setPassword(pwd1);
      userInfoService.update(userInfo);
      infoList.add("密码更改成功,请牢记您账号的新密码!");
      return infoList;
    }

    private List<String> saveOrder(HttpServletRequest request) {
      String mobileNumber = this.encodingExceptionFilter(request.getParameter("mobileNumber"), "utf-8");
      String mobileBrandAndModel = this.encodingExceptionFilter(request.getParameter("mobileBrandAndModel"), "utf-8");
      String region = this.encodingExceptionFilter(request.getParameter("region"), "utf-8");
      Question question = new Question();
      question.setUser_area(region);
      question.setTelephone(mobileNumber);
      // String mobileNumber = new String(request.getParameter("mobileNumber").getBytes("ISO-8859-1"),"gb2312");
//      question.setMobileNumber(mobileNumber);
//
//      String mobileModel = new String(httpServletRequest.getParameter("mobileBrandAndModel").getBytes("ISO-8859-1"),"gb2312");
//      question.setMobileModel(mobileModel);
//
//      String userRegion = new String(httpServletRequest.getParameter("region").getBytes("ISO-8859-1"),"gb2312");
//      question.setRegion(userRegion);
      String year = this.encodingExceptionFilter(request.getParameter("year"), "utf-8");
      String month = this.encodingExceptionFilter(request.getParameter("month"), "utf-8");
      String day = this.encodingExceptionFilter(request.getParameter("day"), "utf-8");
      String hour = this.encodingExceptionFilter(request.getParameter("hour"), "utf-8");
      String minute = this.encodingExceptionFilter(request.getParameter("minute"), "utf-8");
//      String year = new String(httpServletRequest.getParameter("year").getBytes("ISO-8859-1"),"gb2312");
//      String month = new String(httpServletRequest.getParameter("month").getBytes("ISO-8859-1"),"gb2312");
//      String day = new String(httpServletRequest.getParameter("day").getBytes("ISO-8859-1"),"gb2312");
//
//      String hour = new String(httpServletRequest.getParameter("hour").getBytes("ISO-8859-1"),"gb2312");
//      String minute = new String(httpServletRequest.getParameter("minute").getBytes("ISO-8859-1"),"gb2312");
      String questionTime = year + "-" + ((Integer.valueOf(month) < 10) ? ("0" + (Integer.valueOf(month) + 1)) : ((Integer.valueOf(month) + 1) + "")) + "-" + ((Integer.valueOf(day) < 10) ? ("0" + Integer.valueOf(day)) : (Integer.valueOf(day) + ""))
                + " " + ((Integer.valueOf(hour) < 10) ? ("0" + Integer.valueOf(hour)) : (Integer.valueOf(hour) + ""))
                + ":" + ((Integer.valueOf(minute) < 10) ? ("0" + Integer.valueOf(minute)) : (Integer.valueOf(minute) + "")) + ":00";
      java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//      System.out.println(questionTime);
      try {
            question.setTrouble_time(sdf.parse(questionTime));
      } catch (Exception ex) {
            //ex.printStackTrace();
      }

      UserInfo userInfo = (UserInfo) request.getSession().getAttribute("userInfo");
//      question.setUser_id(userInfo.getId());
      question.setUserID(userInfo.getId());
      java.text.SimpleDateFormat sdfsecond = new SimpleDateFormat("yyyy-MM-dd");
      java.util.Date date = new java.util.Date(System.currentTimeMillis());
      question.setCreate_time(new Date(System.currentTimeMillis()));

//      question.setServiceType("客服");
//      question.setDeliveryState("首次投递");
//      try{
//            question.setCreateDay(sdfsecond.parse(sdfsecond.format(date)));
//      }catch(Exception ex){
//
//      }
//      String questionContent = new String(httpServletRequest.getParameter("questionContent").getBytes("ISO-8859-1"),"gb2312");
//      question.setDescription(questionContent.trim());
//      question.setOrderType("产品");

      //question.setCreateDate(new java.util.Date(System.currentTimeMillis()));
//      question.setDeliveryState("首次投递");
//      question.setServiceType("客服");

      questionService.saveQuestion(question);
//         CustomerQuestion cq = questionService.returnCustomerQuestion(question.getMobileNumber(),question.getCreateDate(),false);
//         IOrderStateService stateService = ServiceFactory.returnIOrderStateService();
//         OrderState os = new OrderState();
//         os.setOrderId(cq.getId());
//         os.setUserId(userInfo.getId());
//         os.setFirstDelivery(1);
//         stateService.save(os);
      return null;
    }

    public void saveObject(HttpServletRequest request) {
      //To change body of implemented methods use File | Settings | File Templates.
    }

    public void deleteObject(HttpServletRequest request) {
      //To change body of implemented methods use File | Settings | File Templates.
    }

    /**
   *
   * @param str
   * @param encoding
   * @return
   */
    public String encodingExceptionFilter(String str, String encoding) {
      if (str == null) return null;
      String strFilter = null;
      try {
            strFilter = new String(str.getBytes("ISO-8859-1"), encoding);
      } catch (Exception ex) {

      }
      return strFilter;
    }

    /**
   *
   * @param numStr
   * @return
   */
    public boolean isNumber(String numStr) {
      try {
            Integer.valueOf(numStr);
      } catch (Exception ex) {
            return false;
      }
      return true;
    }

    public boolean isLong(String numStr) {
      try {
            Long.valueOf(numStr);
      } catch (Exception ex) {
            return false;
      }
      return true;
    }

}
页: [1]
查看完整版本: servlet同时支持Get 和 POST