程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Servlet3.0的注解,Servlet3.0注解

Servlet3.0的注解,Servlet3.0注解

編輯:JAVA綜合教程

Servlet3.0的注解,Servlet3.0注解


1.@WebListener注解

表示的就是我們之前的在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的描述信息

2.@WebFilter  這個注解就是表示的攔截器  同樣的也是直接注解在寫好的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() {
        
    }
}

注解的主要參數及其含義

3.@WebServlet 這個注解表示的就是一般的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>

參數以及含義

 

 5.@MultipartConfig  該注解主要是為了輔助 Servlet 3.0 中 HttpServletRequest 提供的對上傳文件的支持。該注解標注在 Servlet 上面,以表示該 Servlet 希望處理的請求的 MIME 類型是 multipart/form-data。另外,它還提供了若干屬性用於簡化對上傳文件的處理。具體如下:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved