加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Servlet3.0的介绍

发布时间:2021-11-18 12:51:38 所属栏目:PHP教程 来源:互联网
导读:1.@WebListener注解 表示的就是我们之前的在xml中配置的 listener listener-classListenerClass/listener-class /listener 下面我们只需要在我们写好的Listener类上面加上这个@WebListener注解就OK啦 使用Listener的类必须使用下列的几个接口 ServletContext

1.@WebListener注解
 
表示的就是我们之前的在xml中配置的
 
<listener>
<listener-class>ListenerClass</listener-class>
</listener>
 
下面我们只需要在我们写好的Listener类上面加上这个@WebListener注解就OK啦
 
使用Listener的类必须使用下列的几个接口
 
ServletContextListener
ServletContextAttributeListener
ServletRequestListener
ServletRequestAttributeListener
HttpSessionListener
HttpSessionAttributeListener
例子:
 
package com.linuxidc.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的描述信息
 
2.@WebFilter  这个注解就是表示的拦截器  同样的也是直接注解在写好的Filter上面就ok了。
 
package com.linuxidc.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="linuxidc",value="1234")}
        )
 
public class MyFilter implements Filter {
    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {
        
        String account = filterConfig.getInitParameter("account");
        String linuxidc = filterConfig.getInitParameter("linuxidc");
        
        System.out.println("account:"+account+" linuxidc:"+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() {
        
    }
}
注解的主要参数及其含义
 
 
 
3.@WebServlet 这个注解表示的就是一般的Servlet
 
package com.linuxidc.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="linuxidc")
        })
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>
 
参数以及含义
 
 
 
 5.@MultipartConfig  该注解主要是为了辅助 Servlet 3.0 中 HttpServletRequest 提供的对上传文件的支持。该注解标注在 Servlet 上面,以表示该 Servlet 希望处理的请求的 MIME 类型是 multipart/form-data。另外,它还提供了若干属性用于简化对上传文件的处理。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读