客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。



注意:

cookie.setMaxAge();:设置 cookie 的有效时长;服务器端明确设置了Cookie 的存在时间之后,在浏览器端,Cookie 数据会被保存到硬盘上,否则的话,一个会话内有效,且只存在于内存中;cookie.setDomain(pattern);:设置域,如果没有显式设置,则浏览器会自动取 url 的 host 作为 domain 值;cookie.setPath(uri);:设置路径,设置为"/"表示允许所有路径都可以使用Cookie;域+路径 = url 资源地址 ,默认情况下 cookie 是整个网站通用的;


<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>
url-pattern;

<init-param> 标签中进行配置,其中下面定义的字符串即为 web.xml 文件中的 <param-name> 中,具体每个字符串是什么意思,可以参考:验证码 KAPTCHA 参数详解;
@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);
}
}
网页访问:

控制台打印:

注意:
<img src="kaptch.jpg"/> 这个其实不是一个图片,而是一个 url 资源,那个 servlet 帮我们产生了一个验证码,并且帮我们把验证码保存到了 session 中。正则表达式有三个主要用途:
定义正则表达式对象
正则表达式定义有两个方式:
var reg = /abc/gim , var reg = new RegExp("abc","gim");定义待校验的字符串
校验
1. 基本使用:


reg.test 函数是只要有一个就返回 true;
正则表达式定义在 script 标签中。
2. 全文匹配:


3. 忽略大小写匹配:


4. 多行匹配:


hello\nworld 整个字符串的结尾去;在正则表达式中被赋予特殊含义的字符,不能被直接当做普通字符使用。如果要匹配元字符本身,需要对元字符进行转义,转义的方式是在元字符前面加上\,例如:\^

1. \w 数字字母下划线


\n 换行符,所以控制台输出换行了;

\d \D 匹配数字非数字


\b 匹配单词的开始和结束(检测到空格代表一个单词)












