cookie、验证码、正则表达式

1. cookie

//1.创建一个Cookie对象
Cookie c1 = new Cookie("uname","jim");
//2.将这个Cookie对象保存到浏览器端
response.addCookie(c1);

Cookie c2 = new Cookie("cat","tom");
response.addCookie(c2);
Cookie c3 = new Cookie("dog","kaven");
response.addCookie(c3);
//3.取出保存的cookie
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
    System.out.println("cookie.getName() = " + cookie.getName());
    System.out.println("cookie.getValue() = " + cookie.getValue());
}

2. Kaptcha验证码

kaptcha如何使用:
      - 添加jar   (kaptcha.jar)
      - 在web.xml文件中注册KaptchaServlet,并设置验证码图片的相关属性

<servlet>
        <servlet-name>KaptchaServlet</servlet-name>
        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
        <init-param>
            <param-name>kaptcha.border.color</param-name>
            <param-value>red</param-value>
        </init-param>
        <init-param>
            <param-name>kaptcha.textproducer.char.string</param-name>
            <param-value>abcdefg</param-value>
        </init-param>
        <init-param>
            <param-name>kaptcha.noise.impl</param-name>
            <param-value>com.google.code.kaptcha.impl.NoNoise</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>KaptchaServlet</servlet-name>
        <url-pattern>/kaptch.jpg</url-pattern>
    </servlet-mapping>

  - 在html页面上编写一个img标签,然后设置src等于KaptchaServlet对应的url-pattern

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <img src="kaptch.jpg"/>
</body>
</html>

kaptcha验证码图片的各个属性在常量接口:Constants中
KaptchaServlet在生成验证码图片时,会同时将验证码信息保存到session中
      因此,我们在注册请求时,首先将用户文本框中输入的验证码值和session中保存的值进行比较,相等,则进行注册

@WebServlet("/kaptcha01")
public class KaptchaServletDemo01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession() ;
        Object obj = session.getAttribute("KAPTCHA_SESSION_KEY");
        System.out.println("obj = " + obj);
    }
}

3. 正则表达式

正则表达式的使用三步骤:

1. 定义正则表达式对象
   正则表达式定义有两个方式:

   1) 对象形式
      var reg = new RegExp("abc")
   2) 直接量形式
      var reg = /abc/;

 3) 匹配模式:
           - g 全局匹配
           - i 忽略大小写匹配
           - m 多行匹配
           - gim这三个可以组合使用,不区分先后顺序
             例如: var reg = /abc/gim , var reg = new RegExp("abc","gim");

2. 定义待校验的字符串

      var str = "abcdefg";

3. 校验

 reg.test(str);


4. 元字符
     . , \w , \W , \s , \S , \d , \D , \b , ^ , $

5. []表示集合
     [abc] 表示 a或者b或者c
     [^abc] 表示取反,只要不是a不是b不是c就匹配
     [a-c] 表示a到c这个范围匹配

6. 出现的次数
     * 表示多次 (0 ~ n )
     + 至少一次 ( >=1 )
     ? 最多一次 (0 ~ 1)
     {n} 出现n次
     {n,} 出现n次或者多次
     {n,m} 出现n到m次

posted @ 2022-08-08 09:37  浑浑噩噩一只小迷七  阅读(167)  评论(0)    收藏  举报