Servlet实现登录

 html客户端输入数据:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h2>登录</h2>
    <!--这里的action是servlet配置里的<url-pattern>/LoginServlet</url-pattern>-->
    <form action="LoginServlet" method="get">
        账号:<input type="text" name="username"/><br>
        密码:<input type="text" name="password"/><br>
        <input type="submit" value="登录">
    </form>

</body>
</html>

LoginServlet实现服务端接受数据,判断数据等操作:

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("名字是:"+name+",密码是:"+password);
        //向客户端输出内容
         PrintWriter pw=response.getWriter();
        if ("admin".equals(name) && "123".equals(password)) {

            //pw.write("login success");
            //获取getServletContext()中存放的"count"
            Object obj= getServletContext().getAttribute("count");
            int totalCount=0;
            if(obj!=null){
                totalCount= (int) obj;
            }
            getServletContext().setAttribute("count",totalCount++);

            //设置状态码,重新定位  状态码
            response.setStatus(302);
            //定位跳转的位置是哪一个页面
            response.setHeader("Location","login_success.html");
        }else{
            pw.write("login failed");
        }
    }
}

成功跳转的页面:

<body>
    <h2>登录成功</h2>
    <a href="CountServlet">查看登录成功的次数</a>


</body>

CountSevlet:

public class CountServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        int count= (int) getServletContext().getAttribute("count");
        response.getWriter().write("login success count =="+count);
        System.out.println(count);
    }
}
HttpServletRequest:这个对象封装了客户端提交过来的一切数据
  1. 可以获取客户端请求头信息
            //1.获取头信息
            Enumeration<String> headerNames=request.getHeaderNames();
            while(headerNames.hasMoreElements()){
                String name=headerNames.nextElement();
                String value=request.getHeader(name);
                System.out.println(name+":"+value);
            }
  2. 获取客户端请求体信息
    //获取请求的name的值
            String name=request.getParameter("name");
            System.out.println(name);
    
            //将数据取到Map中,
            //Map<String,String> map=request.getParameterMap();
            //表示一个键对应多个值
            Map<String,String[]> map=request.getParameterMap();
            //取出Map中的Key
            Set<String> keySet=map.keySet();
            Iterator<String> iterator=keySet.iterator();
            while (iterator.hasNext()){
                String key=iterator.next();
    
                String value=map.get(key)[0];
                System.out.println(key+"="+value);
            }

    总的doGet代码:

     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            //1.获取头信息
            Enumeration<String> headerNames=request.getHeaderNames();
            while(headerNames.hasMoreElements()){
                String name=headerNames.nextElement();
                String value=request.getHeader(name);
                System.out.println(name+":"+value);
            }
    
            //获取请求的name的值
            String name=request.getParameter("name");
            System.out.println(name);
    
            //将数据取到Map中,
            //Map<String,String> map=request.getParameterMap();
            //表示一个键对应多个值
            Map<String,String[]> map=request.getParameterMap();
            //取出Map中的Key
            Set<String> keySet=map.keySet();
            Iterator<String> iterator=keySet.iterator();
            while (iterator.hasNext()){
                String key=iterator.next();
    
                String value=map.get(key)[0];
                System.out.println(key+"="+value);
            }
        }

猜你喜欢

转载自blog.csdn.net/weixin_42547717/article/details/84147118