概述
HttpServlet抽象类专注接收Http请求
HttpServletRequest 接口继承ServletRequest接口 处理Http请求
@WebServlet("/webServlet") //请求路径
public class WebServlet3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
resp.getWriter().write("@WebServlet HttpServlet");
}
}
ServletContainerInitializer Web容器启动时给第三方组件提供初始化工作,如添加Filter过滤器等,前提必须在对应的jar包的META-INF/services 目录创建一个名为javax.servlet.ServletContainerInitializer的file文件,该文件中指定实现ServletContainerInitializer 接口的子类路径 类上声明@HandlesTypes指定类,重写onStartup方法获取由@HandlesTypes感兴趣的类作为参数传进来
@HandlesTypes(value={AService.class})
public class SpringServletContainerInitlializer implements ServletContainerInitializer {
@Override
public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
// TODO Auto-generated method stub
System.out.println("onStartup..");
for (Class<?> clazz : c) {
System.out.println(clazz); //实现或继承AService感兴趣类
}
}
//添加自定义servlet组件
Dynamic servlet = ctx.addServlet("myServlet", MyServlet.class);
//添加listener监听器
ctx.addListener(MyListenner.class);
//添加过滤器
javax.servlet.FilterRegistration.Dynamic filter = ctx.addFilter("myFilter", MyFilter.class);
//设置过滤规则
filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
}
Filter接口 过滤器
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("拦截过滤请求");
//过滤请求放行
chain.doFilter(request, response);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
ServletContextListener 接口 容器监听器
servlet启动时进行监听或者添加自定义组件
public class MyListenner implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
ServletContext context = sce.getServletContext(); //servlet上下文 全局共享
System.out.println("ServletContextListecontextInitializedner contextInitialized");
}
@Override
p8ublic void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("ServletContextListecontextInitializedner contextDestroyed");
}
}
最后
以上就是爱撒娇蚂蚁为你收集整理的Servlet3.0使用的全部内容,希望文章能够帮你解决Servlet3.0使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复