位置: IT常识 - 正文

WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现(web2的核心理念)

编辑:rootadmin
WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现

目录

💂 个人主页: 爱吃豆的土豆🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

推荐整理分享WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现(web2的核心理念),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:web核心技术,web核心协议,web核心是什么,web的核心特征,web2.0核心,web核心技术,web核心技术,web核心的三个标准,内容如对您有帮助,希望把文章链接给更多的朋友!

🏆人必有所执,方能有所成!

🐋希望大家多多支持😘一起进步呀!

案例1:记录网站登录人数

1.1:需求&分析

1.2:代码实现

案例2:记录用户名案例【进阶】

2.1:需求&分析

2.2:代码


案例1:记录网站登录人数1.1:需求&分析

首先分析一波:

关键点:

因为request作用域太小,不能使用request传递

因为ServletContext作用域太大,使得多个用户的访问时间会相互覆盖,导致业务混乱,也不能用。

使用cookie,因为cookie针对的是某个浏览器的会话,一个浏览器cookie保存在该浏览器上,不同用户之间不会有影响。

 流程图:(配个图详细理解一波)

 

1.2:代码实现@WebServlet({"/d1"})public class Demo1Servlet extends BaseServlet { public void visit() throws IOException { PrintWriter writer = getResponse().getWriter(); //一、接收请求中的cookie,展示用户上次访问时间 //1.1、获取浏览器发送的所有cookie Cookie[] arr = getRequest().getCookies(); //1.2、查找是否存在lastVisitTime的cookie //1.2.1、设置一个cookie类型的开关 默认为null,不存在 Cookie lastVisitTime = null; //1.2.2、只要数组arr不为null,遍历arr,查找名为lastVisitTime的cookie if(arr!=null){ for (Cookie cookie : arr) { if(cookie.getName().equals("lastVisitTime")){ //1.2.3、如果找到了,把他赋值给开关 lastVisitTime = cookie; break; } } } //1.3、如果存在该cookie,展示上次访问时间 if(lastVisitTime!=null){ writer.write("上次访问时间是:"+new Date(Long.parseLong(lastVisitTime.getValue())).toLocaleString()); }else{ //1.4、如果不存在该cookie,展示:第一次访问 writer.write("您是第一次访问!"); } //二、记录用户当前的访问时间,写出到响应头 //2.1、获取当前时间的毫秒值 long t = System.currentTimeMillis(); //2.2、封装为cookie对象 Cookie c = new Cookie("lastVisitTime", t + ""); //2.3、设置cookie保存7天 c.setMaxAge(60*60*24*7); //2.4、写出响应头 getResponse().addCookie(c); }}

小结:

request.getCookies();//如果cookie都不存在,Null

WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现(web2的核心理念)

Cookie的value是字符串类型,其他类型必须先转字符串才能保存,中文进行URL编码

案例2:记录用户名案例【进阶】效果图:记住用户名效果图 效果图:不记住用户名效果图

 

2.1:需求&分析

分析:

关键点:

request.getParameter("");cookie技术。URL编码重定向: return "redirect:/userLogin.jsp";<% %>cookie   setMaxAge(0);

流程图:

 

2.2:代码

userLogin.jsp

<form method="post" action="/day11_1/hw"> <input type="hidden" name="method" value="login"/> 用户名:<input type="text" name="username" /> 密码:<input type="password" name="password"/> <input type="checkbox" name="remember" value="yes"/>记住用户名 <input type="submit" value="登录"/></form>

HomeworkServlet

@WebServlet({"/hw"})public class HomeworkServlet extends BaseServlet { public String login() throws UnsupportedEncodingException { //1、接收参数 HttpServletRequest request = getRequest(); String username = request.getParameter("username"); String remember = request.getParameter("remember"); //2、判断remember,判断是否需要记录用户名 Cookie rememberUsername = new Cookie("rememberUsername",""); if(remember!=null){ //3、如果remember不为null,记录用户名 rememberUsername.setValue(URLEncoder.encode(username,"utf-8")); rememberUsername.setMaxAge(60*60*24*7); }else{ //4、如果remember为null,删除已记录的用户名 rememberUsername.setMaxAge(0); } //5、将用户名cookie写出响应头 getResponse().addCookie(rememberUsername); //6、重定向回userLogin.jsp return "redirect:/userLogin.jsp"; }}

userLogin.jsp

<% //获取cookie中保存的用户名 //1、获取所有cookie Cookie[] arr = request.getCookies(); String username = null; //2、寻找保存用户名的cookie if(arr!=null){ for (Cookie c : arr) { if(c.getName().equals("rememberUsername")){ //3、把用户名取出来 username = c.getValue(); break; } } } //4、对URL编码进行解码操作 if(username!=null){ username = URLDecoder.decode(username,"utf-8"); }%><form method="post" action="/day11_1/hw"> <input type="hidden" name="method" value="login"/> 用户名:<input type="text" name="username" value="<%=username==null?"":username%>"/> 密码:<input type="password" name="password"/> <input type="checkbox" name="remember" value="yes" <% if(username!=null){ //说明用户肯定勾选了记录用户名,该复选框直接回显勾选即可 %> checked="checked" <% } %> />记住用户名 <input type="submit" value="登录"/></form>

小结:

回显:html特性: 文本框 value

复选框/单选框  checked="checked"

文本域:内容体

选择框:selected="selected"

嵌套java脚本,进行if判断,对html特性进行回显。

本文链接地址:https://www.jiuchutong.com/zhishi/299769.html 转载请保留说明!

上一篇:JS解构赋值(js解构赋值浏览器报错)

下一篇:【论文导读】- Link Weight Prediction Using Supervised Learning Methods(使用监督学习方法的链路权重预测及其在Yelp网络中的应用)(论文导语如何写)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络