关于选择框checkbox的返回值和判断问题

问题1 (isUseCookies != null && isUseCookies.length > 0 )这个地方有问题,isUseCookies 是返回值,相当于布尔值,其实不需要这么判断,因为不会出现isUseCookies="",这种情况,这个是针对username或者密码的。

默认勾选返回值是on,未勾选的默认返回值是null。不需要用字符数组。
问题2 request.getParameterValues在这里,只有一个选择框,不需要使用数组来接收吧。 request.getParameter即可。数组太浪费.
仅仅为了深度求学,才提出问题供大家探讨,希望老师能看到,指导。

<%
        request.setCharacterEncoding("utf-8");
        //首先判断用户是否选择了记录登录状态
        /* jsp容器会为客户端的一个请求生成一个对应的request对象 */
        String[]  isUseCookies = request.getParameterValues("isUseCookie");
         /*     for (String c : isUseCookies) {
        out.println(c);}  */
        /* for(int i=0;i<isUseCookies.length;i++)
        {
                out.println(isUseCookies[i]);
        } */
        out.println(isUseCookies.length);
        /* getParameterValues(String name)
        public class javax.servlet包 ServletRequestWrapper类,
        request对象就是该类的实例
        提供 ServletRequest 接口的便捷实现,
        getParameterValues(String name)
此方法的默认行为是返回对包装的请求对象调用 getParameterValues(String name) 的结果。
        javax.servlet.ServletRequest 接口 中的方法,jsp容器生成的request对象实现了该接口
        ServletRequest 对象提供包括参数名称、参数值、属性和输入流的数据。
        扩展 ServletRequest 的接口可提供其他特定于协议的数据
返回包含给定请求参数拥有的所有值的 String 对象数组,如果该参数不存在,则返回 null。 
如果该参数只有一个值,则数组的长度为 1。 name zh_cn 
包含请求其值的参数的名称的 String 
return zh_cn 
包含参数值的 String 对象数组 
See also  getParameter 

         */
        /* 问题1:这个地方为什么是一个字符串数组,不是选项框吗 */
        if (isUseCookies != null  && isUseCookies.length > 0 ) {
        /* isUseCookies=""时,isUseCookies.length=0且不为null */
            //把用户名和密码保存在Cookie对象里
            String username = URLEncoder.encode(
                    request.getParameter("username"), "utf-8");
            String password = URLEncoder.encode(
                    request.getParameter("password"), "utf-8");

            Cookie usernameCookie = new Cookie("username", username);
            Cookie passwordCookie = new Cookie("password", password);

            usernameCookie.setMaxAge(864000);
            passwordCookie.setMaxAge(864000);//设置最大生存期限为10天
            response.addCookie(usernameCookie);
            response.addCookie(passwordCookie);

        } else {
            Cookie[] cookies = request.getCookies();
            if (cookies != null && cookies.length > 0) {
                for (Cookie c : cookies) {
                    if (c.getName().equals("username")
                            || c.getName().equals("password")) {
                        c.setMaxAge(0); //设置Cookie失效
                        response.addCookie(c);//重新保存
                    }
                }
            }
        }
    %>

 

转载于:https://www.cnblogs.com/xuedexin/articles/5617332.html

你可能感兴趣的:(关于选择框checkbox的返回值和判断问题)