小型购物网站(五):基于过滤器的全站乱码解决

post请求乱码好解决,但是get请求如果在过滤器中使用手动编解码,会出问题。因为只是改变了过滤器中的局部变量,接收请求的Servlet还是会从request作用域中取请求参数。
解决方案:
1、将改完的值存到某个地方,用的时候拿出来
利用request.getParameterMap方法得到的Map集合,修改其中的字符串,然后从这个Map集合中拿修改后的正确字符串。
2、request里面存的就是解决好的字符串,从request中去拿。

装饰者模式:增强了被装饰者的功能而不改变被装饰者。

我们在过滤器中写一个MyRequest类继承HttpServletRequestWrapper,重写其中的public String getParameter(String name)、public Map<String, String[]> getParameterMap()和public String[] getParameterValues(String name)方法,在public Map<String, String[]> getParameterMap()方法中解决乱码,在另外两个方法中调用这个方法。

用户实现30天自动登录

本质上是基于Cookie的,用户在登录成功之后,过滤器将用户的用户名和密码存储在Cookie中,发送给服务器。服务器上的过滤器将用户的用户名和密码存储到Session中,并且设置Cookie的有效时间为30天。由于Session是基于Cookie的,所以就可以实现用户30天自动登录了。

MD5加密算法

将用户的用户名和密码保存在客户端是十分危险的,所以我们需要将用户的数据加密后保存在数据库中。这时候就需要用到MD5加密算法了。
特点:
    任意大小的二进制数进过MD5加密计算后都能得到一个独一无二的128位二进制数。
    不同的数据算出的MD5绝对不同(其实不是这样,密文的数量虽然很大,但是毕竟有限,所有的明文都是从密文的集合中取出密文)
    相同的数据算出的MD5一定相同(这也就解释了MD5又被人们称之为数据指纹的原因)
    只能由明文算出密文,密文是永远无法算成明文的。MD5大量应用于计算机中。如数据库中保存的密码通常都是经过MD5加密后的数据。如用户下载文件时可以进行MD5校验防止数据被篡改。
    记住用户名案例中,我们可以使用MD5进行加密后再保存在客户端,从而保证数据安全。
    在数据库中保存的密码也不宜直接存储为明文。也要经过MD5加密后存储。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值