上一篇文章深入学习了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项目地址