第一步创建表

car_user 用户表

car_order 订单表

car_order_item 订单项表

car_goods 商品表

可以做一个设置编译码的过滤器,让每个界面都进行过滤,就不用每个界面都进行编译码设置了

/**编码过滤器
 * @author zjjt
 *
 */
@WebFilter("/*")
public class EncodingFilter implements Filter{
 
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        //设置编码
        req.setCharacterEncoding("utf-8");
        
        //让你通过
        chain.doFilter(req, resp);
        
    }
 
    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        
    }  
}

MD5

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。

密码散列函数(Cryptographic hash function),又译为加密散列函数,是散列函数的一种。

MD4算法在安全上有大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用,比如MD5加密算法.
代码:

import java.security.MessageDigest;public class T2 {public static String Test_MD5(String str) {try {//MessageDigest类是一个加密算法的抽象类,需要先获取它的对象MessageDigest md = MessageDigest.getInstance("MD5"); //获取MD5的对象。//getBytes(),把字符串转为byte[]数组。//是对信息的填充和打乱md.update(str.getBytes());//对摘要后的信息进行哈希计算得到一个16字节的字节数组byte b[] = md.digest();//System.out.println("b的长度为:" + b.length);//16//String与StringBuffer它们都可以存储和操作字符串,StringBuffer操作字符串要比String性能好 StringBuffer buf = new StringBuffer();int i;//为了得到定长的数据,因此还需要对数据进行处理,我们知道Byte是8位即一字节,先转换为int整型再转为16进制时一般是会转换为两位的16进制。//0.为什么要转换为整型呢,因为java 中对byte的所有运算操作均会是首先将byte转化为int, 再行运算。//1.为什么要转为16进制,因为MD5的输出是16进制,为什么呢,因为原本MD5是输出128位,但是128位太长且不易存储,即转换为32位的16进制。32*4=128.//2.我们知道Byte的范围是在[-128,127],即在byte转化为整型的时候会出现负数,而我们输出的结果不该有负数,即我们需要对于负数的值转化为正数。//3.对于第二点的方法,就是判断若为负数,则需要对其  加256 为什么是256呢,这又是一个大的话题,//4.还有一种情况,如果数值小于16,那么只会产生一位16进制,而我们需要得到的是2位的16进制,因此需要进行补0,如 若值为 15,则对应16进制应该写出:0Ffor(int offset = 0; offset < b.length; offset++) {//先把 byte转化为int。i = b[offset];//这种情况是i为负数情况if(i < 0) {i += 256; //相当于  i = i & 0xff;为什么呢,请看上面第三点的博客。}//这种情况是i小于16,只会有一位16进制,则我们自己补个0if(i < 16) {buf.append("0");}buf.append(Integer.toHexString(i));}str = buf.toString(); } catch (Exception e) {e.printStackTrace();}//最后128位就变成了 32位的16进制,即32*4=128;return str;
}public static void main(String[] arg) {System.out.println("待加密内容为:  " + "adc");System.out.println("加密后内容为:  " +Test_MD5("adc"));}
}
————————————————
版权声明:本文为CSDN博主「黩817」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_66939060/article/details/124409710

javaWeb(购物车项目)相关推荐

  1. JavaWeb 购物车项目

    今天是基于我们所学的服务器存储端和三层架构来完善该项目,今天先完善一部分的功能. 一.购物车项目思路 1.登录 先创建一个用户表,表中有id,name,pwd三个属性首. 需要具备一个登录页面,一个处 ...

  2. JavaWeb购物车项目

    目录 项目前提 数据库的创建 用户表 商品表 eclipse进行创建包和类: 主要实现功能 1.购物车用户登录 2.商品显示 3.购物车添加&商品总数和价格的计算 一.项目前提 1.购物车并不 ...

  3. JavaWeb 购物车项目(一)

    今天的学习主要是完成一个购物车项目,该项目中使用servlet完成,对于不知道servlet不知道如何使用的去看servlet的使用该篇文章,该文章中有教大家如何使用servlet. 目录 一.项目所 ...

  4. JavaWeb.购物车项目

    前言:本章纯代码,后期会修改. 一.数据库代码 --用户表 create table shop_user(id number primary key,account varchar2(30) not ...

  5. JavaWeb购物车项目二

  6. java开发一个购物车实验,JAVAWEB购物车实验报告.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava JAVAWEB购物车实验报告.doc14页 本文档一共 ...

  7. java购物车项目代码_javaweb练手项目jsp+servlet简易购物车系统

    简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...

  8. JavaWeb完整项目要用到的专业技能

    完成JavaWeb项目用到哪些专业技能?在经典的JavaWeb的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端.Web开发中经典的MVC模式,Model-View-Contro ...

  9. 基于IDEA搭建JavaWeb入门项目结构(2021版)

    前言:对于很多从eclipse等IDE迁移到IDEA开发工具的小伙伴,对于如何在IDEA上创建JavaWeb入门项目结构不太了解.或者即使创建成功也能勉强使用也不知其所以然.针对于此,写该篇博客予以总 ...

最新文章

  1. java的for循环嵌套_优化Java的for循环嵌套的高效率方法
  2. ECMALL SEO 问题的解决方法
  3. 如何恢复Windows“消失”的磁盘分区
  4. 部署Spring Boot Angular App(Maven和Tomcat)的4种方法
  5. BMVC 2020 各奖项公布!最佳论文可能就是你要的涨点神器
  6. 华中科技大学计算机徐明,华中科技大学2011年本科特优生名单
  7. python实现模拟登录云课堂智慧职教并获取课程信息(1)
  8. mysql phpwind_linux下的PHP+Mysql+PHPWind实现
  9. 对比MATLAB的交叉验证函数:crossvalind()、cvpartition()、crossval()
  10. 市场热度持续提升!4D成像雷达进入「细分场景争夺战」
  11. 傅里叶变换,其物理意义是什么?(转)
  12. SQL中可以用来算时间差的函数
  13. java--Timer 定时器
  14. android qq分身,手机qq怎么分身
  15. 19:C语言之C循环-寻找完数
  16. linux记录端口访问日志,Linux日志管理
  17. leetcode1109. 航班预订统计
  18. 视频播放AVPlayerViewController
  19. USB-C供电、可调电压和电流输出的面包板电源
  20. 递归很套娃怎么办?来,这篇文章带你快速领悟递归的奥义

热门文章

  1. win10系统设置开机网络自动连接的方法
  2. 一个IO口控制多个按键方法
  3. node.js 史上最详细 (博主持续更新)
  4. 4g上网卡托 linux,openwrt/LEDE通过USB连接4G网卡或者手机移动网络共享上网(RNDIS)...
  5. shell不能使用退格、删除键的解决方案
  6. 【无标题】chatGPT--白话文教你读懂chatGPT
  7. 电感的能量储存在哪里-史上最深度的解析(6)
  8. OA办公系统的开发为企业带来的好处
  9. 车联网--车路协统技术
  10. SCS-CN模型模拟地表径流(一)