详细javaweb基础

目录

🏳️‍🌈一、HTTP协议

   🍁 二、交互流程

   🍁 三、请求

     🍁四、响应

🏳️‍🌈二:Tomcat服务器

    三、request对象

    四、response对象


🏳️‍🌈一、HTTP协议

       1. 概念:超文本传输协议

        2. 作用:规范了客户端(浏览器)和服务器的数据交互格式

        3. 特点

            1. 简单快速:客户端向服务器请求服务时,仅通过键值对来传输请求方法和路径

            2. 灵活:允许传输任意类型的数据对象,正在传输的类型由Content-Type标记(例如图片,文本)

            3. 持续连接:处理完客户端的一个请求时候,服务器不立马关闭,而是在指定的时间之后才关闭

            4. 无状态:如果第二次请求中需要用到第一次请求的数据,那么必须在请求第一次的数据

   🍁 二、交互流程

       1. 连接:客户端和服务器端建立连接

        2. 请求:客户端发送请求数据到服务器端

        3. 响应:服务器端接收到请求后进行处理,将处理结果返回响应客户端

        4. 关闭:关闭客户端和服务器端连接(HTTP1.1版本之后不会立即关闭)

   🍁 三、请求

       1. 请求格式

            1. 请求行:请求方式、请求地址和HTTP协议版本

            2. 请求头:消息报头,附加信息,不包括核心数据

            3. 空行:请求头和请求实体之间的必须有空行

            4. 请求实体:核心数据,非必须

        2. 请求方式

            1. GET请求(没有请求实体):请求数据以?的形式拼接在请求头中,URL中有具体的请求数据,不安全,由于浏览器对URL的长度有限制,所以适合数据量小的传输           

            2. POST请求:请求数据字请求实体中发送,URL中没有具体的请求数据,安全,适合数据量大的传输

                

     🍁四、响应

        1. 响应格式

            1. 响应行:HTTP版本、状态码和状态消息

            2. 响应头:消息报头,附加信息

            3. 空行:响应头和响应实体之间必须存在空行

            4. 响应实体:服务器返回给客户端的数据

        2. 状态码

             1. 200:客户端请求成功

             2. 400:客户端请求有语法错误,不能被服务器所理解

             3. 403:服务器收到请求,但是拒绝服务

             4. 404:请求资源不存在(URL错误)

             5. 500:服务器发生不可预期的错误

             6. 503:服务器不能处理当前客户端的请求,一段时间后恢复正常

🏳️‍🌈二:Tomcat服务器

    一、概述

       1. 概念:Tomcat 服务器是一个免费的开源的轻量级Web 应用服务器(Java编写的),是开发和调试JSP 程序的首选。

        2. 作用:能够根据客户端的请求来启动并运行我们编写的数据逻辑代码。

    二、安装

       1. 下载

            1. Tomcat官网

                  

            2. 点击左侧Download下对应的版本

                  

            3. 下载压缩包(zip)

                 

              4. 解压即可

        2. 目录介绍

            1. bin:存放tomcat的命令,以.sh结尾的(linux命令),以.bat结尾的(windows命令)

                1. startup:启动Tomcat

                2. shutdown:关闭Tomcat

            2. conf:存放tomcat的一些配置文件

                1. server.xml:设置端口、域名或IP、默认加载的项目及请求编码

                2. web.xml:文件类型设置

                3. context.xml:配置数据源

                4. tomcat-users.xml:管理tomcat的用户与权限

            3. lib:存放tomcat运行需要加载的jar包

            4. log:存放tomcat在运行过程中产生的日志文件

            5. webapps:存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序

            6. work:存放tomcat在运行时的编译后文件

 

    三、检测安装

       1. 双击bin目录下的startup文件,不要关闭

        2. 在浏览器URL中输入:localhost:8080

        3. 如果跳转到tomcat推荐页面则安装成功

三:Servlet

    一、概述

       1. 概念:Servlet是指任何实现了这个Servlet接口的类,Servlet运行于支持Java的应用服务器中,Servlet只用来扩展基于HTTP协议的Web服务器。

        2. 作用 :交互式地浏览和修改数据,动态生成网页。

        2. 使用

            1. 创建普通的Java类继承HttpServlet

            2. 覆写service方法

            3. 在service方法中书写逻辑代码

            4. 在webRoot下的WEB-INF文件夹下的web.xml文件中配置servlet的别名

    二、访问流程和生命周期

       1. 访问流程

            1. 客户端输入URL(服务器地址:端口号/虚拟项目名/servlet的别名)发起请求到服务器

            2. 服务器解析请求URL地址中的URI信息(虚拟项目名/servlet的别名)

            3. 按照虚拟项目名在webapps目录下找到对应的项目文件

            4. 按照servlet的别名(url-pattern)在项目下的web.xml中检索对应的servlet

            5. 运行servlet-class中的所对应的servlet

        2. 生命周期

            1. 从第一次加载进内存(调用)到服务器关闭

            2. 在web.xml中配置了load-on-startup,生命周期为从服务器的启动到服务器的关闭

        3. doGet、doPost、service方法的区别

            1. service方法:可以处理get/post方式的请求,如果servlet中有service方法,会优先调用service方法对请求进行处理。如果service方法中调用了父类的service方法,那么在此service执行完成之后会再次执行对应请求的处理方法,如果不存在会报405错误,一般情况下不会调用。

            2. doGet方法:只能处理get方式的请求

            3. doPos方法: 只能处理post的请求方式

    三、request对象

       1. 概述

           1. 概念: 封装了所有请求信息,由服务器创建并作为实参传递给处理请求的servlet的service方法。

           2. 作用:解决了一次请求内的数据共享问题

           3. 作用域:一次请求内

       2. 获取请求行数据

           1. 获取请求方式:String method = req.getMethod();

           2. 获取请求URL:String url = req.getRequestURl();

           3. 获取请求URI: String uri = req.getRequestURI();

           4. 获取请求协议:String scheme = req.getScheme();

       3. 获取请求头数据

           1. 获取指定的请求头数据:String header = req.getHeader("键名");

           2. 获取所有请求头键的枚举

               Enumeration e = req.getHeaderNames();
               while(e.hasMoreElements) {
                   String name = (String) e.nextElement();
                   String value = req.getHeader(name);
                   System.out.println(name + ":" + value);
               }

       4. 获取用户数据

           1. 获取指定的用户数据:String name = req.getParameter("键名");

           2. 获取同键不同值的用户数据(多选):  String[]  values = req.getParameterValues("键名");

       5. 设置请求编码格式:req.setCharacterEncoding("")

       6. 请求转发

           1. 作用:多个servlet联动操作处理请求。

           2. 特点:一次请求(只有一个request对象),地址栏信息不改变。

           3. 使用: req.getRequestDispatcher("jsp路径").forward(req, resp);

                           return;

       7. 数据的存储和获取(存储优先于获取)

           1. 存储:req.setAttribute(Object name, Object value);

           2. 获取:req.getAttribute(Object obj);

    四、response对象

        1. 概述

             1. 概念:封装了所有响应信息,由服务器创建并作为实参传递给要处理请求的servlet的service方法

             2. 作用:将服务器的信息响应给浏览器

         2. 设置响应编码格式:resp.setContentType("text/html;charset=utf-8");

         3. 设置响应状态码:sendError(int sc, String msg);

         4. 设置响应头

             1. 同键会覆盖:setHeader(“键名”, “键值”);

             2. 同键不覆盖:addHeader(“键名”, “键值”);

         5. 设置响应实体

             1. 响应字符串或HTML页面:resp.getWrite().write("");

             2. 请求重定向:resp.sendRedirect("uri");

         6. 请求重定向

             1. 作用:解决表单重复提交并将不能处理的请求交给其他servlet处理。

             2. 特点:多次请求(多个request对象),地址栏信息改变。

             3. 使用:resp.sendRedirect("uri");

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是很菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值