深入学习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项目地址





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值