• httpservlet----one


    package secondWeb;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    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;

    public class one extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setContentType("text/html;charset=UTF-8");
    PrintWriter out = resp.getWriter();
    // 获取前台单个元素的值
    String userName = req.getParameter("userName");
    String pwd = req.getParameter("pwd");
    String[] loves = req.getParameterValues("love");// 获取一组具有相同名字的元素的值
    out.println("从前台获取的数据如下:" + "<br/>");
    out.println("userName:" + userName + "<br/>");
    out.println("pwd:" + pwd + "<br/>");
    out.println("love:");
    if (loves != null) {
    for (String s : loves) {
    out.print(s + " ");
    }
    }
    /*
    * cookie和session的区别 1、存放位置不同。cookie存放在客户端上;session的内容存放在服务器上
    * 2、session对cookie具有依赖性。cookie当中会存放一个session的id
    * 3、大小不同。cookie的大小固定,每条限制在4K,每个浏览器支持的cookie数量大约在120-140之间;
    * session可存储大量数据,但会占用服务器资源
    * 4、安全性不同。cookie的内容是浏览器可见的,安全性较低;session内容由于在服务器上,安全性较高
    */
    HttpSession se = req.getSession();// 创建一个HttpSession
    se.setMaxInactiveInterval(3600);// 设置session在服务器的过期时间为3600秒
    se.setAttribute("pwd", pwd);// 为session设置一个键值对
    Cookie cookie = new Cookie("name", userName);// 创建一个cookie,它里面的存放了一个键值对
    cookie.setMaxAge(3600); // 设置cookie的过期时间为3600秒
    resp.addCookie(cookie);// 将新创建的cookie添加到文件中
    /*当浏览器关闭时,原来保存sessionid的cookie也将被消除。当我们重新打开浏览器时,虽然服务器仍然有session的记录,
    * 但实际会新打开一个session,为了获取原来session里面的值,可以将第一次的sessionid保存下来*/
    Cookie seCookie = new Cookie("JSESSIONID", se.getId());// 创建一个session的cookie,存放了session的id
    cookie.setMaxAge(3600);
    resp.addCookie(seCookie);

    /*
    * 请求转发和响应重定向的区别: 1、完成的对象不同。转发是在服务器端进行工作;重定向是由客户端浏览器来完成
    * 2、范围不同。转发只能在服务器当前工程内部进行;重定向的目的页面可以是服务器当前工程内部,也可以是外部页面
    * 3、最终的地址栏不同。转发仅是将业务交由其它页面处理,然后再返回给发送者,地址栏不会发生变化;重定向是整个页面都跳转到一个新的路径下
    * 4、请求的次数不同。转发仅发生一次请求,请求的信息不会变;重定向将发生至少两次请求,第一次请求的信息在后面将不会再存在
    **/
    // resp.sendRedirect("second");//重定向到url为second的路径上
    // req.getRequestDispatcher("second").forward(req,
    // resp);//转发到url为second的路径上
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("进入了post方法");
    /*
    * get和post方法的区别 1、提交的数据类型。get仅能提交文本;post可以提交文本和二进制文本
    * 2、提交的数据长度。get不能超过255个字符;post理论上没有限制
    * 3、提交数据的可见性。数据在get中作为URL地址的一部分显示在浏览器地址栏,用户可见,安全性低;post的数据作为消息体,用户不可见,
    * 安全性高 4、提交数据缓存。get方法会缓存在浏览器URL的历史状态中;post方法不会被浏览器缓存
    */
    doGet(req, resp);// 使用post的时候,将具体的逻辑操作放在doGet方法中
    }

    }

  • 相关阅读:
    JVM体系结构之五:本地方法栈
    netty中的ByteBuf
    AtomicLong和LongAdder的区别
    Python介绍
    netty支持的协议
    spring扩展点之四:Spring Aware容器感知技术,BeanNameAware和BeanFactoryAware接口,springboot中的EnvironmentAware
    Netty组件
    《深入Java虚拟机学习笔记》- 第9章 垃圾收集
    《深入Java虚拟机学习笔记》- 第8章 连接模型
    netty中的EventLoop和EventLoopGroup
  • 原文地址:https://www.cnblogs.com/quanby/p/5612380.html
Copyright © 2020-2023  润新知