• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 问题清单 > 正文

    实验报告——Cookie及其应用操作

    时间:2020-11-18 16:46:00 来源:勤学考试网 本文已影响 勤学考试网手机站

    陕西国际商贸学院

    信息与工程学院

    《Web应用开发技术》实验报告

    实验名称:Cookie及其应用操作

    班级:信管B1201班

    学生姓名:吴兰

    实验地点:1S501实验室

    日期:2015年4月24日

    实验内容

    Cookie是客户访问Web服务器时,服务器在客户硬盘上存放的信息,好像是服务器送给客户的“点心”。Cookie实际上是一小段文本信息,客户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器。

    实验目的

    a:向客户发送Cookie对象

    b:从客户端读取Cookie

    c:用Cookie实现自动登录

    实验要求

    a:要把Cookie发送到客户端,Servlet先要使用Cookie类的构造方法创建一个Cookie对象,通过setXXX()设置各种属性,通过响应对象的addCookie(cookie)把Cookie加入响应头。

    b:要从客户端读入Cookie,Servlet应该调用请求对象的getCookies(),该方法返回一个Cookie对象的数组。大多数情况下,只需要用循环访问该数组的各个元素寻找指定名字的Cookie,然后对该Cookie调用getValue()取得与指定名字关联的值。

    c:当用户第一次登录网站,服务器将用户名和密码以Cookie的形式发送到客户端。当客户之后再次访问该网站时,浏览器自动将Cookie文件中的用户名和密码随请求一起发送到服务器,服务器从Cookie中取出用户名和密码并且通过验证,这样客户不必再次输入用户名和密码登录网站。

    算法分析

    a:创建一个Cookie对象:

    Cookie userCookie = new Cookie(“username”,”hacker”);

    将userCookie对象的最大存活时间设置为一个星期:

    userCookie.setMaxAge(60*60*24*7);

    向客户发送Cookie对象:

    response.addCookie(userCookie);

    b:调用请求对象的getCookies()方法:

    Cookie[] cookies=request.getCookies();

    c:GET方法首次访问请求中不包含Cookie,该Servlet将响应重定向到login.jsp页面。当输入正确的用户名和口令,且选中“自动登录”复选框,单击“提交”按钮,将发送POST请求由CheckUserServlet的doPost()处理。之后再发送GET请求,Servlet将从Cookie中检索出用户名和口令,并对其验证。

    部分程序清单

    a:SendCookieServlet.java

    public class SendCookieServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException {

    Cookie userCookie=new Cookie("username","hacker");

    userCookie.setMaxAge(60*60*24*7);

    response.addCookie(userCookie);

    response.setContentType("text/html;charset=UTF-8");

    PrintWriter out = response.getWriter();

    out.println(" <HTML><TITLE>发送Cookie</TITLE></HTML>");

    out.println("<BODY><H3>已向浏览器发送一个Cookie</h3></body>");

    out.println("</HTML>");

    }

    }

    b:ReadCookieServlet.java

    public class ReadCookieServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException {

    String cookieName="username";

    String cookieValue=null;

    Cookie[]cookies=request.getCookies();

    if(cookies!=null){

    for(int i=0;i<cookies.length;i++){

    Cookie cookie=cookies[i];

    if(cookie.getName().equals(cookieName))

    cookieValue=cookie.getValue();

    }

    }

    response.setContentType("text/html;charset=UTF-8");

    PrintWriter out = response.getWriter();

    out.println("<HTML><TITLE>读取cookie</TITLE></HTML>");

    out.println(" <BODY><h3>从浏览器读回一个cookie</h3>");

    out.println("Cookie名:"+cookieName+"<br>");

    out.println("Cookie值:"+cookieValue+"<br>");

    out.println(" </BODY>");

    out.println("</HTML>");

    }

    }

    c:login1.jsp

    <body>

    ${sessionScope.message}<br>

    <form action="CheckUserServlet"method="post">

    请输入用户名和口令:<br>

    用户名:<input type="text" name="username" /><br>口&nbsp; 令:<input type="password" name="password" /><br>

    <input type="checkbox" name="check" value="check" />自动登录<br>

    <input type="submit" value="提交" />

    <input type="reset" value="重置" />

    </form>

    </body>

    CheckUserServlet.java

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");

    String value1 = "",value2 = "";

    Cookie cookie = null;

    Cookie[] cookies = request.getCookies();

    if(cookie!=null){

    for(int i = 0;i<cookies.length;i++){

    cookie = cookies[i];

    if(cookie.getName().equals("username"))

    value1 = cookie.getValue();

    if(cookie.getName().equals("password"))

    value2 = cookie.getValue();

    }

    if(value1.equals("admin")&&value2.equals("admin")){

    message = "欢迎您!"+value1+"再次登录该页面!";

    request.getSession().setAttribute("message", message);

    response.sendRedirect("welcome.jsp");

    }else{

    response.sendRedirect("login1.jsp");

    }

    }else{

    response.sendRedirect("login1.jsp");

    }

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");

    String username = request.getParameter("username").trim();

    String password = request.getParameter("password").trim();

    if(!username.equals("admin")||!password.equals("admin")){

    message = "用户名或口令不正确,请重试!";

    request.getSession().setAttribute("message", message);

    response.sendRedirect("login1.jsp");

    }

    if(request.getParameter("check")!=null&&

    (request.getParameter("check").equals("check"))){

    Cookie nameCookie = new Cookie("username",username);

    Cookie pswdCookie = new Cookie("password",password);

    nameCookie.setMaxAge(60*60);

    pswdCookie.setMaxAge(60*60);

    response.addCookie(nameCookie);

    response.addCookie(pswdCookie);

    }

    message = "你已经成功登录!";

    request.getSession().setAttribute("message", message);

    response.sendRedirect("welcome.jsp");

    }

    }

    实验结果

    程序a的运行结果如图1所示

    图1 SendCookieServlet运行结果图

    程序b的运行结果如图2所示

    图2 ReadCookieServlet运行结果图

    程序c的运行结果如图3,图4,图5所示

    图3 登录成功运行结果图

    图4 welcome.jsp运行结果图

    图5 登录失败运行结果图

    实验总结

    通过对Cookie的学习,明白了Cookie是客户访问Web服务器时,服务器在客户硬盘上存放的信息,在实验中,根据参考代码及分析,能容易的理解并运行出来结果。

    • 下载文档
    • 收藏
    • 0

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问