java开发必备的Tomcat-servlet-http和spring boot基础入门

tomcat


    介绍


        概念: Tomcat是一个开源免费的轻量级Web服务器,是Apache软件基金会的核心项目,支持Servlet/JSP少量JavaEE(JakartaEE)规范。

        JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。

 tomcat官网:

          官网:https://tomcat.apache.org/

      

Tomcat 也被称为 Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行 。

 

    安装步骤:

  •         下载:官网下载地址:https://tomcat.apache.org/download-90.cgi
  •         安装:绿色版,直接解压即可
  •         卸载:直接删除目录即可
  •         启动:双击 bin/startup.bat
  •         关闭:

                    直接×掉运行窗口,强制关闭

                    bin/shutdown.bat正常关闭    

                     ctrl+c 正常关闭

  •         部署项目:将项目放置在webapps目录下,即部署完成
第一步:下载

第二步:解压

卸载方式

直接右击删除即可

第三步:启动

在bin目录里面,点击startup.bat 

测试

在启动tomcat之后,在浏览器输入:http://localhost:8080

出现这个页面代表tomcat安装成功

第四步:关闭

点击bin目录里面的shutdown.bat

或者 ctrl+c

或者 直接点×

    配置

        控制台日志编码配置:

       在tomcat目录下点击 conf

找到logging.properties 打开

找到里面的第51行,把最后面的UTF-8 换成GBK


     
        Tomcat运行端口号(默认8080):可以自己配置

                tomcat目录下点击,点击conf目录选择server.xml


       

找到这里,就可以修改端口号了

 BS架构:

介绍:

BS架构: Browser/Server,浏览器/服务器 架构模式。它的特点是:客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可 (便于升级维护)。

静态资源:

服务器上存储的不会改变的数据,通常不会根据用户的请求而变化。比如:HTML、CSS、JS、图片、视频等(负责页面展示)。

动态资源:

服务器端根据用户请求和其他数据实时生成的,内容可能会在每次请求时都发生变化。比如:Servlet、JSP等(负责逻辑处理)。

servlet



        什么是servlet?


            Servlet 是运行在Web服务器中的小型java程序,是Java提供的一门动态web资源开发技术。通常通过HTTP协议接收和响应来自于客户端的请求。

            Servlet 是JavaEE规范之一,其实就是一个接口(定义Servlet需实现Servlet接口 或 继承HttpServlet) ,并由web服务器运行Servlet。

        如何使用servlet:

  •             准备:创建maven项目(设置打包方式为war),导入servlet坐标(provided)
  •             开发:

                定义一个类,实现servlet接口(继承HttpServlet)

  •                 在servlet类上使用@webServlet注解,配置该servlet的访问路径。
  •                 部署:将开发好的servlet配置在外部的tomcat服务器中运行。
第一步:在maven中设置打包方式

第二步:导入servlet-api的坐标

第三步:基层HttpServlet类

        重写doGet方法

第四步:在idea里面配置tomcat

点开 edit  configurations

 

点击左上角的+号

 

找到这个Tomcat Server 下面的Local

 

第一次配置的话,需要执行下面的操作

1,configure 找到本地的tomcat

2,在出现的弹窗里面。点击Tomcat Home右侧的文件夹,找到自己的tomcat 然后点击ok

3,上面的Name 可以修改一下启动tomcat的名字

 

1,点击右边的Deployment

2,小加号,找到本项目的 war包,一般都是第一个

3,Application context 这一栏的访问本项目的路径。可以修改按需操作

 

在点击这个绿色的按钮就可以运行了

 
   

执行流程


        示例:http://localhost:8080/demo/hello?name=xiaoming


        servlet 对象是由谁创建的?

servlet对象由web服务器创建,servlet方法由web服务器调用。

  •         HttpServletRequest:用于封装所有的数据请求
  •         HttpServletResponse:用于封装所有的响应数据

http


        概述:


            Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

        特点:


            1,基于TCP协议:面向连接,安全

            2,基于请求-响应模型的:一次请求对应一次响应

            3,HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。

                缺点
                    多次请求间不共享数据
                优点
                    速度快


    http-请求协议

        请求数据

                


            请求行:


                请求数据第一行(请求方式,资源路径,协议)


            请求头:


                第二行开始,格式 key:value都是,到下面的空行结束。

  •                     Host:请求的主机名

                    User-Agent:览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko

  •                     Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
  •                     Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
  •                     Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
  •                     Content-Type:请求主体的数据类型。
  •                     Content-Length:请求主体的大小(单位:字节)。
请求体


                一般是在最后,空行下面的数据。
        请求数据获取

  •             getMethod() 获取请求方法
  •             getRequestURL() 获取请求路径
  •             getScheme() 获取请求协议
  •             getQueryString() 获取查询字符行
  •             getParameter() 获取请求参数
  •             getHeader() 获取请求头
  •             getInputStream() 获取输入流

代码示例:

package com.sde;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/request")
public class RequestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        // 获取请求方式
        String method = req.getMethod();
        System.out.println("请求方式:"+method);
        writer.println("请求方式:"+method);

        // 获取请求路径
        StringBuffer url = req.getRequestURL();
        System.out.println("请求的url:"+url);
        String uri = req.getRequestURI();
        System.out.println("请求的uri:"+uri);
        writer.println("请求的url:"+url);
        writer.println("请求的uri:"+uri);

        // 获取请求的参数
        String name = req.getParameter("name");
        String age = req.getParameter("age");
        System.out.println("请求的参数:"+name+"--"+age);
        writer.println("请求的参数:"+name+"--"+age);

        // 获取请求的协议
        String scheme = req.getScheme();
        System.out.println("请求的协议:"+scheme);
        writer.println("请求的协议:"+scheme);

        //获取请求头中的某些信息
        String accept = req.getHeader("Accept");
        System.out.println("请求头中的Accept项::"+accept);
        writer.println("请求头中的Accept项::"+accept);
    }
}

控制台效果:

浏览器效果:


    http-响应协议



            响应行:

响应数据的第一行(协议,状态码,描述)


            响应头:

第二行开始,格式key:vakue,一直到后面的空行。


            响应体:

最后一部分,存放响应数据。


        响应数据设置

  •                 Web服务器对HTTP协议的响应数据进行了封装(HttpServletResponse),并在调用Servlet方法的时候传递给了Servlet。这样,就使得程序员不必直接对协议进行操作,让Web开发更加便捷。

                    

  •                 响应状态码 和 响应头如果没有特殊要求的话,通常不手动设定。服务器会根据请求处理的逻辑,自动设置响应状态码和响应头。

                    

代码示例: 

package com.sde;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/response")
public class ResponseServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //设置响应状态码
        resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

        //设置响应头
        resp.setHeader("name","daoen");
        resp.setHeader("content-type","text/html;charset=UTF-8");

        //设置响应数据
        resp.getWriter().write("我是里白我nb"+"<h1>cool</h1>");
    }
}

效果:

 

常见的响应状态码

开发中常见的:

200  客户端请求成功

404  请求资源不存在,一般是url输入有误,或者网站资源被删除了

500   服务器发生不可预期的错误。

springboot快速入门

spring boot可以帮助我们快速的的构建应用程序,简化开发,提高开发效率。 

创建spring boot工程:

1,在自己的工程下,右击 出现下面这个小页面

2,选择spring initializr 右侧的name就是本项目名。Language选择java,Type选maven。Group就是组织名,Artifact:也表示本项目名,然后点击next,jdk 根据自己情况选择,打包方式选jar包。

3,根据自己情况选择spring boot版本。和依赖。

 

 起步依赖:
  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖。
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖。
  • 官方提供的starter:https://docs.spring.io/spring-boot/docs/3.1.3/reference/htmlsingle/#using.build-systems.starter

 

检查依赖:

创建一个HelloController

package com.sde;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(String name){
        System.out.println(name);
        return "你好" +name +"~";
    }

    @PostMapping("/hello2")
    public String hello2(String name){
        System.out.println(name);
        return "你好" +name +"~";
    }

}

启动spring boot 在浏览器访问:

在浏览器访问:

控制台输出:

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值