目录

一、运行结果

二、原理

login.jsp

LoginServlet.java

hello.jsp

三、代码分享

login.jsp

LoginServlet.java

hello.jsp


一、运行结果

二、原理

register.jsp  用来处理显示页面

LoginServlet.java 用来处理业务

hello.jsp 用来显示主页面

用到了cookie技术来实现

login.jsp

在这里实现一个表单:有用户名、密码和两周内免登录的选项按钮

第一次当然要自己输入用户和密码;第二次在cookie有效时间内再次登录,那么cookie有记录,就从cookie里面拿数据,从而实现两周内免登录。

LoginServlet.java

实现验证功能,用户名和密码的验证(admin 和123 可以自己在代码中修改

查看是否勾选了两周内免登录的按钮,勾选之后,就创建一个cookie用来记录,设置cookie的记录时间(为了方便演示,代码中设置的是10s);若没有勾选,则不记录

hello.jsp

输出 主页面 就行

三、代码分享

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>用cookie技术实现两周内免登录</title>
</head>
<body>
<font color="red" size="2px">${requestScope.error }</font>
<%//获取所有的cookie进行比对String username="";String passwd="";Cookie[] cookies = request.getCookies();for(int i = 0;cookies != null && i<cookies.length;i++){String cname =cookies[i].getName();if(cname.equalsIgnoreCase("username")){username = cookies[i].getValue();}if(cname.equalsIgnoreCase("passwd")){passwd = cookies[i].getValue();}}
%>
<form action="login" method = "post"><table border="1" width="40%"><tr><td>用户名:</td><td><input type = "text" name = "username"  value="<%= username%>"></td></tr><tr><td>密码:</td><td><input type = "password" name = "password" value="<%= passwd%>"></td></tr><tr><td></td><td><input type="checkbox"name="isFlag" value="true" checked="checked">两周内免登录</td></tr><tr><td colspan="2" align="center"><input type="submit"  value="提交"/></td></tr></table></form><%--使用EL表达式获取--%><%--<form action="login" method = "post">--%><%--<table border="1" width="60%">--%><%--<tr>--%><%--<td>用户名:</td><td><input type = "text" name = "username"  value="${cookie.username.value}"></td>--%><%--</tr>--%><%--<tr>--%><%--<td>密码:</td><td><input type = "password" name = "password" value="${cookie.passwd.value}"></td>--%><%--</tr>--%><%--<tr>--%><%--<td></td>--%><%--<td><input type="checkbox"name="isFlag" value="true" checked="checked">两周内免登录</td>--%><%--</tr>--%><%--<tr>--%><%--<td aria-colspan="2" align="center"><input type="submit"  value="提交"/>提交</td>--%><%--</tr>--%><%--</table>--%><%--</form>--%>
</body>
</html>

LoginServlet.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");String username = req.getParameter("username");//获取用户名String password = req.getParameter("password");//获取密码//判断用户名和密码是否正确if(username != null && "admin".equals(username) && password != null && "123".equals(password)){System.out.println("登录成功");//表示登录成功!//判断是否记住了多选框String isFlag = req.getParameter("isFlag");if(Boolean.valueOf(isFlag)){//表示记住了//创建cookicCookie c1 = new Cookie("username", username);c1.setMaxAge(10);//60s//设置有效访问路径c1.setPath("/");//表示对当前项目下的所有资源都可见Cookie c2 = new Cookie("passwd", password);//10秒c2.setMaxAge(10);c2.setPath("/");//吧cookie对象添加到相应对象中resp.addCookie(c1);resp.addCookie(c2);}//请求转发到主页面req.setAttribute("username",username);req.getRequestDispatcher("/hello.jsp").forward(req,resp);}else{//登录失败请求转发到登录页面给出错误提示消息req.setAttribute("error","用户名或密码不正确");req.getRequestDispatcher("/login.jsp").forward(req,resp);return;}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>hello</title>
</head>
<body>
<h1>主页面</h1>
</body>
</html>

表单提交-两周内免登录javaweb cookie实现相关推荐

  1. Javaweb | cookie实现两周内免登录

    目录 1. 问题 2.解决思路 3. 解决步骤 3.1 编写登录页面(lg.jsp) 3.2 编写一个登录成功页面(success.jsp) 3.3 编写登录失败页面(fail.html) 3.4 写 ...

  2. php怎么做免登录,php---一周内免登录

    在很多登陆界面 会有 一周内免登录的功能,实现的原理是,免登录的选项 在网页前端作为一个 checkbox ,用户选择之后一起post 发送到服务端,服务端通过 setcookie 这个函数,设置客户 ...

  3. php---一周内免登录

    在很多登陆界面 会有 一周内免登录的功能,实现的原理是,免登录的选项 在网页前端作为一个 checkbox ,用户选择之后一起post 发送到服务端,服务端通过 setcookie 这个函数,设置客户 ...

  4. html如何实现自动登录,JS实现两周内自动登录功能

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 两周内自动登录 两周内自动登录 var oTxt1 = document.getElementsByName('u ...

  5. JS-两周内自动登录功能

    1 <!DOCTYPE html>2 <html>3 <head>4 <meta charset="UTF-8">5 <tit ...

  6. php echo表单提交_PHP常见面试题及答案

    1.PHP的意思,它能干些什么? PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页,英文的全称(Professional Home Pages) (1)WEB开发. ...

  7. 表单提交_Linux curl 表单登录或提交与cookie使用

    本文主要讲解通过curl 实现表单提交登录.单独的表单提交与表单登录都差不多,因此就不单独说了. 说明:针对curl表单提交实现登录,不是所有网站都适用,原因是有些网站后台做了限制或有其他校验.我们不 ...

  8. uni-app.02.提交form表单的两种方式

    提交form表单的两种方式 uni-app提交form表单的两种方式 form表单元素较少 前端代码举例 后端代码举例 form表单元素较多 前端代码举例: 后端java代码举例 uni-app提交f ...

  9. php 表单提交2次,微信开发之php表单微信中自动提交两次问题解决办法

    前言: 最近做微信开发,在微信中访问PHP页面,页面中有个表单.测试发现偶尔会出现表单被自动提交两次的情况,导致流程出错. 问题原因 暂时未找到原因,不过怀疑跟微信本身的机制有关. 解决方法 用ses ...

最新文章

  1. 各种喜好配置【2021.10】
  2. Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
  3. python常用面试题_史上最全Python工程师常见面试题集锦,有这一份就够了
  4. finalizer_Java Finalizer和Java文件输入/输出流
  5. c语言经典算法——查找一个整数数组中第二大数
  6. 【Python 必会技巧】使用 zip() 函数对序列进行压缩和解压操作
  7. 猎鹰spacex_我从SpaceX中学到的关于开源的一切
  8. 数学连乘和累加运算符号_期中复习:小学数学各年级知识点和重点、难点大全!...
  9. 全面拥抱云原生应用研发的拐点已经到来
  10. 深度学习与计算机视觉教程(7) | 神经网络训练技巧 (下)(CV通关指南·完结)
  11. CODE[VS] 3837 台风 题解
  12. 远控软件GHOST源码免杀
  13. 两两独立为什么不能推出相互独立
  14. 使用JLINK下载程序可以,但是调试不行
  15. 《中华人民共和国数据安全法》条款解读与分析
  16. Use Configs
  17. .嵌入式工程师有发展前途吗?这是我看过最靠谱的回答!
  18. Django后台管理常用配置
  19. 计算机网络——(4)局域网技术
  20. 微信小程序和ros2进行通信

热门文章

  1. 技术派-不用sqrt手工计算平方根
  2. 控制期货开户保证金可以降低风险
  3. 运算符 狂神说Java随堂笔记
  4. 《孙子算经》——类题
  5. 【自动控制原理】笔记1——开环系统闭环系统-反馈控制
  6. 不允许sam账户和共享的匿名枚举_开启和关闭局域网共享设置方法[1]
  7. 华罗庚杯数学竞赛历年真题B(第21届)
  8. PSD格式怎么转换成JPG?这几种方法轻易转换图片格式
  9. 如何在不同链部署地址完全相同的合约
  10. JDK 16 昨日正式发布,新特性实践尝鲜来啦!