JavaWeb基础知识

1、对象地址

当一个对象作为参数,传递到方法当中时,实际上传递进去的时对象的地址值

数组作为方法参数传递,传递的参数是数组内存的地址值

2、抛出异常

  • try、catch可以抛出异常(signture不行)
  • throw关键字,指定的方法中抛出指定的异常,(RuntimeException的子类对象,默认交给JVM处理(打印异常对象,中断程序))
  • 当只有在try或者catch中调用退出JVM的相关方法,此时finally才不会执行,否则finally永远会执行

3、web相关概念

  • 1、软件架构

    • C/S:客户端/服务器端
    • B/S:浏览器/服务器端
  • 2、资源分类

    1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 如: html,css,JavaScript
    2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器 如:servlet/jsp,php,asp…
  • 3、网络通信三要素

    1. IP:电子设备(计算机)在网络中的唯一标识。

    2. 端口:应用程序在计算机中的唯一标识。 0~65536

    3. 传输协议:规定了数据传输的规则

      1.基础协议:

      1. tcp:安全协议,三次握手。 速度稍慢
      2. udp:不安全协议。 速度快

4、Servlet

  • 1、概念:运行在服务器端的小程序(server applet)

    1. Servlet就是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则。

    2. 将来我们自定义一个类,实现Servlet接口,复写方法。

  • 2、执行原理

    1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
    2. 查找web.xml文件,是否有对应的标签体内容。
    3. 如果有,则在找到对应的全类名
    4. tomcat会将字节码文件加载进内存,并且创建其对象
    5. 调用其方法
  • 3、Servlet中的生命周期方法

    1. 被创建:执行init方法,只执行一次
    • 默认情况下,第一次被访问时,Servlet被创建
    • 说明一个Servlet在内存中只存在一个对象,Servlet是单例的
    1. 提供服务:执行service方法,执行多次
    • 每次访问Servlet时,Service方法都会被调用一次。
    1. 被销毁:执行destroy方法,只执行一次
    • Servlet被销毁时执行。服务器关闭时,Servlet被销毁;

    • 只有服务器正常关闭时,才会执行destroy方法;

    • destroy方法在Servlet被销毁之前执行,一般用于释放资源。

  • 4 、Servlet3.0

    • 支持注解配置。可以不需要web.xml
    • 在类上使用@WebServlet(“资源路径”),进行配置
  • 5、HttpServlet

    HttpServlet:对http协议的一种封装,简化操作(继承Servlet)

    1. 定义类继承HttpServlet
    2. 复写doGet/doPost方法(封装了req.getMethod判断时get还是post)
    

5、HTTP

  • 1、概念

    传输协议:定义了,客户端和服务器端通信时,发送数据的格式
    特点:

    1. 基于TCP/IP的高级协议

    2. 默认端口号:80

    3. 基于请求/响应模型的:一次请求对应一次响应

    4. 无状态的:每次请求之间相互独立,不能交互数据

    5. 历史版本:

      1:每一次请求响应都会建立新的连接
      2:复用连接

  • 2、请求消息数据格式(HttpServletRequest )

    1. 请求行

      请求方式:
      HTTP协议有7中请求方式,常用的有2种
      GET:
      1. 请求参数在请求行中,在url后。
      2. 请求的url长度有限制的
      3. 不太安全
      POST:
      1. 请求参数在请求体中
      2. 请求的url长度没有限制的
      3. 相对安全

    2. 请求头:客户端浏览器告诉服务器一些信息

      请求头名称: 请求头值

      常见的请求头:

      1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息

        可以在服务器端获取该头的信息,解决浏览器的兼容性问题

      2. Referer:http://localhost/login.html

        告诉服务器,我(当前请求)从哪里来?

        作用:

        1. 防盗链:
        2. 统计工作:

​ 3.请求空行 : 空行,就是用于分割POST请求的请求头,和请求体的

​ 4. 请求体(正文) : 封装POST请求消息的请求参数的

  • 3、响应消息

    1. 响应行

    2. 组成:协议/版本 响应状态码 状态码描述

    3. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态

      1. 状态码都是3位数字

        1. 分类:

          1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码

          2. 2xx:成功。代表:200

          3. 3xx:重定向。代表:302(重定向),304(访问缓存)

          4. 4xx:客户端错误。

            404(请求路径没有对应的资源)

            405:请求方式没有对应的doXxx方法

          5. 5xx:服务器端错误。代表:500(服务器内部出现异常)

    4. 响应头:

      1. 格式:头名称: 值
      2. 常见的响应头:
        1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
        2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
    5. 响应空行

    6. 响应体:传输的数据

6、Request

  • 1、request对象和response对象的原理

    1. request和response对象是由(tomcat)服务器创建的。我们来使用它们
    2. request对象是来获取请求消息,response对象是来设置响应消息
  • 2、request功能

    1. 获取请求消息数据
    2. 获取请求行数据:请求方式,虚拟目录,路径,参数,url
    3. **请求头(Header)**数据
    4. 请求体数据(post请求):字符输入流(操作字符数据),字节输入流(所有类型数据)
    5. 获取请求参数通用方式

    ​ 1.根据参数名称获取参数值 username=zs&password=123

    ​ 2.根据参数名称获取参数值的数组 hobby=xx&hobby=game

    ​ 3.获取所有请求的参数名称

    ​ 4.获取所有参数的map集合

    3.中文乱码问题:
    get方式:tomcat 8 已经将get方式乱码问题解决了
    post方式:会乱码
    解决:在获取参数前,设置request的编码request.setCharacterEncoding(“utf-8”);

    4.请求转发:一种在服务器内部的资源跳转方式

    5.共享数据:

    ​ 域对象:一个有作用范围的对象,可以在范围内共享数据

    ​ request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

    1. 获取ServletContext(代表整个web应用)

7、Response

  • 1、设置响应消息

    1. 设置响应行

      1. 格式:HTTP/1.1 200 ok
      2. 设置状态码:setStatus(int sc)
    2. 设置响应头:setHeader(String name, String value)

    3. 设置响应体:

      1. 获取输出流

        字符输出流:PrintWriter getWriter()

        字节输出流:ServletOutputStream getOutputStream()

      2. 使用输出流,将数据输出到客户端浏览器

  • 2、重定向(资源跳转的方式)

    //简单的重定向方法
    response.sendRedirect("/day15/responseDemo2");

    1、重定向的特点:redirect
    1. 地址栏发生变化
    2. 重定向可以访问其他站点(服务器)的资源
    3. 重定向是两次请求。不能使用request对象来共享数据
    2、转发的特点:forward
    1. 转发地址栏路径不变
    2. 转发只能访问当前服务器下的资源
    3. 转发是一次请求,可以使用request对象来共享数据

  • 3、 服务器输出字节数据到浏览器(验证码)

8、ServletContext对象

  • 1、概念:代表整个web应用,可以和程序的容器(服务器)来通信

  • 2、获取

    1. 通过request对象获取
      request.getServletContext();
    2. 通过HttpServlet获取
      this.getServletContext();
  • 3、功能

    1. 获取MIME类型:

      ​ MIME类型:在互联网通信过程中定义的一种文件数据类型

      ​ 格式: 大类型/小类型 text/html image/jpeg

      ​ 获取:String getMimeType(String file)

    2. 域对象:共享数据

    3. 获取文件的真实(服务器)路径

      1. web目录下资源访问/WEB-INF目录下的资源访问…

9、会话(Cookie/Session)

  • 1、概念

    1.会话:一次会话中包含多次请求和响应。
    一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止

    1. 功能:在一次会话的范围内的多次请求间,共享数据
    2. 方式:
      1. 客户端会话技术:Cookie
      2. 服务器端会话技术:Session
  • 2、Cookie

    • 1.客户端会话技术,将数据保存到客户端

    • 2.使用步骤:

      1.创建Cookie对象,绑定数据
      new Cookie(String name, String value)

         	2. 发送Cookie对象
       	response.addCookie(Cookie cookie) 
      	3. 获取Cookie,拿到数据
          Cookie[]  request.getCookies()  
      
    • 3.实现原理: 基于响应头set-cookie和请求头cookie实现

    • 4.Cookie的特点和作用

      1. cookie存储数据在客户端浏览器

      2. 浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个)

        1. cookie一般用于存出少量的不太敏感的数据

          2.在不登录的情况下,完成服务器对客户端的身份识别

  • 3、Session

    1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。

    2. 快速入门:

      1. 获取HttpSession对象:

        HttpSession session = request.getSession();
        
      2. 使用HttpSession对象:

        Object getAttribute(String name)  
        void setAttribute(String name, Object value)
        void removeAttribute(String name) 
        

    3.原理:Session的实现是依赖于Cookie的

    4. session的特点

    1. session用于存储一次会话的多次请求的数据,存在服务器端
    2. session可以存储任意类型,任意大小的数据
        3.session与Cookie的区别:
    	1. session存储数据在服务器端,Cookie在客户端
    	2. session没有数据大小限制,Cookie有
    	3. session数据安全,Cookie相对于不安全
    

10 、EL表达式

  1. 作用:替换和简化jsp页面中java代码的编写

  2. 语法:${表达式}

  3. 获取值

    el表达式只能从域对象中获取值

    ${域名称.键名}:从指定域中获取指定键的值

11、Filter:过滤器

  • 1、概念

    • web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。

    • 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤

  • 2、快速入门:

    1. 定义一个类,实现接口Filter
    2. 复写方法
    3. 配置拦截路径(web.xml/注解)
  • 3、过滤器执行流程

    1. 执行过滤器
    2. 执行放行后的资源
    3. 回来执行过滤器放行代码下边的代码
  • 4、过滤器生命周期方法

      	1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源
        	2. doFilter:每一次请求被拦截资源时,会执行。执行多次
            3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源
    

12、Listener:监听器

  • 1、概念:web的三大组件之一。
    事件监听机制
    事件 :一件事情
    事件源 :事件发生的地方
    监听器 :一个对象
    注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码

13、AJAX

  • 1.概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML

    1. 异步和同步:客户端和服务器端相互通信的基础上

      ​ 同步: 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。

      ​ 异步:客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作

    2. Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
      通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。
      传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

    3. 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。

  • 2、JQeury实现方式

    * 语法:$.ajax({键值对});
    //使用$.ajax()发送异步请求
    $.ajax({
        url:"xxx/hello" , // 请求路径
        type:"POST" , //请求方式
        //data: "username=jack&age=23",//请求参数
        data:{"username":"jack","age":23},
        success:function (data) {//响应成功后的回调函数
            alert(data);
        },
        error:function () { //表示如果请求响应出现错误,会执行的回调函数
            alert("出错啦...")
        },
    });
    

    14、JSON

  • 1、概念:JavaScript对象表示法

    1. json现在多用于存储和交换文本信息的语法
    2. 进行数据的传输
    3. JSON 比 XML 更小、更快,更易解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值