上一篇文章深入學習了Servlet的工作原理,這一篇我們來實現servlet構建web應用。
下面進入正文:
1.使用web.xml來配置servlet,這是最常用也是最簡單的方式。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>Servlet的名字(自定義)</servlet-name>
<servlet-class>Servlet的類名(完整路徑,如com.taobao.Servlet)</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Servlet的名字(與上面的一致)</servlet-name>
<url-pattern>映射路徑(如:/login)</url-pattern>
</servlet-mapping>
</web-app>
2.使用java編程式來配置啓動servlet。我們必須實現ServletContextListener這個類,因爲這個類會監聽servlet的初始化,因此我們可以在它的contextInitialized方法中註冊servlet(不僅僅是servlet,我們也可以註冊監聽器,和過濾器)。
package indi.jack.chapter1.ServletCotext; import javax.servlet.FilterRegistration.Dynamic; import javax.servlet.Servlet; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.ServletRegistration; import javax.servlet.annotation.WebListener; /** * <p>Title:ServletStartup</p> * <p>Description:</p> * <p>Company:</p> * @author jackhoo * @date 2017年3月5日 上午10:12:01 */ @WebListener public class ServletStartup implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { } @Override public void contextInitialized(ServletContextEvent arg0) { ServletContext context=arg0.getServletContext(); ServletRegistration myservlet=context.addServlet("hello", "indi.jack.chapter1.Servlet.HelloServlet"); myservlet.addMapping("/hello"); System.out.println("手動註冊servlet完成!"); } }