Servlet组件
1.1 Servlet概述
Servlet是JavaWeb的 三大组件之一 (Servlet、Filter(过滤器)、Listener(监听器)
) ,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
- 接收请求数据;
- 处理请求;
- 完成响应。
例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要程序员自己来编写,每个Servlet必须实现javax.servlet.Servlet接口。
1.2 实现Servlet的方式
实现Servlet有三种方式:
- 实现javax.servlet.Servlet接口;
- 继承javax.servlet.GenericServlet类;
- 继承javax.servlet.http.HttpServlet类;
1.2.1 例子1:实现javax.servlet.Servlet接口
(1)配置web.xml
<!--配置Servlet, 一个Servlet类绑定一个url(客户端访问入口)-->
<servlet>
<!-- 名称 随意取, 一般取名类名-->
<servlet-name>AServlet</servlet-name>
<!--对应的Servlet类, 全限定名(包.类名) -->
<servlet-class>com.fs.wwl.web.AServlet</servlet-class>
<!--配置初始化参数-->
<init-param>
<param-name>name</param-name>
<param-value>张三</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>21</param-value>
</init-param>
</servlet>
<servlet-mapping>
<!--名称, 与对应servlet的servlet-name一样 -->
<servlet-name>AServlet</servlet-name>
<!--绑定url: /路径 一般取名: /类名 -->
<url-pattern>/AServlet</url-pattern>
</servlet-mapping>
在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/AServlet”与“com.fs.wwl.web.AServlet”绑定到一起。
<servlet>
:指定AServlet这个Servlet的名称为AServlet;
<servlet-mapping>
:指定/AServlet访问路径所以访问的Servlet名为AServlet。
<servlet>
和<servlet-mapping>
通过<servlet-name>
这个元素关联在一起了!接下来,我们编译AServlet,注意,编译AServlet时需要导入servlet-api.jar,因为Servlet.class等类都在servlet-api.jar中。
然后启动Tomcat,在浏览器中访问:http://localhost:8080/AServlet即可在控制台上看到输出!
(2) 编写AServlet实现Servlet 接口
/**
* 取Servlet的类名: XxxServlet
* 实现Servlet的第一种方式
* 实现javax.servlet.Servlet接口
*/
public class AServlet implements Servlet {
private ServletConfig servletConfig; //默认null
/**
* 初始化方法 生命周期方法, 由Tomcat调用 做初始化操作
* 在Servlet创建之后调用, 调用一次
* @param servletConfig
* @throws ServletException
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("555~~555,我出生了...");
this.servletConfig = servletConfig;
}
/**
* 得到ServletConfig对象 (Servlet的配置)
*
* @return
*/
@Override
public ServletConfig getServletConfig() {
return servletConfig;
}
/**
* 最重要的方法, 接收用户请求,处理用户请求, 响应结果
* Tomcat调用: 生命周期方法 , 每请求一次,执行一次
* @param servletRequest
* @param servletResponse
* @throws ServletException
* @throws IOException
*/
@Ove