JavaWeb接口
Servlet 写接口
如果不用spring框架要你写一个JavaWeb后台的外部接口,你会怎么写呢
准备: IDEA、Tomcat9
新建maven项目:File——new——project…——Maven——Next——起项目名称——Finsh
项目建好后留下src和pom.xml,其他用不到的删掉
-
pom.xml配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>spring-source</artifactId> <groupId>org.hh</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>servlet-demo</artifactId> <!--这里是使用servlet编程,要用到Tomcat容器,需要打成war包--> <packaging>war</packaging> <dependencies> <!--Tomcat11 用的--> <!-- <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency>--> <!--Servlet API Tomcat8或9用javax.servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version><!--3.1.0--> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.72</version> </dependency> </dependencies> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> </project>
-
写servlet接口
package com.hh.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 继承Servlet接口,实现需要的方法 */ public class HelloServlet extends HttpServlet { //alt+insert 选择 Override.. 选择doGet和doPost @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.getWriter().write("Hello:" + request.getParameter("name")); // super.doPost(req, resp); } }
-
新建webapp,下级新建 WEB-INF,下级新建
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>Servlet Web Application</display-name> <servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>com.hh.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloServlet</servlet-name> <!--配置访问路径--> <url-pattern>/hello/*</url-pattern> </servlet-mapping> </web-app>
-
配置Tomcat 9
-
直接运行, 浏览器 http://localhost:8080/hello?name=名称
Spring框架写接口
spring约定大于配置,这里使用springboot来编写,不用写配置
新建springboot项目:File——new——project…——Spring Initializr——Next
项目建好后留下src和pom.xml,其他用不到的删掉
-
pom.xml配置
<properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
-
写controller(这个要自己新建包和类)
package com.hh.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/hello") public class HelloControler { //访问路径 http://localhost:8080/hello/hello2?name=名称 @GetMapping("/hello2") public String hello(String name){ return "Hello:"+name; } }
-
主启动类(spring内置了Tomcat容器,所以不用配置)
package com.hh; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringbootDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootDemoApplication.class, args); } }
-
直接运行 浏览器
访问:http://localhost:8080/hello/hello2?name=名称
小结:Servlet每写一个接口都要实现一个HttpServlet方法,而且还要在web.xml里面配置一对servlet和servlet-mapping ,当接口比较多的时候,管理和后期维护比较麻烦,所以推荐使用springboot