元素和元素完成。元素用于注冊Servlet,它包含有兩個主要的子元素:,分別用于設(shè)置Servlet的注冊名稱和Servlet" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

(No.32)

系統(tǒng) 2558 0

一:Servlet的一些細節(jié):

1、由于客戶端是通過 URL 地址訪問 web 服務(wù)器中的資源,所以 Servlet 程序若想被外界訪問,必須把 servlet 程序映射到一個 URL 地址上,這個工作在 web.xml 文件中使用 <servlet> 元素和 <servlet-mapping> 元素完成。

<servlet> 元素用于注冊 Servlet ,它包含有兩個主要的子元素: <servlet-name> <servlet-class> ,分別用于設(shè)置 Servlet 的注冊名稱和 Servlet 的完整類名。

一個 <servlet-mapping> 元素用于映射一個已注冊的 Servlet 的一個對外訪問路徑,它包含有兩個子元素: <servlet-name> <url-pattern> ,分別用于指定 Servlet 的注冊名稱和 Servlet 的對外訪問路徑。

例如:

(No.32)

2、同一個 Servlet 可以被映射到多個 URL 上,即多個 <servlet-mapping> 元素的 <servlet-name> 子元素的設(shè)置值可以是同一個 Servlet 的注冊名。

Servlet 映射到的 URL 中也可以使用 * 通配符,但是只能有兩種固定的格式:一種格式是“ *. 擴展名”,另一種格式是以正斜杠( / )開頭并以“ /* ”結(jié)尾。

例如:

(No.32)

3 Servlet1 映射到 /abc/*

Servlet2 映射到 /*

Servlet3 映射到 /abc

Servlet4 映射到 *.do

其中 URL 請求與哪個最相像,就歸為哪一類,強調(diào): /* *.do 優(yōu)先級高

4 、針對客戶端的多次 Servlet 請求,通常情況下,服務(wù)器只會創(chuàng)建一個 Servlet 實例對象,也就是說 Servlet 實例對象一旦創(chuàng)建,它就會駐留在內(nèi)存中,為后續(xù)的其它請求服務(wù),直至 web 容器退出, servlet 實例對象才會銷毀。

Servlet 的整個生命周期內(nèi), Servlet init 方法只被調(diào)用一次。而對一個 Servlet 的每次訪問請求都導(dǎo)致 Servlet 引擎調(diào)用一次 servlet service 方法。對于每次訪問請求, Servlet 引擎都會創(chuàng)建一個新的 HttpServletRequest 請求對象和一個新的 HttpServletResponse 響應(yīng)對象,然后將這兩個對象作為參數(shù)傳遞給它調(diào)用的 Servlet service() 方法, service 方法再根據(jù)請求方式分別調(diào)用 doXXX 方法。

例子代碼:

(No.32)

5 、在 <servlet> 元素中配置了一個 <load-on-startup> 元素,那么 WEB 應(yīng)用程序在啟動時,就會裝載并創(chuàng)建 Servlet 的實例對象、以及調(diào)用 Servlet 實例對象的 init() 方法。

例子:

5、缺省 Servlet

6、線程安全:

例子代碼:

(No.32)

二、ServletConfig對象

Servlet 的配置文件中,可以使用一個或多個 <init-param> 標簽為 servlet 配置一些初始化參數(shù)

(No.32)

servlet 配置了初始化參數(shù)后, web 容器在創(chuàng)建 servlet 實例對象時,會自動將這些初始化參數(shù)封裝到 ServletConfig 對象中,并在調(diào)用 servlet init 方法時,將 ServletConfig 對象傳遞給 servlet 。進而,程序員通過 ServletConfig 對象就可以得到當前 servlet 的初始化參數(shù)信息

例子:

packagecn.csdn.web.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.Enumeration;

importjavax.servlet.ServletConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassDemoServletextendsHttpServlet{

intx=1;

@Override

publicvoiddestroy(){

//TODOAuto-generatedmethodstub

super.destroy();

System.out.println("銷毀");

}

publicDemoServlet(){

super();

System.out.println("創(chuàng)建對象");

}

@Override

publicvoidinit()throwsServletException{

//TODOAuto-generatedmethodstub

super.init();

System.out.println("---------初始化------------");

}

@Override

publicvoidinit(ServletConfigconfig)throwsServletException{

super.init(config);

System.out.println("================"+config);

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

this.doPost(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

/*設(shè)置編碼*/

request.setCharacterEncoding("UTF-8");

Stringversion=this.getServletConfig().getInitParameter("version");

StringcharacterEncoding=this.getServletConfig().getInitParameter("characterEncoding");

request.setCharacterEncoding(characterEncoding);

/*獲取一下PrintWriter對象*/

PrintWriterout=response.getWriter();

out.print("=-"+version);

Enumeration<String>enumer=this.getServletConfig().getInitParameterNames();

/*遍歷*/

while(enumer.hasMoreElements()){

Stringname=enumer.nextElement();

Stringvalue=this.getServletConfig().getInitParameter(name);

System.out.println(name+"===="+value);

}

}

}

三、ServletContext應(yīng)用

----》在MyEclipse中的開發(fā)

---->首先建立

--->Demo01Servlet.java中寫入:

packagecn.csdn.web.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassDemo01ServletextendsHttpServlet{

@Override

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

this.doPost(request,response);

}

@Override

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("UTF-8");

/* 怎么樣獲取 ServletContext 對象 */

ServletContextcontext=this.getServletConfig().getServletContext();

context=this.getServletContext();

context.setAttribute("date","ddd");

response.sendRedirect("./data.html");

}

}

--->Demo02Servlet.java中寫入:

packagecn.csdn.web.servlet;

importjava.io.IOException;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassDemo02ServletextendsHttpServlet{

@Override

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

this.doPost(req,resp);

}

@Override

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

/* 怎么獲取共享數(shù)據(jù) */

ServletContextcontext=this.getServletContext();

Stringdata=(String)context.getAttribute("data");

resp.getWriter().write(data);

}

}

--->在web.xml中寫入:

<servlet>

<servlet-name>Demo01Servlet</servlet-name>

<servlet-class>cn.csdn.web.servlet.Demo01Servlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Demo01Servlet</servlet-name>

<url-pattern>/demo01</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>Demo02Servlet</servlet-name>

<servlet-class>cn.csdn.web.servlet.Demo02Servlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Demo02Servlet</servlet-name>

<url-pattern>/demo02</url-pattern>

</servlet-mapping>

----->建立一個data.html:添加

<body>

<div>

<ahref="./demo02">查看共享數(shù)據(jù)</a>

</div>

</body>

---->ok

(No.32)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产真实精品久久二三区 | 欧美精品久久一区 | 精品在线一区二区三区 | 五月色播影音在线观看 | 六月综合激情 | 人人狠狠综合久久亚洲 | 一区二区不卡在线观看 | 亚洲一区二区三区高清 | 奇米88| 另类激情网 | 国产在线精品观看 | www.91p| 国产chinese中国hdxxxx | 亚欧乱色一区二区三区 | 男女又黄又刺激B片免费网站 | 成人免费看黄网站无遮挡 | 精品伊人久久久大香线蕉欧美 | 亚洲一区二区三区在线看 | 欧美成人影院在线观看三级 | 欧美无遮挡一区二区三区 | 在线观看av网站永久 | 老头巨大校花体内驰骋小说文 | 国产日本欧美在线观看 | 婷婷综合久久狠狠色99h | 国产五月色婷婷六月丁香视频 | 精品久久久久久久久久久久久久久 | 欧美日韩福利视频 | 奇米第四色在线 | 青青草免费观看完整版高清 | 亚洲不卡 | 婷婷天天操 | 亚洲免费人成在线视频观看 | 久久久精品影院 | 91久久精品一区二区二区 | 亚洲 日本 欧美 日韩精品 | 奇米第四色影视 | 亚洲欧洲视频 | 激情亚洲 | 国产精品美女久久久免费 | 久久大胆视频 | 岛国在线123456 |