request对象的常见方法:
通过request对象的getParameter()方法可以获取用户提交的表单信息。
例如存在一个name属性为username的文本框,在表单提价后,要获取其value值,可通过以下代码实现:
前端的写法:
<p align="center">用户名:<input type="text" name="username"/></p>
String userName=request.getParameter(“username”);
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="check.jsp" method="post">
<p align="center">用户名:<input type="text" name="username"/></p>
<p align="center">密 码:<input type="password" name="pwd"/></p>
<p align="center"><input type="submit" value="登录"/></p>
</form>
</body>
</html>
创建show.jsp页面,在该页面中获取用户提交的表单信息并显示在页面中
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
%>
<%
if(username.equals("123456") && pwd.equals("123456"))
{
out.print("登录成功");
}else {
out.print("失败");
}
%>
</body>
</html>
请求转发 | 重定向 | |
---|---|---|
地址栏是否改变 | 不变(check.jsp) | 改变(success.jsp) |
是否保留第一次请求时的数据 | 保留 | 不保留 |
请求的次数 | 1 | 2 |
跳转发生的位置 | 服务端 | 客户端发出的第二次跳转 |
Cookie是由服务端生成的,再发送给客户端保存。
相当于本地缓存的作用:客户端(hello.mp4) —> 服务端(hello.mp4)。
作用:提高访问服务端的效率,但是安全性较差。
Cookie:key=value
javax.servlet.http.Cookie
服务端准备Cookie
response.addCookie(Cookie cookie);
页面跳转(转发、重定向)
客户端获取Cookie:
request.getCookies();
通过F12可以发现,除了自己设置的Cookie对象外,还有一个name为JSESSIONID的cookie。
服务端增加cookie
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//服务端
Cookie cookie1 = new Cookie("name","zs");
Cookie cookie2 = new Cookie("pwd","abc");
response.addCookie(cookie1);
response.addCookie(cookie2);
//页面跳转到客户端(转发,重定向)
response.sendRedirect("result.jsp");
%>
</body>
</html>
客户端获取cookie
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie cookie:cookies){
out.print(cookie.getName() + " " + cookie.getValue() + "
");
}
%>
</body>
</html>
开始-结束
客户端第一次请求服务端时,(会进行一次匹配)服务端会产生一个Seesion对象(用于保存该客户的信息),并且每个Session对象都会有一个唯一的的SessionID(用于区分其他Session)
服务端会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端SessionID的值,然后服务端会在响应客户端的同时,将该cookie发送给客户端,至此,客户端就有了一个cookie(JSESSIONID)
因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID-SessionID)
客户端第2/n次请求服务端时:服务端会先用客户端cookie中的JSESSIONID去服务端的session中匹配SessionID。
如果匹配成功(cookie - JSESSIONID和Session - SessionID),说明用户不是第一次访问,无需登录。
Session方法
session | cookie | |
---|---|---|
保存的位置 | 服务端 | 客户端 |
安全性 | 较安全 | 较不安全 |
保存的内容 | Object | String |
以上对象共有的方法