zoukankan      html  css  js  c++  java
  • 关于servlet的复用功能的实现

    一个servlet其实可以实现很多个请求跟form表单的action!

    比如:我们可以在要提交的form表单中设置一个隐藏的input,并命名和赋值,
    然后通过servlet的请求得到这个input,从而用来区分是哪个jsp页面的action,
    从而在一个servlet中复用实现多个form表单的请求。
    例如下面的jsp中我们定义了<input type="hidden" name="method" value="savepwd">,当该form表单提交到servlet之后,我们就可以获得这个input的值,从而区分是哪个form.

    <form id="userForm" name="userForm" method="post" action="${pageContext.request.contextPath }/jsp/user.do">
                        <input type="hidden" name="method" value="savepwd">
                        <!--div的class 为error是验证错误,ok是验证成功-->
                        <div class="info">${message}</div>
                        <div class="">
                            <label for="oldPassword">旧密码:</label>
                            <input type="password" name="oldpassword" id="oldpassword" value=""> 
    						<font color="red"></font>
                        </div>
                   
                        <div class="providerAddBtn">
                            <!--<a href="#">保存</a>-->
                            <input type="button" name="save" id="save" value="保存" class="input-button">
                        </div>
                    </form>
    

    我们的servlet如下:

    
     @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String method = req.getParameter("method");
            if(method!=null && "savepwd".equals(method)){
                modifyPwd(req,resp);
            }
    
        }
    
    public void modifyPwd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            User userSession = (User) req.getSession().getAttribute(ConstantField.USER_SESSION);
            String newpassword = req.getParameter("newpassword");
            System.out.println("new1"+newpassword);
            if(userSession != null && !StringUtils.isNullOrEmpty(newpassword)){
                UserService userService = new UserServiceImpl();
                boolean flag = userService.updatePwd(userSession.getUserCode(), newpassword);
                if(flag){
                    req.setAttribute("message","修改密码成功,请重新登录账号!");
                    //密码修改成功,移除session
                    req.getSession().removeAttribute(ConstantField.USER_SESSION);
    
                }else {//修改密码失败
                    req.setAttribute("message","修改密码失败!");
    
                }
            }else {
                //新密码为空有问题
                req.setAttribute("message","新密码为空!");
    
            }
            //以上操作进行完,重新转发到当前页面
            //resp.sendRedirect("pwdmodify.jsp");
            req.getRequestDispatcher("pwdmodify.jsp").forward(req,resp);
        }
    
  • 相关阅读:
    选择排序的C、C++实现
    冒泡排序的C、C++实现
    Node.js使用UDP通讯
    Node.js使用TCP通讯
    栈的C语言实现
    顺序表的C、C++实现
    vim的几种模式&快捷键
    ubuntu安装discourse论坛----结合在apache服务上建立虚拟主机
    Ubuntu下使用mail命令发送邮件
    深入解读EOS源代码之——区块链内核
  • 原文地址:https://www.cnblogs.com/ethanSung/p/14100557.html
Copyright © 2011-2022 走看看