获取表单数据
表单如下:
<form action="#" method="post">
用户名:<input type="text" name="userName"><br/>
密 码:<input type="text" name="passWord"><br/>
<input type="submit" value="提交">
</form>
在通过表单将请求提交到
servlet后,可以通过
request对象获取表单中的数据。
获取方式:
1.通过数据的name获取
request.getParameter(String name);
2.获取所有数据,存入map中
request.getParameterMap();
3.获取所有数据的name
request.getParameterNames();
请求 Request域对象
内部维护了一个map集合,可以添加获取删除值。
作用范围:只对一次请求有效。
请求转发
一次请求,并且响应到网页的是转发后的响应结果
// 通过请求对象获取请求转发器
RequestDispatcher requestDispatcher = request.getRequestDispatcher(path);
// 转发
requestDispatcher.forward(request, response);
请求重定向
两次请求,超出了request域的作用范围,不能使用request域进行传值
// 参数是重定向的地址
response.sendRedirect("/sh-web-03/demo03");
请求包含
一次请求(可以用request域传值)
两个servlet的响应结果会一起返回给浏览器
// 获取请求转发器
RequestDispatcher dispatcher = request.getRequestDispatcher(path);
dispatcher.include(request, response);
会话技术
会话:客户端和服务端之间的交互。
当我们访问网页时,只要浏览器不关闭,点击多少次链接都叫一次会话,关闭浏览器就结束了这次会话。
客户端技术:
Cookie 保存在客户端(浏览器)中,就是一个文件。
每个网站可以保存200个cookie,每个浏览器可以保存300个cookie,每个cookie可以保存4kb的数据。
cookie有默认的存活时间,就是一次会话。当浏览器被关闭,cookie被清除
cookie默认保存在浏览器的内存中,可以设置cookie的存活时间,当cookie的存活时间大于0时,浏览器就会将cookie保存到硬盘中。
注意:cookie不能保存中文。
cookie存活时间的设置
setMaxAge(时间 以秒为单位)
正值:值是多少,浏览器就保存多少秒。
负值:浏览器不会存储cookie到硬盘当中,当会话结束时,cookie被删除。
0:cookie被删除。
cookie的创建:
Cookie cookie = new Cookie(String name, String value);
设置cookie的保存路径
cookie.setPath(path);
"/"表示该工程下的所有servlet都能访问,保存时相当于按工程名来存
设置cookie存活时间
cookie.setMaxAge(300);
添加cookie到响应中
response.addCookie(cookie);
在请求中获取cookie
Cookie[] cookies = request.getCookies();
服务器技术 HttpSession
Session是保存在服务端的