Servlet3.0的注解

[email protected]注解

表示的就是我们之前的在xml中配置的

<listener>
<listener-class>ListenerClass</listener-class>
</listener>

下面我们只需要在我们写好的Listener类上面加上这个@WebListener注解就OK啦

使用Listener的类必须使用下列的几个接口

ServletContextListener
ServletContextAttributeListener
ServletRequestListener
ServletRequestAttributeListener
HttpSessionListener
HttpSessionAttributeListener

例子:

package com.hotusm.web.listener;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class MyHttpSessionListener implements HttpSessionListener{

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("创建session ");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("销毁session ");
    }

}

这样,在我们启动的时候 就会自动的帮助我们创建一个Listener了,这个注解有一个属性,是这个listener的描述信息

[email protected]  这个注解就是表示的拦截器  同样的也是直接注解在写好的Filter上面就ok了。

package com.hotusm.web.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@WebFilter(filterName = "filter1", urlPatterns="/*",
        dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD},
        initParams={@WebInitParam(name="account",value="1234"),@WebInitParam(name="hotusm",value="1234")}
        )

public class MyFilter implements Filter {
    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {

        String account = filterConfig.getInitParameter("account");
        String hotusm = filterConfig.getInitParameter("hotusm");

        System.out.println("account:"+account+" hotusm:"+hotusm);
    }

    @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {

    }
}

注解的主要参数及其含义

[email protected] 这个注解表示的就是一般的Servlet

package com.hotusm.web.servlet;

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;
import javax.servlet.http.HttpSession;

import java.io.IOException;

@WebServlet(name = "servlet1", urlPatterns = {"/url1", "/url2","url3/*"}, loadOnStartup = 1,
        initParams = {
                @WebInitParam(name = "name", value="hotusm")
        })
public class MyServlet extends HttpServlet {

    private String name;

    public MyServlet() {
        System.out.println("load on startup");
    }

    @Override
    public void init() throws ServletException {
        super.init();
        name= this.getInitParameter("name");
    }

    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        System.out.println(session);
        System.out.println("name:"+name);
    }
}

注解主要参数

参数和Filter差不多

4.其中在上面的注解Filter和Servlet用到的@WebInitParam 注解 表示的就是参数啦 相当于<init-param>

参数以及含义

[email protected]  该注解主要是为了辅助 Servlet 3.0 中 HttpServletRequest 提供的对上传文件的支持。该注解标注在 Servlet 上面,以表示该 Servlet 希望处理的请求的 MIME 类型是 multipart/form-data。另外,它还提供了若干属性用于简化对上传文件的处理。具体如下:

时间: 2024-10-12 16:56:11

Servlet3.0的注解的相关文章

java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet

一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet-name>ActionServlet</servlet-name> 3 <servlet-class>me.gacl.web.controller.ActionServlet</servlet-class> 4 </servlet> 5 6 <ser

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet 一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet-name>ActionServlet</servlet-name> 3 <servlet-class>me.gacl.web.controller.ActionServlet</s

servlet3.0全注解spring整合shiro

基本说明 基于Servlet3.0全注解配置的Spring整合Shiro 目录 配置文件 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap

Servlet3.0的注解自定义原生Listener监听器实战

简介:监听器介绍和Servlet3.0的注解自定义原生Listener监听器实战 自定义Listener(常用的监听器 servletContextListener.httpSessionListener.servletRequestListener) 代码示例: RequestListener.java 1 package net.xdclass.demo.listener; 2 3 import javax.servlet.ServletContextEvent; 4 import java

servlet3.0 @WebServlet注解无效的情况

web.xml文件中的metadata-comcomplete属性的作用: 该属性指定当前的部署描述文件是否是完全的.如果设置为true,则容器在部署时只依赖部署描述文件,忽略所有的注解(同时也会跳过web-fragment.xml的扫描,亦即禁用可插性支持):如果设置为false或不配置该属性,则表示启用注解支持(和可插性支持). 注解有效的web.xml(metadata-complete="false"或者直接删除) <web-app xmlns:xsi="htt

web.xml在Servlet3.0中的新增元素

metadata-complete: 当属性为true时,该Web应用将不会加载注解配置的Web组件(如Servlet.Filter.Listener) 当属性为false时,将加载注解配置的Web组件(如Servlet.Filter.Listener). 注意:如果在为true时,且在Web.xml中配置了注解,程序在编译时会报错,只需变更此参数为false即可. 在Servlet3.0的注解中,无法对应Servlet的启动顺序问题.解决方法:必须要启用顺序的通过web.xml配置解决,即设定

Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)

Servlet3.0提供@WebFilter注解将一个实现了javax.servlet.Filter接口的类定义为过滤器,这样我们在web应用中创建过滤器时,也不再需要在web.xml文件中配置过滤器的相关描述信息了. 下面我们来创建一个过滤器,体验一下使用@WebFilter注解标注过滤器,如下所示: 过滤器的代码如下: 1 package me.gacl.web.filter; 2 import java.io.IOException; 3 import javax.servlet.Filt

Servlet3.0学习总结(一)——使用注解标注Servlet

一.Servlet3.0介绍 Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程. 二.开发Servlet3.0程序的所需要的环境 开发Servlet3.0的程序需要一定的环境支持.MyEclipse10和Tomcat7都提供了对Java EE6规范的支持.Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK1.6以上的版本. 所以开

servlet3.0 的新特性之二注解代替了web.xml配置文件

servlet3.0 的新特性: 注解代替了 web.xml 文件 支持了对异步的处理 对上传文件的支持 1.注解代替了配置文件 1.删除了web.xml 文件 2. 在Servlet类上添加@WebServlet(urlPatterns={"/AServlet"}) 3. 在Filter类上添加@WebFilter(urlPatterns="/AFilter") 4. 在Listener类上添加@WebListener ? 总结: * 注解好处:配置信息少,使用很