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次
浙公网安备 33010602011771号