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域中存放:用户信息,用户角色,对于模块
    存用户角色是为了权限控制,在前端判断按钮的显示等等

  • 相关阅读:
    两数之和
    dict用法
    xgboost
    常见报错
    四、ABP 学习系列
    Apache Htpasswd生成和验证密码
    ABP 学习系列
    Gradle 配置
    ArcGis教程
    在线排程设置生成器Quartz
  • 原文地址:https://www.cnblogs.com/jaro/p/9020841.html
Copyright © 2011-2022 走看看