1、 自动登录

http://blog.csdn.net/xj626852095/article/details/16825659

2. 防止表单重复提交

表单Servlet

//负责产生表单
public class FormServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();String token = TokenProccessor.getInstance().makeToken();request.getSession().setAttribute("token", token);  //在服务器端保存随机数out.println("<form action='/day07/servlet/DoFormServlet' method='post'>");out.write("<input type='hidden' name='token' value='"+token+"'>");out.println("用户名:<input type='text' name='username'>");out.println("<input type='submit' value='提交'>");out.println("</form>");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}class TokenProccessor{/**单态设计模式(保证类的对象在内存中只有一个)*1、把类的构造函数私有*2、自己创建一个类的对象*3、对外提供一个公共的方法,返回类的对象* */private TokenProccessor(){}private static final TokenProccessor instance = new TokenProccessor();public static TokenProccessor getInstance(){return instance;}public String makeToken(){  //checkException//  7346734837483  834u938493493849384  43434384String token = (System.currentTimeMillis() + new Random().nextInt(999999999)) + "";//数据指纹   128位长   16个字节  md5try {MessageDigest md = MessageDigest.getInstance("md5");byte md5[] =  md.digest(token.getBytes());//base64编码--任意二进制编码明文字符   adfsdfsdfsfBASE64Encoder encoder = new BASE64Encoder();return encoder.encode(md5);} catch (NoSuchAlgorithmException e) {throw new RuntimeException(e);}}}

表单处理Servlet

public class DoFormServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {boolean b = isToken(request);  //判断用户是否是重复提交if(b==true){System.out.println("请不要重复提交");return;}request.getSession().removeAttribute("token");System.out.println("处理用户提交请求!!");}private boolean isToken(HttpServletRequest request) {String client_token = request.getParameter("token");if(client_token==null){return true;}String server_token = (String) request.getSession().getAttribute("token");if(server_token==null){return true;}if(!client_token.equals(server_token)){return true;}return false;}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

转载于:https://www.cnblogs.com/xj626852095/p/3648071.html

JavaWeb -- Session实例 -- 自动登录 和 防止表单重复提交(令牌产生器) MD5码相关推荐

  1. Spring Boot中防表单重复提交以及拦截器登录检测

    目录 理论 演示 源码 理论 在用户登录后,如果按F5刷新会出现表单重复提交的问题,解决这个问题后,如果没有拦截器登录检测,就会造成,任意用户可以登录后台界面,所以要有拦截器登录检测. 相关的逻辑步骤 ...

  2. struts2 防止表单重复提交--令牌机制

    jsp: action: 配置文件: 转载于:https://www.cnblogs.com/hwgok/p/8324432.html

  3. 由防止表单重复提交引发的一系列问题--servletRequest的复制、body值的获取

    @Time:2019年1月4日 16:19:19 @Author:QGuo 背景:最开始打算写个防止表单重复提交的拦截器:网上见到一种不错的方式,比较合适前后端分离,校验在后台实现: 我在此基础上,将 ...

  4. PHP通过session判断防止表单重复提交实例

    PHP通过session判断防止表单重复提交实例 PHP通过session判断防止表单重复提交实例,当用户提交表单后,为防止重复操作,通过session来判断是否为初次提交,否则让他返回到之前表单页面 ...

  5. 登录和注销、基于Session的购物车案例、验证码的使用、防止表单重复提交

    一:登录和注销: 登录login.jsp界面 <body><%//销毁sessionsession.invalidate();%> <h3>用户登录</h3& ...

  6. JavaWeb学习总结(十三)——使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  7. JavaWeb学习总结(十三):使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  8. JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体

    1. struts 工作流程图 超链接 2. 入门案例 struts入门案例:1.写一个注册页面,把请求交给 struts处理<form action="${pageContext.r ...

  9. 七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

    一.CURD的Demo 1开发前准备工作 新建一个SpringBoot工程 引入starter-web maven依赖 引入html页面和assert文件夹里的样式文件等等 2 实现访问登录页面 方式 ...

最新文章

  1. UVA1660 电视网络 Cable TV Network(网络流,最小割)
  2. 获取邮箱通讯录,msn好友列表的C#源码
  3. 删除与剪切有何区别?
  4. Linux编程手册读书笔记第五章(20140408)
  5. 《面向数据科学的概率论》翻译活动期待大家的参与 | ApacheCN
  6. Mysql用户管理(远程连接、授权)
  7. Drupal的taxonomy_manager模块合并分类的方法
  8. VSFTP进阶使用---自用简记
  9. 51单片机的家居空气质量监测系统proteus仿真设计
  10. spss的独立样本T检验
  11. Premiere(pr)怎样剪裁视频画面大小呢
  12. 微软云存储中国事业部,热招!
  13. Windows10系统无法更改默认浏览器等默认设置
  14. EBS创建会计科目请求报错问题查询
  15. 基于Tofu的热红外、多波段目标识别跟踪系统
  16. Java 并发异步编程,原来十个接口的活现在只需要一个接口就搞定!
  17. 有道云笔记Markdown(一)
  18. 数据结构与算法A实验六图论---7-8判断是否有路径(并查集)
  19. golang同时使用命令行参数和配置文件
  20. 独角兽趋势一次一单,这款策略简直让人惊艳,做单准确率高的让人难以置信

热门文章

  1. 关于 IAR 环境的一些使用 琐记
  2. CURL HTTPS POST
  3. Coding: 编写合格的REST API
  4. 人工智能已经迫在眉睫_创意计算机已经迫在眉睫
  5. 自然语言处理综述_自然语言处理
  6. 机器学习与分布式机器学习_机器学习的歧义
  7. 使用mnist数据集_使用MNIST数据集上的t分布随机邻居嵌入(t-SNE)进行降维
  8. 为何很多理财平台扣钱很快,但是提现的时候却很慢?
  9. “乞讨者”王小波与“怪物”巴尔扎克
  10. 线性汇编总结和函数说明