什么是Servlet?
- Servlet是JavaEE的接口。是Javaweb的三大组件之一。另外两个组件分别是Filter和Listener(过滤器和监听器)。
- Servlet 是运行在服务端的Java小程序,可以接收客户端发送过来请求并响应给客户端数据。
第一个Servlet程序?
实现步骤
- 建立一个类实现(implements)Servlet接口
- 实现service方法。service方法用于接收请求,响应数据。
- 注册Servlet。在web.xml文件中配置 代码如下:
package com.lqy.test;
import javax.servlet.*;
import java.io.IOException;
public class mServlet implements Servlet {
public void init(ServletConfig servletConfig) throws ServletException {
}
public ServletConfig getServletConfig() {
return null;
}
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.getWriter().print("这是我第一个Servlet应用");
}
public String getServletInfo() {
return null;
}
public void destroy() {
}
}
配置如下
<servlet>
<servlet-name>mServlet</servlet-name>
<servlet-class>com.lqy.test.mServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mServlet</servlet-name>
<url-pattern>/mServlet</url-pattern>
</servlet-mapping>
Servlet的声明周期?
- 执行Servlet的构造方法,声明
- 执行init()方法,初始化
- 执行service()方法,处理请求响应数据
- 执行destroy(),销毁
进阶实现Servlet
- 继承(extends)HttpServlet
- 实现doGet()或doPost()方法;service()也可以
- 在web.xml中注册 代码如下:
public class mServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().print("我第一个HttpServlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
配置参考上述过程。
可能出现的报错?
-
导入Servlet依赖,在实现Servlet或继承HttpServlet时会报错
-
无法正常访问mServlet.java 可能的原因是 类路径错误;对照自己项目结构改正即可 还有就是
<url-pattern>这个属性的值需要以/开头。