1 了解Servlet
废话少说直接打开源码,Servlet是一个接口,简单理解Servlet是运行在服务器端的动态Web程序,或者说在Tomcat跑的程序。
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
- Tomcat定义了Servlet接口
- GenericServlet 实现了这一接口,
- HttpServlet继承了GenericServlet 类,
那么我们直接继承 HttpServlet 类就可以创建自定义的Servlet
2 写一个Servlet
2.1 创建Maven Web 工程
参考上篇文章吧
2.2 引入Servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
3 创建一个类继承HTTPServlet
重写doGet,doPost 方法,这里我写了一个简单的打印代码
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter write = resp.getWriter();
write.print("hello servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
4 注册Servlet路径
完成了上述操作,怎么让Tomcat知道你的Servlet呢,是不是要告诉Tomcat你的Servlet名字,Servlet在哪里存放
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.duowei.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/helloServlet</url-pattern>
</servlet-mapping>
注意 : /helloServlet 斜杠别忘加:为什么呢?,因为你访问的时候浏览器的地址 是 http://localhost:8080/S1/helloServlet ,没有斜杠就错了
告诉了Tomcat url-patten ,Tomcat会找到 servlet-name ,在根据servlet-name 找到 类路径。
Tomcat的执行顺序
- url-pattern
- servlet-name (mapping的)
- servlet-name (servlet的)
- servlet-class
记住:你只是写了一个Servlet,而你要把你写的Servlet放在Tomcat上才有意义,不然它就是个Class而已
5 启动Tomcat
如果没有配Tomcat,参考上一篇