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

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

(No.32)

系統(tǒng) 2471 0

一:Servlet的一些細(xì)節(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 中也可以使用 * 通配符,但是只能有兩種固定的格式:一種格式是“ *. 擴(kuò)展名”,另一種格式是以正斜杠( / )開頭并以“ /* ”結(jié)尾。

例如:

(No.32)

3 Servlet1 映射到 /abc/*

Servlet2 映射到 /*

Servlet3 映射到 /abc

Servlet4 映射到 *.do

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

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

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 的實(shí)例對象、以及調(diào)用 Servlet 實(shí)例對象的 init() 方法。

例子:

5、缺省 Servlet

6、線程安全:

例子代碼:

(No.32)

二、ServletConfig對象

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

(No.32)

當(dāng) servlet 配置了初始化參數(shù)后, web 容器在創(chuàng)建 servlet 實(shí)例對象時,會自動將這些初始化參數(shù)封裝到 ServletConfig 對象中,并在調(diào)用 servlet init 方法時,將 ServletConfig 對象傳遞給 servlet 。進(jìn)而,程序員通過 ServletConfig 對象就可以得到當(dāng)前 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元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩高清成人 | 成人区精品一区二区毛片不卡 | 香蕉久久夜色精品国产2020 | 国产欧美一区二区三区久久 | 久久aa毛片免费播放嗯啊 | 久久国产精品久久精 | 久久精品国产在爱久久 | 亚洲一区二区三区一品精 | 日本高清视频www夜色资源 | 五月天婷亚洲 | 日本在线不卡视频 | 性欧美xo视频在线观看 | 夜夜爱夜夜爽夜夜做夜夜欢 | 好吊妞视频一区二区 | 久久精品入口麻豆 | 亚洲va精品中文字幕 | 国产视频999| 欧美色精品 | 国产精品第二页 | 中文亚洲欧美 | 一级一级一级毛片免费毛片 | 中文福利视频 | 日日摸夜夜添夜夜添欧美毛片 | 99精品在线观看 | 亚洲精品免费观看 | 91精品国产91热久久p | 久久精品爱国产免费久久 | 中文字幕色 | 好吊色青青青国产欧美日韩 | 免费播放欧美毛片欧美a | 国产亚洲精品美女久久久久 | 国产精品欧美亚洲区 | 婷婷在线视频观看 | aaaa日本| 久久国产视频在线观看 | 亚洲精品色综合色在线观看 | 国产毛片一区二区 | 久久99热这里只有精品国产 | 日本黄色小视频在线观看 | 久久www免费人成精品香蕉 | 国产精品人成在线播放新网站 |