真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中Servlet常見面試題有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下Java中Servlet常見面試題有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)呼中,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

1:什么是B/S和C/S

 Browser/Server瀏覽器/服務(wù)器(瘦客戶端)     

 Custom/Server 客戶端/服務(wù)器(胖客戶端)

2:描述war包、jar包、ear包的結(jié)構(gòu)

war-

--myweb

---WEB-INF

----web.xml

----lib

----classes

jar-

--myjar

---META-INF

----.MF

ear-

--META-INF

---Application.xml

--.war

 --.jar

3:什么是servlet?servlet主要做什么?

網(wǎng)絡(luò)服務(wù)的請(qǐng)求和響應(yīng)方式

通過WEB瀏覽器調(diào)用servlet的方法,主要是在服務(wù)端寫動(dòng)態(tài)代碼與服務(wù)器端交流;

4:servlet 與cgi相比的優(yōu)點(diǎn)?servlet的缺點(diǎn)

優(yōu)點(diǎn):

 性能(線程比進(jìn)程更快)

 可伸縮

 Java強(qiáng)健且面向?qū)ο?/p>

 Java獨(dú)立的平臺(tái)

缺點(diǎn):

   處理代碼(業(yè)務(wù)邏輯)與HTML(表現(xiàn)邏輯)混合在一起

5:常用的servlet包的名稱是?

javax.servlet

javax.servlet.http

6:描述servlet接口的層次結(jié)構(gòu)?

Servlet

--genericServlet

--HttpServlet

--自己的servlet

ServletRequest

ServletResponse

7:對(duì)比get方法和post方法?

get方法: 請(qǐng)求對(duì)服務(wù)器沒有負(fù)面影響,F(xiàn)orm數(shù)據(jù)量小,數(shù)據(jù)的內(nèi)部應(yīng)在url中可見; 明文傳輸,安全度低。

post方法:請(qǐng)求的數(shù)據(jù)過程改變服務(wù)器的狀態(tài),F(xiàn)orm數(shù)據(jù)量大,數(shù)據(jù)的內(nèi)部應(yīng)在url中不可見,安全度高;

8:歸類描述HttpServletRequest接口都完成那些功能

1.讀取和寫入HTTP頭標(biāo) 

2.取得和設(shè)置cookies

3.取得路徑信息 

4.標(biāo)識(shí)HTTP會(huì)話。

9:歸類描述HttpServletResponse接口都完成那些功能

HttpServletResponse加入表示狀態(tài)碼、狀態(tài)信息和響應(yīng)頭標(biāo)的方法,它還負(fù)責(zé)對(duì)URL中寫入一Web頁面的HTTP會(huì)話ID進(jìn)行解碼。

10:描述Service方法所完成的基本功能?默認(rèn)是在那里實(shí)現(xiàn)的?

service方法是在servlet生命周期中的服務(wù)期,根據(jù)HTTP請(qǐng)求方法(GET、POST等),將請(qǐng)求分發(fā)到doGet、doPost等方法

HttpServlet類實(shí)現(xiàn)

11:如何開發(fā)自己的Servlet?描述應(yīng)該做的步驟和每步需要完成的工作

1.引jar包

  1)構(gòu)建開發(fā)環(huán)境 common包-->lib包-->servlet--->api.jar

 2.開發(fā)servlet類

      1)首先繼承HttpServlet

      2)實(shí)現(xiàn) doGet() doPost()

      3)定義 doGet() doPost()

  3.建個(gè)web應(yīng)用

  4.部署

安裝web容器,例如Tomcat

在Tomcat的webapps目錄下新建一個(gè)文件夾作為web程序的根

在根下新建一個(gè)名為WEB-INF的文件夾,里面建立一個(gè)web.xml的文件、一個(gè)classes的文件夾、一個(gè)lib文件夾按照servlet的DTD配置web.xml文件。

把編譯好的servlet的class文件復(fù)制到classes目錄下lib文件存放程序所需要的jar包

12:為何servlet需要部署描述?

 servlet需要配置web.xml文件來使容器認(rèn)識(shí)servlet程序

13:Servlet基本的描述應(yīng)該是?請(qǐng)寫出來


 
Hello
 
sl314.web.FormBasedHello


Hello
/greeting

14:如何在html中使用servlet

FORM標(biāo)記

ACTION– 指定form信息的目的地(相關(guān)的URL)

METHOD – 指定HTTP方法(GET或POST)

語法:

{HTML form tags and other HTML content}

15:如何接受request中的參數(shù)

String userName = (String)request.getParameter("userName")方法

16:如何接受request中header的值

request.getHeader(name);

request.getHeaders(names);等

17:如何輸出html

PrintWriter pw = response.getWriter();

pw.write("");

pw.write("Hello");

pw.write("");

18:如何設(shè)置輸出的contentType

response.getContentType()

19:描述servlet的生命周期?

生命周期是指servlet實(shí)例在web容器中從:首次創(chuàng)建調(diào)用init方法開始初始化期,經(jīng)過service方法運(yùn)行期,一直到destory方法銷毀期 結(jié)束

servlet實(shí)例的生命周期由web容器來管理

20:描述init,service,destroy方法的功能和特點(diǎn)

init方法:   是在servlet實(shí)例創(chuàng)建時(shí)調(diào)用的方法,用于創(chuàng)建或打開任何與servlet相關(guān)資源和初始化servlet的狀態(tài)Servlet規(guī)范保證調(diào)用init方法前不會(huì)處理任何請(qǐng)求。

service方法:是servlet真正處理客戶端傳過來的請(qǐng)求的方法,由web容器調(diào)用,根據(jù)HTTP請(qǐng)求方法(GET、POST等),將請(qǐng)求分發(fā)到doGet、doPost等方法

destory方法:是在servlet實(shí)例被銷毀時(shí)有web容器調(diào)用。Servlet規(guī)范確保在destroy方法調(diào)用之前所有請(qǐng)求的處理均完成需要覆蓋destroy方法的情況:釋放任何在init方法中打開的與servlet相關(guān)的資源存儲(chǔ)servlet的狀態(tài)

21:什么是回調(diào)方法?有什么特點(diǎn)?

由容器來調(diào)用程序的方法

由容器來決定什么時(shí)候來調(diào)

22:如何設(shè)置初始化servlet的參數(shù)?


 
       greetingText
 
       Hello
 
  

23:如何獲取servlet初始化的參數(shù)

public void init() {
 
     greetingText = getInitParameter("greetingText");
 
     System.out.println(">> greetingText = '" + greetingText + "'");
 
}

24:ServletConfig接口默認(rèn)在那里實(shí)現(xiàn)的

GenericServlet類實(shí)現(xiàn)ServletConfig接口

25:什么是ServletContext?有什么作用?

Servlet上下文 

ServletContext對(duì)象是Web應(yīng)用的運(yùn)行時(shí)表示,可通過其實(shí)現(xiàn)Web應(yīng)用中的資源共享

26:如何訪問ServletContext接口?是在那里實(shí)現(xiàn)的?

Servlet通過getServletContext()方法訪問

GenericServlet類實(shí)現(xiàn)

27:ServletContext接口的功能包括?分別用代碼示例

只讀初始化參數(shù): getInitParameter(name:String) : String

getInitParameterNames() : Enumeration

讀寫訪問應(yīng)用級(jí)屬性:getAttribute(name:String) : Object

setAttribute(name:String, value:Object)

getAttributeNames() : Enumeration

只讀訪問文件資源: getResource(path) : URL

getResourceAsStream(path) : InputStream

寫web應(yīng)用日志文件:log(message:String)

log(message:String, Throwable:excp)

28:如何設(shè)置Context的參數(shù)?


 
catalogFileName
 
/WEB-INF/catalog.txt
 

29:如何獲取Context設(shè)置的參數(shù)值?

ServletContext context = sce.getServletContext();
 
String catalogFileName = context.getInitParameter(“catalogFileName”);

30:描述Web應(yīng)用的生命周期?

Web容器啟動(dòng)時(shí),初始化每個(gè)Web應(yīng)用

可以創(chuàng)建"監(jiān)聽器"對(duì)象觸發(fā)這些事件;

Web容器關(guān)閉時(shí),銷毀每個(gè)Web應(yīng)用

31:如何用代碼實(shí)現(xiàn)監(jiān)控Web應(yīng)用的生命周期?

public class Test implements ServletContextListener{
 
public void contextInitialized(ServletContextEvent sce) {
 
//
 
}
 
}
 

 

    com.csy.Test

32:web應(yīng)用中如下錯(cuò)誤碼示什么意思:400,401,404,500

400    Bad Request

401    Unauthorized

404    Not Found

500    Internal Server Error

33:描述Web應(yīng)用中用聲明方式來進(jìn)行錯(cuò)誤處理的兩種方法

使用error-page元素聲明一個(gè)給定HTTP狀態(tài)碼的處理器

 404

 /error/404.html

可以聲明任意數(shù)量的錯(cuò)誤頁面,但一個(gè)給定的狀態(tài)碼只能對(duì)應(yīng)一個(gè)頁面

使用exception-type元素聲明給定Java異常的處理器

 

        java.lang.ArithmeticException

 

/error/ExceptionPage

可以聲明任意數(shù)量的錯(cuò)誤頁面,但一個(gè)給定的異常類型只對(duì)應(yīng)一個(gè)頁面

不能使用父類捕獲多種異常

34:描述記錄異常日志的方法,都位于那些接口?

GenericServlet:

log(message:String)

log(message:String, Throwable:excp)

ServletContext:

log(message:String)

log(message:String, excp:Throwable)

35:什么是會(huì)話?

Web容器可為每個(gè)用戶保存一個(gè)"會(huì)話對(duì)象",用來存儲(chǔ)特定用戶的會(huì)話信息

36:如何獲得會(huì)話?

HttpSession session = request.getSesseion();

37:會(huì)話Api的基本功能?

getID() :String

isNew() :boolean

getAttribute(name):Object

setAttribute(name,value)

removeAttribute(name)

38:如何銷毀會(huì)話?

1、可使用部署描述符控制所有會(huì)話的生命周期

   

    10

    

2、可使用控制特定會(huì)話對(duì)象的生命周期HttpSession接口

invalidate()

    getCreationTime() :long

getLastAccessedTime() :long

getMaxInactiveInterval() :int

    setMaxInactiveInterval(int)

39:描述會(huì)話保持狀態(tài)的基本原理

當(dāng)客戶端第一次請(qǐng)求時(shí),服務(wù)器創(chuàng)建一個(gè)session與request綁定,用響應(yīng)對(duì)象response來返回sessionid 放到客戶端的cookies中存儲(chǔ)下來,下次在發(fā)送請(qǐng)求時(shí),直接根據(jù)sessionid來檢索服務(wù)器的會(huì)話(每次請(qǐng)求都會(huì)將所有的cookies帶到服務(wù)器端)

40:如何讀寫cookie,代碼示例

寫:String name = request.getParameter("firstName");
 
Cookie c = new Cookie("yourname", name);
 
response.addCookie(c);
 
讀:Cookie[] allCookies = request.getCookies();
 
for ( int i=0; i < allCookies.length; i++ ) {
 
          if ( allCookies[i].getName().equals(“yourname”) ) {
 
            name = allCookies[i].getValue();  
 
          }
 
    }

41:什么是URL重寫,如何實(shí)現(xiàn),代碼示例

Cookie不能使用時(shí),可使用URL重寫 request.encodeURL();

客戶在每個(gè)URL的后面追加額外的數(shù)據(jù)

服務(wù)器將此標(biāo)識(shí)符與其存儲(chǔ)的有關(guān)會(huì)話數(shù)據(jù)相關(guān)聯(lián)

http://host/path/file;jsessionid=123

41:描述web應(yīng)用的4種認(rèn)證技術(shù)

BASIC – Web瀏覽器接收用戶名和口令,將其以明碼方式發(fā)送給Web服務(wù)器

DIGEST – Web瀏覽器接收用戶名和口令,使用加密算法將此數(shù)據(jù)發(fā)送給Web服務(wù)器

FORM – Web應(yīng)用提供發(fā)送給Web瀏覽器的HTML form

CLIENT-CERT – Web容器使用SSL驗(yàn)證用戶,服務(wù)端和客戶端的鏈路保護(hù)

42:什么是授權(quán),什么是驗(yàn)證?

授權(quán)是分局用戶角色劃分web資源的過程,其標(biāo)識(shí)web應(yīng)用中的安全域   分配權(quán)限

web容器使用廠商指定的機(jī)制驗(yàn)證用戶的角色   匹配權(quán)限

43:什么是HTTPS

HTTPS (Secure Hypertext Transfer Protocol) 是使用SSL協(xié)議的HTTP

44:什么是審計(jì)?

也就是訪問跟蹤,是為web應(yīng)用的每次訪問保留記錄的過程

45:如何實(shí)現(xiàn)聲明性授權(quán)

1、標(biāo)識(shí)web資源集

2、標(biāo)識(shí)角色

3、將web資源集影射到角色

4、標(biāo)識(shí)每個(gè)角色中的用戶

在 web.xml里配

46:描述servlet并發(fā)問題?

多個(gè)同類線程運(yùn)行,可以共享同一個(gè)Servlet實(shí)例,共享的數(shù)據(jù)和資源未合理同步,可能會(huì)引起數(shù)據(jù)的沖突

47:描述Web應(yīng)用中的六種屬性范圍

局部變量(頁面范圍)

實(shí)例變量

類變量

請(qǐng)求屬性(請(qǐng)求范圍)

會(huì)話屬性(會(huì)話范圍)

上下文屬性(應(yīng)用范圍)

48:支出上述六種那些是線程安全的

局部變量和請(qǐng)求屬性

49:什么是STM?如何實(shí)現(xiàn)?

SingleThreadModel接口

可以實(shí)現(xiàn)SingleThreadModel接口保證某一時(shí)刻只有一個(gè)請(qǐng)求執(zhí)行service方法

50:如何實(shí)現(xiàn)并發(fā)管理?

盡可能使用局部和請(qǐng)求屬性

使用synchronized語法控制并發(fā)

盡可能減少同步塊和同步方法的使用

使用正確設(shè)置了線程安全的資源類

以上是“Java中Servlet常見面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


網(wǎng)頁題目:Java中Servlet常見面試題有哪些-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://weahome.cn/article/coddeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部