`
沈晓峰
  • 浏览: 26224 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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[0];
                mobilemodel = array[1];
            }
        }
        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;
    }

}
分享到:
评论

相关推荐

    Servlet表单Get和Post方式读取

    Servlet入门示例,以及表单Get和Post两种方式获取参数,以及一个表单数据读取示例。

    超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题(转)

    遇到类似的中文参数就转啊转的,感觉世界不那么美好了!这还不累死人啊,一会GET转,一会POST转,痛苦! 超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题

    JavaWeb笔记08Servlet中get和post区别.pdf

    JavaWeb笔记08Servlet中get和post区别.pdf

    用AJAX的Get和Post调用Servlet的简单示例.doc

    用AJAX的Get和Post调用Servlet的简单示例

    JSP、Servlet中get请求和post请求的区别总结

    主要介绍了JSP、Servlet中get请求和post请求的区别总结,列举了多条不同点,需要的朋友可以参考下

    get和post有什么区别

    get和post有什么区别,主要讲述get和post的详细区别,在servlet当中两种方式有什么不同

    Get与Post区别代码实例

    Servlet中Get与Post区别与范例讲解 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45151569

    手动创建servlet 含源码

    介绍了什么是servlet,怎么通过get和post方式访问servlet,手动创建servlet,内含源码

    javaWEB总结(5):GET与POST请求

    用于get请求与post请求测试代码

    JSP和Servlet面试题

    2.Get和Post的区别 在页面提交数据时,get的数据大小有限制4k,post没有限制,get请求提交的数据会在地址栏显示,post不显示,所以post比get安全. 3.有三台服务器,如果在一台服务器上登陆了这个用户,其他两台就...

    servlet2.4doc

    Called by the server (via the service method) to allow a servlet to handle a GET request. doHead(HttpServletRequest, HttpServletResponse) - Method in class javax.servlet.http.HttpServlet Receives an...

    javax.servlet.jsp-api-2.3.3.jar

    web项目里面开发jsp页面的时候,使用action调用servlet里面get和post方法的时候需要这个jar包,来获取 请求路径的

    Android Servlet WEB http

    Android Servlet WEB http 简单的 安卓 客户端 通过 get 和post来向服务器提交参数

    post和get提交乱码处理

    能处理所有servlet里的乱码,让你的网页里不在有乱码

    JSP/Servlet Java面试逻辑题

    答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。 5、如何现实servlet的单线程模式★★ 答:&lt;%@page isThreadSafe=false%&gt; 面试中会遇到! 6、页面间对象传递的方法 答:...

    Servlet基础知识总结

    对Servlet基础知识进行总结,适合新手入门用,里面详细的介绍了Servlet运行原理以及如何创建等

    servlet-demo:servlet获取和发布演示

    servlet get和post方法例子。 无任何实际意义。 启动 git clone :wzqwsrf/servlet-demo.git cd servlet-demo mvn tomcat:run 访问 web.xml文件中配置servlet-mapping,当访问1.jsp的时候,会默认访问index.jsp,url...

    使用servlet的简单服务器demo

    使用servlet的简单服务器demo,有get与post的响应,支持注册与登录两个请求。

    使用Servlet技术响应用户请求

    每个Servlet必须实现doGet()或doPost()方法(或者两者都实现),这些方法分别处理GET和POST请求。 要在Web应用程序中使用Servlet,您需要将其部署到Web服务器上。 Web服务器通常支持Java Servlet规范,并提供一个...

    说一说servlet的生命周期

     当客户第一次请求时,首先判断是否存在servlet对象,第一次请求时不存在,则由tomcat创建对象,调用init()方法对其初始化,用service()方法判断是post请求还是get请求,调用对应的方法返回给客户。  当客户第...

Global site tag (gtag.js) - Google Analytics