Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @WebServlet(name = "LoginServlet", urlPatterns = {"/login"})
- public class LoginServlet extends HttpServlet {
- private static final Logger logger = Logger.getLogger(LoginServlet.class.getName());
- @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.getRequestDispatcher(request.getContextPath() + "/login.xhtml").forward(request, response);
- }
- @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- ServletContext ctx = request.getServletContext();
- String login = (String) request.getParameter("login");
- String password = (String) request.getParameter("password");
- Database database = Database.getInstance();
- User user = database.find(login, password);
- if (user == null) {
- // request.getRequestDispatcher(request.getContextPath() + "/registr").forward(request, response);
- ctx.log("Incorrect login or password");
- response.sendRedirect(request.getContextPath() + "/registr");
- }
- else {
- ctx.log(String.format("User %s has logged in", user));
- request.getSession().setAttribute("user", user);
- request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
- }
- }
- }
- @WebServlet(name = "RegistrServlet", urlPatterns = {"/registr"})
- public class RegistrServlet extends HttpServlet {
- private static final Logger logger = Logger.getLogger(RegistrServlet.class.getName());
- @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.getRequestDispatcher(request.getContextPath() + "/registr.xhtml").forward(request, response);
- }
- @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- ServletContext ctx = request.getServletContext();
- Long id = Long.valueOf(request.getParameter("id"));
- String login = (String) request.getParameter("login");
- String password = (String) request.getParameter("password");
- User user = new User(id, login, password);
- Database database = Database.getInstance();
- boolean inserted = database.insert(user);
- if(inserted) {
- ctx.log(String.format("New user %s has registred", user));
- request.getSession().setAttribute("user", user);
- request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
- }
- else {
- ctx.log("Such user already exists");
- }
- }
- @Override public String getServletInfo() {
- return "Short description";
- }
- }
- @WebFilter("/*")
- public class LoginFilter implements Filter {
- @Override public void doFilter(ServletRequest request,
- ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- HttpServletRequest req = (HttpServletRequest) request;
- HttpServletResponse res = (HttpServletResponse) response;
- HttpSession session = req.getSession(false);
- String loginURI = req.getContextPath() + "/login";
- boolean loggedIn = session != null && session.getAttribute("user") != null;
- boolean loginRequest = req.getRequestURI().equals(loginURI);
- if(loggedIn || loginRequest) {
- chain.doFilter(request, response);
- }
- else {
- res.sendRedirect(loginURI);
- }
- }
- }
Add Comment
Please, Sign In to add comment