深入學習SSH框架《二:java編程式配置servlet和使用web.xml部署描述符配置servlet》

上一篇文章深入學習了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完成!");
	}

}

3.附上源代碼地址

github項目地址





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章