1、Servlet简介
Servlet是Sun公司开发动态Web的一门技术。
Sun公司在A这些PI中提供这个接口:Servlet。如果想开发Servlet程序,只需要完成两个小步骤:
①、编写一个类,实现Servlet接口。
②、把开发好的Java类部署到Web服务器中。
总结:把实现了Servlet接口的Java程序叫做Servlet。
2、HelloServlet(第一个Servlet程序)
①、idea中构建一个Maven项目(我这边是基于Maven写的)
②、pom.xml中添加servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
③、编写Servlet程序(前面说到的是实现Servlet接口,但为什么是extends?而不是implements,因为Sun公司已经给我们写好了两个实现类,其中一个就是HttpServlet,另一个是GenericServlet)
Servlet——>GenericServlet——>HttpServlet——>自己写的类,继承HttpServlet接口
package com.ftj.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
//由于get/post只是请求的方式不一样,可以互相调用
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();//相应流
writer.print("hello,servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
④、编写Servlet的映射。
为什么需要映射:写的是Java程序,但是是要在浏览器中访问,而浏览器需要连接Web服务器,所以需要在Web服务中注册Servlet,还需要给他一个浏览器能够访问的路径。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--注册Sevlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.ftj.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
⑤、配置Tmocat
⑥、运行: