zoukankan      html  css  js  c++  java
  • web开发基础

    web开发:所谓web开发就是基于浏览器服务器的开发
    下面将web开发基础知识作个总结:
    1.http协议:是建立在TCP协议上的,基于请求响应的模型
    2.http请求:
    面试题:说说get与post的区别
    a.传递数据量:
    get只能传递1kb以下的数据,post可以传递大数据
    b.安全性:
    get请求,如果携带参数,参数会直接显示在浏览器上,而post不会
    所以post请求会更安全
    c.get请求,有请求参数,参数是在请求行的资源路径上
    post请求,请求参数在请求正文中,这就解释了第二条,为什么post请求更安全
    开发中,如果请求响应的是页面,则一般用get请求,不需要携带参数
    如果需要传递数据参与计算,或者js中的请求等等,常需要数据的交互,则使用post
    开发中常常使用chrome查看请求响应的内容,作调试
    3.servlet:
    web开发的核心java类,主要功能是接收浏览器的请求(数据),内部作相关运算,给出响应
    编写Servlet类:

    public class LifeServlet implements Servlet{
      @Override
      public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
      //接收请求,响应,类似于控制层的代码
      //这里请求,响应是可以自己设置的,自己设置请求头,请求体,响应头,响应状态,响应内容
      }
    }

    4.request,response
    当服务器接收到请求后,请求信息就会封装到request对象中,服务器给出响应后,响应信息就会封装到response中
    request的生命周期:
    接收请求时创建,产生响应后就会销毁,只存在一次请求响应之间
    注意:
    从Servlet跳转到jsp不算响应结束了,因为request域对象在jsp中还是可以用的,这是jsp的内置对象,后面会讲到
    应该这样说,从Servlet跳转到jsp,数据被jsp解析(el表达式各种)显示出来了,这样才算响应了,才是一次完整的请求响应
    那么程序是怎样从Servlet跳转到jsp的呢?
    两种方式:请求转发和重定向
    它们的区别是什么?
    先看看继承HttpServlet后重写的doPost方法(写Servlet的另外一种方式,该方法相当于service方法)里面的一块代码:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    .......
    //请求转发
    //将学生列表设置到requet中
    //request.setAttribute("student_list", studentList);
    //转发是在服务器端转发的,客户端是不知道的
    //request.getRequestDispatcher("/student_list.jsp").forward(request, response);
    
    //重定向
    //将studentList放到session中
    HttpSession session = request.getSession();
    session.setAttribute("student_list", studentList);
    response.sendRedirect(request.getContextPath() + "/student_list.jsp");
    }

    说明:
    请求转发是一次请求响应,转发发生在服务器内部,所以在这期间,requet域数据是共享的,所以可以数据可以存在requet域中,然后转发
    重定向实际上是一次请求响应,然后再一次请求响应,这样显然数据不能存在requet域中,可以存在session中,然后重定向
    为什么可以存在session中,涉及到session保存数据的周期,后面会讲到
    请求转发在服务器端完成的,重定向是在客户端完成的
    请求转发的速度快,重定向速度慢
    因为是一次请求,所以请求转发地址栏没有变化,而重定向地址栏会发生变化
    请求转发必须在一台服务器下完成,重定向可以在不同服务器下完成
    5.cookie与session
    这是浏览器的会话技术
    什么是会话:就是打开浏览器到关闭浏览器就是一次会话
    cookie是什么?
    可以这样理解:
    当浏览器请求服务器的时候,服务器会创建cookie(里面存储的访问数据)
    然后在响应的时候,将cookie发送给浏览器,最后在浏览器保存
    默认情况下:cookie的生命周期是一次会话,也就是关闭浏览器就没了
    可以使用方法,让cookie持久化(时间),让其关闭浏览器还存在,这有什么用?后面会讲到
    session:
    session是服务端的会话技术,但是session的实现依赖cookie
    默认情况下:session的生命周期也是一次会话.

    这就解释了为什么在关闭浏览器后,再次打开时又要重新登录了(登录信息存在session 中)

    依赖cookie,这也解释了为什么在浏览器清楚缓存后,也是要重新登录页面的
    在tomcat/conf/web.xml文件中有一段配置了如果session如果在30分钟没有使用就会销毁,这是可以更改的
    6.jsp的九大内置对象
    就是直接可以在jsp上使用的对象,包括request域对象,session域对象等
    其实jsp本质上是个特殊的servlet,就是为了接收数据显示数据
    接收数据,数据可以存在域对象中,也可以存在封装好的javaBean中
    显示数据,各种el表达式,jq前端框架
    工作中session域中存放:用户信息,用户角色,对于模块
    存用户角色是为了权限控制,在前端判断按钮的显示等等

  • 相关阅读:
    关于celery踩坑
    关于git的分批提交pull requests流程
    SymGAN—Exploiting Images for Video Recognition: Heterogeneous Feature Augmentation via Symmetric Adversarial Learning学习笔记
    AFN—Larger Norm More Transferable: An Adaptive Feature Norm Approach for Unsupervised Domain Adaptation学习笔记
    Learning to Transfer Examples for Partial Domain Adaptation学习笔记
    Partial Adversarial Domain Adaptation学习笔记
    Partial Transfer Learning with Selective Adversarial Networks学习笔记
    Importance Weighted Adversarial Nets for Partial Domain Adaptation学习笔记
    Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记
    improved open set domain adaptation with backpropagation 学习笔记
  • 原文地址:https://www.cnblogs.com/jaro/p/9020841.html
Copyright © 2011-2022 走看看