weixin_慕仙1176837
已经解决了,代码问题,不过用户名出现了乱码
慕侠3382504
没看出来问题。。。你搞定了没?啥问题?
慕侠3382504
你不把代码贴上来,谁会知道究竟哪里出错了呢?
有智慧的小于
慕勒5436140
去login看看表单提交页面有没有写错
qq_慕少0443034
checkbox是复选框,也就是同时可以选多个值的意思,使用request.getParameterValues返回的是一个字符串数组,数组中值即你选中的checkbox的value值,因为有可能是多个,所以返回值是数组类型的。
String[] returnstr={"value1","value2"....}
weixin_慕函数0069686
估计是敲错了,蓝色字 username password useCookie之类的看看对不对
IEwuIL7
你的users.jsp里,c.getName().equals("password")那句话,你的password后面笔误多加了个括号
慕标8411726
在第八章有代码
双叶杏
request.getParameterValue()接收数组变量 ,如checkobx类型
request.getParameter()是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型
因为单选框,单选按钮和多选按钮这些是会有相同的name的,例如:
<input type="checkbox" name="langtype" value="JSP">JSP <input type="checkbox" name="langtype" value="PHP">PHP <input type="checkbox" name="langtype" value="PERL">PERL
这里的name都是相同的
慕丝4409378
else不就是不保存账号密码嘛?你怎么还是setMaAge(864000)
宝慕林4925825
这个是不能的
ICEY98
每个浏览器保存cookie的地方不一样,比如:Chrome浏览器的cookie就保存在C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Cookies.txt。其他浏览器的cookie地址度娘上可以搜得到。
cookie保存的路径可能不同.格式也可能不一样,而且cookie是交给浏览器保存的,每个浏览器只会操作自己保存的cookie,其各个浏览器具有不兼容性。
慕码人1187127
是的, 不用转码了
qq_學吥會啲堅強_0
不是,是记住了你的用户名和密码,就不用用户重新输入了,用户可直接点击登录就可以进行登录。
10天内记住我的登录状态只是一个名字而已。
慕盖茨0281467
if(c.getName().equals("username")){
username=c.getValue();
}
外面有一层if判断,这判断的就是键是哪个,比如这次判断键是否是username,如果是,那么把对应的值赋给变量username。得到对应键的值的方法统一为getValue()方法
慕移动9421247
list == null 说明List没有初始化 或者赋值为了null,说明list内没有数据,反正list不为空;
size=0,这样的集合对于之后的判断是没用的,甚至是报异常,如list.get(0.....n)这样的取值判断,就会报异常,故list长度不为0
lueluelue_v_
没有定义他们的类型
隽永等待
如果没勾选的话,说明的是这次用户不想保存cookie,不代表以前就没有保存过,所以要把以前的cookie获取后并置为空。
T松子
这么理解,cookie相当于一个存放数据的仓库,保存后,仓库里就有东西了,下次用就可一取出来。而没有保存,仓库是空的,所以才不显示登陆名和密码。这么说可以理解吗?
下面那个问题你已经明白了啊,还哪里不懂呢?
慕哥2176737
覆盖掉先前的数据,不然再次读取数据是没有变化的
LicoLeung
李四覆盖掉了张三的值,不光是cookie,session同样也是,每次更新会替换掉相同key的value值
qq_地心_0
光有request.setCharacterEncoding("utf-8");还不够。
还需要对response进行三个jsp页面全部再加一句response.setCharacterEncoding("utf-8");
我也是这样的问题
qq_努力看书中_03720576
所以是把这个web application所有的cookie都获取了
加特效的量子
Cookie[] cookies = request.getCookies();获取cookie是返回的是一个cookie数组,包含一条或多个cookie,所以要进行遍历才能把所有的cookie处理到。
=======================================
而创建Cookie时,每次创建的就一条cookie,因此不用遍历
Cookie usernameCookie = new Cookie("username",username);
usernameCookie.setMaxAge(864000);
艾米丽宏
request.getParameter 接收一个相应名 (name) 的 数据(value),但有多个时接收第一个 (value)
request.getParameterValues 接收一个相应名(name)的 数组(value),可以 for 循环遍历取出 (value)
参考:https://blog.csdn.net/msg_java2011/article/details/6529226
白石溪
柠檬遇上玫瑰
因为这里使用的是checkBox,checkbox是一个多选框,可以选择多个数据的,获取多选框中的数据用的是getParamterValues(String name)这个方法,这个方法本身就返回的是数组,只不过在我们这个项目中把checkbox当作单选框来用了而已,所以这里是需要使用数组的,如果要想使用String,那么就用request.getPamater(String name)这个方法,这个方法在这里也是可以用的,但是并不是通用的。
那个怪蜀黍是谁额
注意大小写,另外看一下cookie有没有写成coolie,我昨天找了一个小时的成果
实在不行下载原码,把原码替换自己的代码再运行,找一下是哪里出问题了,总能找到的
weibo_爱幻熊_0
是的,所以在删除cookie的时候需要将cookie存活时间设置为0,然后再添加一次