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);
            }
        }

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值