Servlet是sun公司提供的一门用于开发动态web资源的技术,Servlet技术基于Request-Response编程模型
Sun公司在其API中提供了一个servlet接口,用户若想要开发一个动态web资源(即开发一个Java程序向浏览器输出数据),实现servlet接口,把开发好的Java类部署到web服务器中
编写一个类继承HttpServlet,覆写doGet()、doPost()
public class HellowServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet()...."); PrintWriter writer = resp.getWriter(); writer.println("<html>"); writer.println("<body>"); writer.println("<h1>Hello Servlet</h1>"); writer.println("</body>"); writer.println("</html>"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
在web.xml中配置servlet
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>first.HellowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
访问路径使用<url-pattern>中定义的
HttpServlet继承结构
public interface Servlet {} public interface ServletConfig {} public abstract class GenericServlet implements Servlet, ServletConfig,Serializable {} public abstract class HttpServlet extends GenericServlet {} public class HellowServlet extends HttpServlet {}
Servlet技术由sun公司最早推出时,并不是仅面向于HTTP协议的 ,Servlet接口规范与协议无关的
GenericServlet 通用的Servlet,只是实现了与协议无关API ,并没有提供任何与协议相关API,HttpServlet 是一个面向HTTP协议 Servlet程序,提供了与协议相关 API,自定义Servlet都是面向HTTP协议,如果实现Servlet接口,继承GenericServlet使得开发更加复杂,只需要继承HttpServlet 拥有与HTTP协议相关API