Java从零单排 -- Java web服务

476 阅读2分钟

Java web容器

  • Servlet:Servlet 是基于 Java 技术的 web 组件,容器托管的,用于生成动态内容。像其他基于 Java 的组件技术一样,Servlet 也是基于平台无关的 Java 类格式,被编译为平台无关的字节码,可以被基于 Java 技术的 web server动态加载并运行。容器,有时候也叫做 servlet 引擎,是 web server 为支持 servlet 功能扩展的部分。客户端通过 Servlet 容器实现的请求/应答模型与 Servlet 交互。
  • 什么是 Servlet 容器:Servlet 容器是 web server 或 application server 的一部分,提供基于请求/响应发送模型的网络服务,解码基于 MIME 的请求,并且格式化基于 MIME 的响应。Servlet 容器也包含了管理 Servlet 生命周期。
  • Java web容器:http协议+ Servlet 容器 = Java web容器。类似的有tomcat和jetty。在以前没有spring boot时代,需要将项目打包成war包,然后放进tomcat容器下运行,这样才能做一个java web 服务,如今spring boot内置了tomcat,我们就不用这么麻烦了,直接运行main方法就能运行web服务。

spring mvc

spring mvc是一个轻量级的web框架,可以让我们快速的开发web应用。在springmvc中有几个重要的注解:

  • @RestController 将此类声明为web接口,spring 会自动扫码所有@RestController的类。
  • @RequestMapping 将web请求映射到请求处理类中的方法的注释,声明一个命名空间。
  • @GetMapping 只接受get请求,一般用作于查询接口
  • @PostMapping 只接受post请求,一般用作于表单的提交,数据插入、更新、删除

命名空间是唯一的不能重复,否则spring 将启动失败。 在上一章http://localhost:8080/person/add 接口我们应该要改成post的方式


    @PostMapping("add")//声明get请求  浏览器访问地址:http://localhost:8080/person/add
    public String add(Person person) {
        //返回给浏览器的信息
        personService.addPerson(person);
        return "ok";
    }

post方式,不能在地址直接输入,要编写html,然后才能发送post请求,但是这样做接口测试太慢了,我们可以用一个神器 postman。 post 将请求方式更改为post,提交的参数放在body里,选择form-data,这样就能完成一次表达的提交。

RestController与Controller

在传统的java web项目,@Controller返回是jsp视图,jsp由tomcat解析,动态生成网页。现代的开发模式为前后分离项目,java web不用返回jsp视图,而是返回json结构的数据,前端根据返回的json数据重新渲染网页。所以现在我们都是用@RestController,他就能直接返回json数据给前端。