Servlet注册迭代史
1、第一代,xml注册
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、第二代,注解注册
Java
@WebServlet("/hello")
/**
* @author Administrator
*/
public class HelloServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("HelloServlet...init初始化。");
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("HelloServlet...service。");
// 防止乱码
// 设置响应的字符编码为UTF-8
res.setCharacterEncoding("UTF-8");
// 设置响应的内容类型为text/html;charset=UTF-8
res.setContentType("text/html;charset=UTF-8");
res.getWriter().write("HelloServlet...,第二种注册servlet方式。(注解注册)");
}
@Override
public void destroy() {
System.out.println("HelloServlet...destroy。");
}
}
3、第三代,注解注册
Java
@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、第四代,注解注册
Java
@RestController
@RequestMapping("/api")
public class Hello2Controller {
@RequestMapping("/test")
public String test() {
return "test";
}
}
注:@Controller、和@RestController ,都是springmvc框架的注解。
只不过SSM阶段的时候、或者单独使用springmvc时,通常是用@Controller、或者@Controller和@RestController配合使用。
到了springboot阶段,通常来说...主要是以前后端分离形式开发,这个时候就不怎么需要@Controller了。