Java——使用Servlet写一个登录

*前言

   Servlet是java开发web应用时使用的底层技术,最近几天尝试着用Servlet写了一个简单的登录,想对Servlet有个更深的认识。
   要求:使用jsp+servlet实现登录,浏览器登录后能够让登录信息保存在浏览器中。如何操作,详情请见文!

*基础环境

1、使用idea创建web项目

(1)、首先打开idea——>New Project——>选择Java——>勾选Java EE下的Web Application——>点击Next

Java——使用Servlet写一个登录_第1张图片

(2)、选择项目存放的路径并填写项目名称
Java——使用Servlet写一个登录_第2张图片
2、创建可以写代码的java类和jsp

(1)、在src下建一个包,然后再在包下建一个Servlet

Java——使用Servlet写一个登录_第3张图片

(2)、在WEB-INF下创建两个写登录页和欢迎页的jsp。创建后的项目目录如下

Java——使用Servlet写一个登录_第4张图片

3、配置Tomcat

Java——使用Servlet写一个登录_第5张图片

Java——使用Servlet写一个登录_第6张图片

Java——使用Servlet写一个登录_第7张图片

Java——使用Servlet写一个登录_第8张图片

Java——使用Servlet写一个登录_第9张图片

4、引Servlet的包

Java——使用Servlet写一个登录_第10张图片

Java——使用Servlet写一个登录_第11张图片

Java——使用Servlet写一个登录_第12张图片

Java——使用Servlet写一个登录_第13张图片

5、尝试启动项目

  如果能加载出默认的index.jsp,此时证明基础环境配好了。如果想启动时加载login.jsp,下面需要配置web.xml

Java——使用Servlet写一个登录_第14张图片

6、配置web.xml




    
        Login
        login.Login
    
    
    
        Login
        /login
    

*代码

1、登录页:login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录


    

2、欢迎页:welcoming.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录


    
欢迎您的访问!

9、Servlet

package login;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/*
 @author wanghuamei
 @DESCRIPTION ${DESCRIPTION}
 @create 2019/1/15
*/
public class Login extends javax.servlet.http.HttpServlet {
    private Map users=new HashMap<>();

    public Login() {
        super();
        users.put("w","w");
        users.put("y","y");
    }

    /**
     * 表单提交时使用post请求
     * 1、从request中获取用户名和密码
     * 2、判断用户名是否存在,密码是否正确
     * 3、正确:跳转“欢迎”界面,并将用户名和密码存入session中
     * 4、不正确:提示错误信息
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name=request.getParameter("name");
        String password=request.getParameter("password");
        //判断用户名是否存在
        if(users.containsKey(name)){
            //判断密码是否正确
            if(users.get(name).equals(password)){
                RequestDispatcher requestDispatcher=request.getRequestDispatcher("/WEB-INF/jsp/welcoming.jsp");
                requestDispatcher.forward(request,response);
                request.getSession().setAttribute("name",name);
            }
        }
        response.getWriter().print("error name or password");
    }

    /**
     * get请求
     * 1、从session中获取用户名
     * 2、session中还存在保存的用户名:跳转“欢迎的界面”
     * 3、session中的用户名已经不存在:跳转“登录页”,让用户输入用户名和密码
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //从session中获取用户名
        String name=(String)request.getSession().getAttribute("name");
        //用户名存在:跳转“欢迎界面”
        if(name!=null && name.length()>0){
            RequestDispatcher requestDispatcher=request.getRequestDispatcher("/WEB-INF/jsp/welcoming.jsp");
            requestDispatcher.forward(request,response);
        }
        //不存在:跳转“登录页”
        RequestDispatcher requestDispatcher=request.getRequestDispatcher("/WEB-INF/jsp/login.jsp");
        requestDispatcher.forward(request,response);
    }
}

你可能感兴趣的:(——————日常(Java),*【Java】)