Servlet注册迭代史
1、第一代,xml注册
<web-app><display-name>Archetype Created Web Application</display-name><!-- 定义一个Servlet --><servlet><!-- Servlet的名称,用于在配置中引用 --><servlet-name>HelloServlet</servlet-name><!-- Servlet的完全限定类名,这是Servlet类的Java类名 --><servlet-class>HelloServlet</servlet-class></servlet><!-- 配置Servlet映射 --><servlet-mapping><!-- 引用之前定义的Servlet的名称 --><servlet-name>HelloServlet</servlet-name><!-- 定义URL模式,当客户端访问此URL时,将由HelloServlet处理 --><url-pattern>/hello</url-pattern></servlet-mapping></web-app>
2、第二代,注解注册
@WebServlet("/hello")
/*** @author Administrator*/
public class HelloServlet extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("HelloServlet...init初始化。");}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("HelloServlet...service。");// 防止乱码// 设置响应的字符编码为UTF-8res.setCharacterEncoding("UTF-8");// 设置响应的内容类型为text/html;charset=UTF-8res.setContentType("text/html;charset=UTF-8");res.getWriter().write("HelloServlet...,第二种注册servlet方式。(注解注册)");}@Overridepublic void destroy() {System.out.println("HelloServlet...destroy。");}}
3、第三代,注解注册
@Controller
@RequestMapping("/api")
public class HelloController {// 访问地址:http://localhost:8080/api/hello// 格式:http://ip:port/api/hello@ResponseBody@RequestMapping("/hello")private String show() {return "hello";}}
4、第四代,注解注册
@RestController
@RequestMapping("/api")
public class Hello2Controller {@RequestMapping("/test")public String test() {return "test";}
}
注:@Controller、和@RestController ,都是springmvc框架的注解。
只不过SSM阶段的时候、或者单独使用springmvc时,通常是用@Controller、或者@Controller和@RestController配合使用。
到了springboot阶段,通常来说…主要是以前后端分离形式开发,这个时候就不怎么需要@Controller了。