session和cookie的区别(及实例测试)

一、session和cookie的共同点

  • (1)session :处理用户会话,与登录有关。
  • (2)cookie :处理用户会话,与登录有关。

二、session和coookie的区别

  • (1)session生成的数据在服务器,cookie生成的数据在客户端浏览器。
  • (2)有效期计算方式不同:
    session:有效从最后一次请求结束后,开始计时。
    cookie:有效期固定,从创建时开始计时。
  • (3)安全性不同
    session:数据存储在服务器,客户端浏览器无法干预数据,非常安全。
    cookie: 数据储存在客户端浏览器。用户可以改造或者删除cookie数据。

三、实例测试

  • (1)测试页面
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginServlet" method="post">
    用户名:<input type="text" name="username"/><br/>
    
    <input type="submit" value="登录"/><br/>
    <a href="sessionUser.jsp">验证session</a>
    <a href="cookieUser.jsp">验证cookie</a>
</form>
</body>
</html>
  • (2)sessionUser.jsp,session测试页面。
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
  //获取的session是对象要强制转化为String
  String uname =(String)session.getAttribute("session_uname");
  
  //判断session有没有失效
  if(null != uname){
	  out.print("session中获取用户名"+uname+"</p>");
	  out.print("<p>用户名:"+uname+"</p>");
	  
  }
  else{
	  response.sendRedirect("login.jsp");
  }
  
%>
</body>
</html>
  • (3)cookieUser.jsp,cookie测试页面。
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<% 
      //从浏览器获取cookie
      Cookie[] cookies = request.getCookies();

      String uname = null;
      
      //判断语句条件小技巧
      if(null != cookies){
    	  for(Cookie cookie:cookies){
    		//遍历本地浏览器中的所有cookie
    		if(cookie.getName().equals("cook_name")){
    			//把cookie中的用户名取出
    			uname = cookie.getValue();
    		}
    		//out.print("<p>name: " + cookie.getName()+"</p>");
    		//out.print("<p>value: " + cookie.getValue()+"</p>");
    			
    		}
    	  
    	  }
      //判断cookie有没有失效
     if(null != uname){
    	out.print("<p>用户名:"+uname +"</p>");
     }
     else{
    	 response.sendRedirect("login.jsp");
     }
%>
</body>
</html>
  • (4)servlet文件。
package com.servlet;

import java.io.IOException;
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;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//获取他用户登录名
		String username = request.getParameter("username");
		
		//获取
		HttpSession session = request.getSession();
		
		//放入session
		session.setAttribute("session_uname", username);
		
		//设置有效期
		session.setMaxInactiveInterval(5);//设置5秒
		
		
		//跳转到验证页面
		//response.sendRedirect("sessionUser.jsp");
		
		//创建cookie
		Cookie cookie  = new Cookie("cook_name",username);
		
		//设置Cookie有限期
		cookie.setMaxAge(6);//有效期6秒
		
		//写入cookie到浏览器
		response.addCookie(cookie);
		response.sendRedirect("cookieUser.jsp");
		
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

四、测试页面

  • 测试界面见下图:
    在这里插入图片描述
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当然可以。以下是一个使用Python进行登录测试的简单示例代码: ```python import requests # 定义登录接口的URL和表单参数 url = 'http://example.com/login' data = {'username': 'myusername', 'password': 'mypassword'} # 使用session对象发送POST请求进行登录 with requests.Session() as session: response = session.post(url, data=data) # 检查登录是否成功 if 'Welcome' in response.text: print('登录成功!') else: print('登录失败!') ``` 以上代码使用requests库实现自动登录。我们首先定义了登录接口的URL和表单参数,然后创建了一个Session对象。使用Session对象发送POST请求进行登录,这将在服务器上创建一个会话并将cookie存储在本地。最后,我们检查登录是否成功,如果成功,就打印出“登录成功!”。否则,我们会得到“登录失败!”的消息。 ### 回答2: Python是一种功能强大的编程语言,可以使用其进行自动化登录测试。下面我将给出一个简单的实例: ```python import time from selenium import webdriver from selenium.webdriver.common.keys import Keys def login(username, password): driver = webdriver.Chrome() # 假设使用Chrome浏览器 driver.get("https://example.com/login") # 假设登录页面的网址是example.com/login # 填写用户名和密码 username_field = driver.find_element_by_id("username") username_field.send_keys(username) password_field = driver.find_element_by_id("password") password_field.send_keys(password) # 模拟按下回车键登录 password_field.send_keys(Keys.RETURN) # 等待页面加载完成 time.sleep(5) # 判断登录是否成功 if driver.current_url == "https://example.com/home": # 假设登录成功后会跳转到example.com/home print("登录成功!") else: print("登录失败!") # 关闭浏览器 driver.quit() # 调用登录函数进行测试 login("your_username", "your_password") ``` 在上述代码中,我们使用Python的Selenium库来操控WebDriver进行自动化登录测试。首先,我们创建了一个WebDriver实例,指定使用Chrome浏览器,并访问了登录页面的URL。然后,我们找到用户名和密码的输入框,并使用`send_keys`方法填写相应的信息。接下来,我们模拟按下回车键进行登录,并使用`time.sleep`方法暂停一段时间,以等待页面加载完成。最后,我们通过判断当前URL是否是登录成功后的页面来确定登录是否成功。最后,我们关闭了浏览器。 通过这个简单的实例,我们可以使用Python来进行自动化登录测试,提高测试效率和准确性。请注意,实际使用时,可能需要根据具体的需求进行一些自定义。 ### 回答3: Python可以通过各种库和框架来实现自动化的登录测试,其中最常用的是Selenium库与Webdriver。下面我将通过一个简单的实例来演示如何使用Python自动化进行登录测试。 首先,你需要安装Selenium库和对应浏览器的Webdriver驱动程序。以Chrome浏览器为例,你可以使用以下代码进行安装: ``` pip install selenium pip install webdriver_manager ``` 接下来,导入相应的库并启动浏览器: ```python from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) ``` 然后,在浏览器中打开登录页面: ```python driver.get("https://example.com/login") ``` 接下来,找到用户名和密码的输入框,并输入相应的值: ```python username = driver.find_element_by_id("username") # 根据实际情况修改定位方式 username.send_keys("your_username") password = driver.find_element_by_id("password") # 根据实际情况修改定位方式 password.send_keys("your_password") ``` 最后,点击登录按钮: ```python login_button = driver.find_element_by_id("login_button") # 根据实际情况修改定位方式 login_button.click() ``` 完成以上步骤后,你就可以通过以下代码来验证登录是否成功: ```python # 假设登录成功后会跳转到https://example.com/home页面 if driver.current_url == "https://example.com/home": print("登录成功!") else: print("登录失败!") ``` 当然,以上只是一个简单的示例,实际的登录测试可能涉及更多的步骤和复杂的逻辑。但通过使用Selenium库和Python的编程能力,你可以灵活地实现各种自动化的登录测试,并处理不同的场景和异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值