文章目录
首先要明确,Servlet非常的重要,整个JavaWeb的核心知识体系都是围绕Servlet来转的。
一、Servlet介绍
概念:Servlet是两个单词的缩写server applet,意思是:在服务器端运行的小程序
。
本质:Servlet本质上就是一个接口
,定义了Java类被浏览器访问到(tomcat识别)的规则。
Servlet是一个接口,将来我们定义一个类,实现Servlet接口,重写方法。就可以被浏览器访问到。
二、Servlet快速入门
(1)创建一个JavaWeb项目
(2)定义一个类,实现Servlet接口
package com.hudie.web.Servlet;
import javax.servlet.Servlet;
/**
* 类说明:
* Servlet快速入门
*
* @author qianliangguo
*/
public class ServletDemo implements Servlet{
}
(3)实现接口中的抽象方法
其中的service方法是提供服务的方法。
package com.hudie.web.Servlet;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* 类说明:
* Servlet快速入门
*
* @author qianliangguo
*/
public class ServletDemo implements Servlet{
public void destroy() {
// TODO Auto-generated method stub
}
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
//提供服务的方法
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("Helllo Servlet!");
}
}
(4)配置Servlet
浏览器通过一个url访问Java类,要将资源名称映射成Java类。该配置在web.xml中进行。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<!-- 配置Servlet -->
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>com.hudie.web.servlet.ServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
</web-app>
在浏览其中输入:localhost:8080/Servlet/demo
在控制台就输出了Hello Servlet。
(5)使用注解配置servlet
注解配置是Servlet3.0版本引入的。JavaEE6以后才支持Servlet3.0。使用注解配置的好处:可以不需要web.xml了。
不需要web.xml文件,仅需要在类上使用@WebServlet注解。
@WebServlet(urlPatterns="/servletdemo")
三、Servlet的执行原理
在使用Servlet时,我们定义了一个类,这个类并没有自己创建对象,也没有调用它的方法,但是它竟然自己就被执行了?
实际上Servlet的执行原理是这样的:
①首先,当服务器接收到浏览器的请求后,会解析url路径
,获得访问Servlet的资源路径;②然后,在web.xml文件的url-pattern标签体中匹配
与之相同的内容;③如果匹配到,就映射
到servlet-class全类名中;④tomcat会将class字节码文件加载进内存
,并创建其对象
;⑤通过对象调用service方法
。