设为首页 加入收藏

TOP

day03-功能实现02(三)
2023-07-25 21:38:21 】 浏览:49
Tags:day03- 能实现
ter表单中添加hidden,两个表单都提交到MemberServlet处理

image-20221216211107418 image-20221216211200389
  • 在web.xml中配置MemberServlet

    <servlet>
        <servlet-name>MemberServlet</servlet-name>
        <servlet-class>com.li.furns.web.MemberServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MemberServlet</servlet-name>
        <url-pattern>/memberServlet</url-pattern>
    </servlet-mapping>
    
  • 实现MemberServlet

    package com.li.furns.web;
    
    import com.li.furns.entity.Member;
    import com.li.furns.service.MemberService;
    import com.li.furns.service.impl.MemberServiceImpl;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.IOException;
    
    public class MemberServlet extends HttpServlet {
        private MemberService memberService = new MemberServiceImpl();
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取提交表单的hidden元素值,判断进行login还是register业务
            String action = request.getParameter("action");
            if ("login".equals(action)) {
                //进入登录业务
                login(request, response);
    
            } else if ("register".equals(action)) {
                //进入注册业务
                register(request, response);
            }
        }
    
        public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.接收用户名和密码
            //如果前端输入的是null,后台接收的数据为空串""
            String username = request.getParameter("username");
            String password = request.getParameter("password");
    
            //构建一个member对象
            Member member = new Member(null, username, password, null);
    
            //2.调用MemberServiceImpl的login方法
            if (memberService.login(member) == null) {//数据库中没有该用户,返回登录页面
                //登录失败,将错误信息和登录会员名放入request域中
                request.setAttribute("errInfo", "登录失败,用户名或者密码错误");
                request.setAttribute("username", username);
                //注意路径
                request.getRequestDispatcher("/views/member/login.jsp")
                        .forward(request, response);
            } else {
                //否则,跳转到登录成功页面
                request.getRequestDispatcher("/views/member/login_ok.html")
                        .forward(request, response);
            }
        }
    
        public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //接收用户注册信息--参数名要以前端页面的变量名为准
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String email = request.getParameter("email");
    
            //如果返回false,说明该用户信息可以注册
            if (!memberService.isExistsUsername(username)) {
                //构建一个member对象
                Member member = new Member(null, username, password, email);
                if (memberService.registerMember(member)) {
                    //如果注册成功,请求转发到register_ok.html
                    request.getRequestDispatcher("/views/member/register_ok.html")
                            .forward(request, response);
                } else {
                    //注册失败,请求转发到register_fail.html
                    request.getRequestDispatcher("/views/member/register_fail.html")
                            .forward(request, response);
                }
            } else {//否则不能进行注册
                //请求转发到login.html
                //后面可以加入提示信息
                request.getRequestDispatcher("/views/member/login.jsp")
                        .forward(request, response);
            }
        }
    }
    
  • 7.4方案二-反射+模

    首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇docker高级篇1-dockeran安装mysql.. 下一篇每日算法之把数字翻译成字符串

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目