cookie与session区别并写出案例代码
时间: 2024-05-09 12:19:55 浏览: 9
cookie是存储在客户端的小型文本文件,用于跟踪用户的活动和存储用户的首选项。它能够在浏览器和服务器之间传递数据。session是在服务器端存储的变量,用于存储用户的会话信息,包括登录信息、购物车、订单等。
案例代码:
设置cookie:
```
<?php
// 设置cookie
setcookie("username", "tom", time()+3600); // 有效期为一小时
?>
```
获取cookie:
```
<?php
// 获取cookie
echo $_COOKIE["username"]; // 输出:tom
?>
```
设置session:
```
<?php
// 开启session
session_start();
// 设置session变量
$_SESSION["username"] = "tom";
?>
```
获取session:
```
<?php
// 开启session
session_start();
// 获取session变量
echo $_SESSION["username"]; // 输出:tom
?>
```
相关问题
写一段PHP代码用cookie与session实现登录
以下是一个简单的 PHP 代码示例,使用 cookie 和 session 实现登录功能:
<?php
session_start(); // 开启 session
// 检查是否已经登录
if(isset($_SESSION['username'])) {
echo "您已经登录,欢迎回来 {$_SESSION['username']}!";
exit;
}
// 如果提交了登录表单
if(isset($_POST['username']) && isset($_POST['password'])) {
// 验证用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];
if($username === 'admin' && $password === '123456') {
// 验证通过,将用户信息存储到 session 中
$_SESSION['username'] = $username;
// 如果用户选择了记住我,则将用户名和密码存储到 cookie 中
if(isset($_POST['remember']) && $_POST['remember'] === 'on') {
setcookie('username', $username, time() + 3600 * 24 * 7); // 保存 7 天
setcookie('password', $password, time() + 3600 * 24 * 7);
}
// 跳转到首页
header('Location: index.php');
exit;
} else {
echo "用户名或密码错误!";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form method="post" action="">
<label>用户名:<input type="text" name="username"></label><br>
<label>密码:<input type="password" name="password"></label><br>
<label><input type="checkbox" name="remember">记住我</label><br>
<button type="submit">登录</button>
</form>
</body>
</html>
用Java写一个cookie与session实现登录的代码
好的,以下是示例Java代码实现cookie与session实现登录的功能:
```
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO: 从请求对象中获取用户名和密码参数
String username = request.getParameter("username");
String password = request.getParameter("password");
// TODO: 校验用户名和密码是否正确
if ("user".equals(username) && "password".equals(password)) {
// 登录成功
HttpSession session = request.getSession(true); // 创建或者获取会话对象
session.setMaxInactiveInterval(60 * 60 * 2); // 设置会话有效期为2小时
session.setAttribute("username", username); // 在会话中存储用户信息
// 创建一个cookie存储sessionId, 并设置有效期为2小时
Cookie cookie = new Cookie("sessionId", session.getId());
cookie.setMaxAge(60 * 60 * 2);
response.addCookie(cookie);
// TODO: 登录成功后跳转到主页
response.sendRedirect("/index.jsp");
} else {
// 登录失败
response.getWriter().write("Username or password is incorrect!");
}
}
}
```
在以上代码中,我们通过HttpServletRequest对象从请求中获取用户名和密码参数,然后校验用户名和密码是否正确。如果正确,就创建一个新的HttpSession对象,并在其中存储用户信息,并将sessionId存储在Cookie中。之后,将sessionId返回给客户端,客户端会自动将其存储在浏览器中。登录成功之后会自动跳转到主页。