03.登录注册注销案例-自定义登录异常

 

UserException.java

package com.gyf.exception;

public class UserException extends Exception{

    public UserException(String message) {
        super(message);
        // TODO Auto-generated constructor stub
    }
    
}

 

LoginServlet.java

package com.exp.web.servlet;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import com.exp.domain.User;
import com.exp.exception.UserException;
import com.exp.service.IUserService;
import com.exp.service.impl.UserServiceImpl;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setHeader("content-type", "text/html;charset=utf-8");
        //1、获取请求参数
        User formUser = new User();
        try {
            BeanUtils.populate(formUser,request.getParameterMap());
            //调用业务方法 login
            IUserService userService = new UserServiceImpl();
            try {
                User dbUser = userService.login(formUser);
                //登录用户存储到session
                request.getSession().setAttribute("user", dbUser);
                //进入后台页面
                response.sendRedirect(request.getContextPath() + "/main.jsp");
            } catch (UserException e) {
                e.printStackTrace();
                //往request里存数据
                request.setAttribute("message", e.getMessage());
                //登录失败,回到登录页面【转发】
                request.getRequestDispatcher("/login.jsp").forward(request, response);
            }
        } catch (IllegalAccessException e1) {
            e1.printStackTrace();
        } catch (InvocationTargetException e1) {
            e1.printStackTrace();
        }
    }

}

 

 

 

posted @ 2019-02-04 20:38  expworld  阅读(104)  评论(0)    收藏  举报