WebServlet注解、注解配置过滤器与监听器

目录

WebServlet注解

过滤器的配置

配置监听器

总结


可以利用Annotation来实现Servlet的配置,即代替修改web.xml方式配置。

WebServlet注解

1、简化配置@WebServlet("/hello")

package cn.ren.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().print("<h1> Hello World! </h1>");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doGet(req, resp);
	}
}

2、其它配置

package cn.ren.servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
@WebServlet(name="HelloServlet",urlPatterns = {"/hello","/Hello"}, initParams= {
		@WebInitParam(value="ren",name="paramB") ,
		@WebInitParam(value="57", name="paramA")
},loadOnStartup = 1)
public class HelloServlet extends HttpServlet {
	@Override
	public void init(ServletConfig config) throws ServletException {
		Enumeration<String> enu = config.getInitParameterNames() ;
		while(enu.hasMoreElements()) {
			String name = enu.nextElement() ;
			System.out.println(config.getInitParameter(name));
		}
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().print("<h1> Hello World! </h1>");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doGet(req, resp);
	}
}

过滤器的配置

使用“@WebFilter()”注解配置过滤器。

范例:注解配置过滤器

package cn.ren.servlet;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter("/*")
public class MyFilter implements Filter {

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		System.out.println("*******");
		arg2.doFilter(arg0, arg1);
	}

}

配置监听器

使用注解“@WebListener”配置监听器。

范例:Servlet监听器

package cn.ren.servlet;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class MyListener implements ServletContextListener {
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("**容器初始化**" + sce.getServletContext());
	}
}

监听器就是一个组件,需要的时候配置上用就行了

总结

有可能要在部署的时候由用户动态修改的Servlet,还是要求继续使用web.xml文件配置,而不需要用户修改的程序类,再使用Annotation配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值