柚子快報(bào)激活碼778899分享:Servlet的注解式開(kāi)發(fā)
柚子快報(bào)激活碼778899分享:Servlet的注解式開(kāi)發(fā)
文章目錄
1. Servlet的注解開(kāi)發(fā)簡(jiǎn)介2. 注解式開(kāi)發(fā)的優(yōu)勢(shì)3. 常用注解4. 使用4.1 @WebServlet(用的比較多)4.2 @WebFilter
總結(jié)
(未更新完)
1. Servlet的注解開(kāi)發(fā)簡(jiǎn)介
Servlet的注解式開(kāi)發(fā) 是Java EE 6規(guī)范引入的特性,旨在簡(jiǎn)化Servlet的配置過(guò)程,減少對(duì)web.xml文件的依賴,從而提高開(kāi)發(fā)效率。從Servlet 3.0版本開(kāi)始,開(kāi)發(fā)者可以通過(guò)注解直接在Java類(lèi)中配置Servlet,而無(wú)需手動(dòng)編輯web.xml文件。這種開(kāi)發(fā)方式不僅提高了代碼的可讀性和維護(hù)性,還使得項(xiàng)目管理更加高效。
2. 注解式開(kāi)發(fā)的優(yōu)勢(shì)
開(kāi)發(fā)效率高:通過(guò)注解直接配置Servlet,減少了web.xml文件的體積,提高了開(kāi)發(fā)效率。配置靈活:不會(huì)經(jīng)常變化的配置信息使用注解,可能被修改的配置信息則寫(xiě)入web.xml文件。減少錯(cuò)誤:注解配置減少了手動(dòng)編輯XML文件時(shí)可能出現(xiàn)的錯(cuò)誤。
3. 常用注解
@WebServlet:用于聲明Servlet,可以指定Servlet的名稱、映射路徑、啟動(dòng)加載時(shí)機(jī)以及初始化參數(shù)等屬性。@WebInitParam:用于指定Servlet的初始化參數(shù)。@WebFilter:用于聲明Servlet篩選器。@WebListener:用于聲明WebListener。@HandlesTypes:用于聲明ServletContainerInitializer可處理的類(lèi)類(lèi)型。@HttpConstraint:表示安全約束,適用于所有HTTP方法。@HttpMethodConstraint:表示特定HTTP方法的安全約束。@MultipartConfig:指定Servlet實(shí)例期望的多部分/表單數(shù)據(jù)MIME類(lèi)型請(qǐng)求。@ServletSecurity:指定Servlet容器對(duì)HTTP消息實(shí)施的安全約束。
4. 使用
4.1 @WebServlet(用的比較多)
注解屬性說(shuō)明
name:指定Servlet的名稱,默認(rèn)值為空字符串。value:指定URL映射路徑,等同于urlPatterns屬性。urlPatterns:指定URL映射路徑,可以是單個(gè)路徑或多個(gè)路徑的數(shù)組。loadOnStartup:指定Servlet在服務(wù)器啟動(dòng)時(shí)是否加載,值為正整數(shù)時(shí)表示加載順序。initParams:指定初始化參數(shù),可以是單個(gè)參數(shù)或多個(gè)參數(shù)的數(shù)組。asyncSupported:指定是否支持異步處理,默認(rèn)值為false。smallIcon、largeIcon、description、displayName:用于圖標(biāo)、描述、顯示名稱等信息。
注意事項(xiàng): 如果在web.xml中定義了與注解相同的配置,web.xml中的配置優(yōu)先級(jí)更高。 注解中的屬性值可以省略大括號(hào),當(dāng)數(shù)組中只有一個(gè)元素時(shí)。 注解中的value屬性與urlPatterns屬性一致,均用于指定Servlet的映射路徑。
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;
import java.io.IOException;
@WebServlet(name = "TestZhujie",
urlPatterns = "/testzhujie",
loadOnStartup = 1, initParams = {
@WebInitParam(name = "username", value = "yxz2"),
@WebInitParam(name = "password", value = "123456")
})
public class TestZhujie extends HttpServlet {
@Override
public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
System.out.println("我是注解式測(cè)試");
ServletConfig config = getServletConfig();
String name = config.getInitParameter("username");
System.out.println(name);
String pwd = config.getInitParameter("password");
System.out.println(pwd);
}
}
訪問(wèn)接口:
4.2 @WebFilter
注解屬性說(shuō)明
filterName: 指定過(guò)濾器的名稱,與 web.xml 中的
@WebFilter(filterName = "myFilter", urlPatterns = "/myServlet", initParams = {
@WebInitParam(name = "paramName", value = "paramValue")
})
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("正在初始化MyFilter");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter正在執(zhí)行過(guò)濾方法");
// 放行請(qǐng)求
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("MyFilter正在執(zhí)行響應(yīng)方法");
}
@Override
public void destroy() {
System.out.println("正在銷(xiāo)毀MyFilter");
}
}
總結(jié)
暫無(wú)
柚子快報(bào)激活碼778899分享:Servlet的注解式開(kāi)發(fā)
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。