《JavaWeb第五章》

Filter

一、Filter简介

Filter意思为过滤器。顾名思义,过滤器可以在浏览器以及目标资源之间起到一个过滤作用。它可以截取客户端和Web资源之间的请求和响应信息。

二、Filter作用

1.Filter可以在请求到达目标资源之前进行拦截。

2.Filter也可以放行请求。

3.Filter可以在响应到达浏览器之前做一个预处理。

三、Filter接口的主要方法

1.init()方法用于初始化Filter。

2.doFilter()作用和service()方法类似,是过滤器请求和响应的主要方法。

3.destroy()用于在Filter对象被销毁前做一些收尾工作。如:释放资源等。

四、创建Filter,实现FIlter接口

package com.yyzy.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")
public class EncodingFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

       //编码转换
        servletRequest.setCharacterEncoding("utf-8");

       //放行
        filterChain.doFilter(servletRequest,servletResponse);


    }

    @Override
    public void destroy() {

    }
}

 MD5

一、MD5简介

MD5加密技术:一种常见的加密算法,可以对数据进行加密。

注意:注册的时候进行加密然后存在数据库中
注意:登录的时候也要进行加密,然后和数据库加密之后的数据进行对比。
例如密码:1234  加密之后变成了 abcd。
所以登录的时候依然使用1234进行登录。然后将加密之后的1234 和abcd进行对比。

 

二、如何使用MD5加密技术

1.导入jar包

2.创建MD5对象:
Mademd5 md = new Mademd5();
String str = "1234";//原密码
String s = md.toMd5(str);//加密之后的密码
System.out.println(s);

Cookie

一、Cookie简介

Cookie是保存在客户端的一段字符串。 格式为:key-value

如何在浏览器查看Cookie :   F12   application

应用场景:  自动登录  记住账号   浏览记录   查询记录

二、Cookie的优点和缺点

优点:保存在客户端  减轻服务器的压力
缺点:保存在客户端  容易被非法用户获取

三、 Cookie的生命周期

生命周期:默认的有效期  一次会话(浏览器打开到关闭为一次会话)
无法跨域:这是浏览器自带的安全机制而非Cookie的

四、  如何在Servlet中创建Cookie

1.创建一个Key为username    value为username的Cookie
Cookie c1 = new Cookie("username" , username);

2.设置Cookie的生命周期单位是秒
c1.setMaxAge(3600*24*31);//一个月

3.将其添加进浏览器
resp.addCookie(c1);

 

五、案例 

1.如何在Servlet中删除Cookie

package com.yyzy.servlet;

import com.yyzy.dao.UserinfoDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/DelCookieServlet")
public class DelCookieServlet extends HttpServlet {


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie[] cookies = req.getCookies();


        if (cookies!=null){


            for(int i = 0 ;i<cookies.length;i++){
                if(cookies[i].getName().equals("username")){
                    cookies[i].setMaxAge(0);
                    resp.addCookie(cookies[i]);
                }

                if(cookies[i].getName().equals("password")){
                    cookies[i].setMaxAge(0);
                    resp.addCookie(cookies[i]);
                }

            }

            req.getRequestDispatcher("login.jsp").forward(req,resp);

        }

    }
}

2. 如何在Servlet中查询Cookie

package com.yyzy.servlet;

import com.yyzy.dao.UserinfoDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/CheckCookieServlet")
public class CheckCookieServlet extends HttpServlet {


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie[] cookies = req.getCookies();
        String username = "";//将cookie的值存
        String password = "";

        if (cookies!=null){


            for(int i = 0 ;i<cookies.length;i++){
                if(cookies[i].getName().equals("username")){
                    username = cookies[i].getValue();
                }

                if(cookies[i].getName().equals("password")){
                    password = cookies[i].getValue();
                }

            }
            UserinfoDao ud = new UserinfoDao();

            boolean b = ud.login(username, password);

            if (b){
                req.getRequestDispatcher("success.jsp").forward(req,resp);
            }else{
                req.setAttribute("info","登录信息已经失效");
                req.getRequestDispatcher("login.jsp").forward(req,resp);
            }

        }

    }
}

 

3.如何在JSP中读取Cookie

${cookie.xxx}
      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值