亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Servlet常見面試題有哪些

發布時間:2021-10-15 13:44:22 來源:億速云 閱讀:113 作者:小新 欄目:編程語言

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

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

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

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

2:描述war包、jar包、ear包的結構

war-

--myweb

---WEB-INF

----web.xml

----lib

----classes

jar-

--myjar

---META-INF

----.MF

ear-

--META-INF

---Application.xml

--.war

 --.jar

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

網絡服務的請求和響應方式

通過WEB瀏覽器調用servlet的方法,主要是在服務端寫動態代碼與服務器端交流;

4:servlet 與cgi相比的優點?servlet的缺點

優點:

 性能(線程比進程更快)

 可伸縮

 Java強健且面向對象

 Java獨立的平臺

缺點:

   處理代碼(業務邏輯)與HTML(表現邏輯)混合在一起

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

javax.servlet

javax.servlet.http

6:描述servlet接口的層次結構?

Servlet

--genericServlet

--HttpServlet

--自己的servlet

ServletRequest

ServletResponse

7:對比get方法和post方法?

get方法: 請求對服務器沒有負面影響,Form數據量小,數據的內部應在url中可見; 明文傳輸,安全度低。

post方法:請求的數據過程改變服務器的狀態,Form數據量大,數據的內部應在url中不可見,安全度高;

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

1.讀取和寫入HTTP頭標 

2.取得和設置cookies

3.取得路徑信息 

4.標識HTTP會話。

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

HttpServletResponse加入表示狀態碼、狀態信息和響應頭標的方法,它還負責對URL中寫入一Web頁面的HTTP會話ID進行解碼。

10:描述Service方法所完成的基本功能?默認是在那里實現的?

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

HttpServlet類實現

11:如何開發自己的Servlet?描述應該做的步驟和每步需要完成的工作

1.引jar包

  1)構建開發環境 common包-->lib包-->servlet--->api.jar

 2.開發servlet類

      1)首先繼承HttpServlet

      2)實現 doGet() doPost()

      3)定義 doGet() doPost()

  3.建個web應用

  4.部署

安裝web容器,例如Tomcat

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

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

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

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

 servlet需要配置web.xml文件來使容器認識servlet程序

13:Servlet基本的描述應該是?請寫出來

<servlet>
 
<servlet-name>Hello</servlet-name>
 
<servlet-class>sl314.web.FormBasedHello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/greeting</url-pattern>
</servlet-mapping>

14:如何在html中使用servlet

FORM標記

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

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

語法:

<FORM ACTION=’servlet-URL’ METHOD=’{GET|POST}’>

{HTML form tags and other HTML content}

</FORM>

15:如何接受request中的參數

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

16:如何接受request中header的值

request.getHeader(name);

request.getHeaders(names);等

17:如何輸出html

PrintWriter pw = response.getWriter();

pw.write("<html>");

pw.write("Hello");

pw.write("</html>");

18:如何設置輸出的contentType

response.getContentType()

19:描述servlet的生命周期?

生命周期是指servlet實例在web容器中從:首次創建調用init方法開始初始化期,經過service方法運行期,一直到destory方法銷毀期 結束

servlet實例的生命周期由web容器來管理

20:描述init,service,destroy方法的功能和特點

init方法:   是在servlet實例創建時調用的方法,用于創建或打開任何與servlet相關資源和初始化servlet的狀態Servlet規范保證調用init方法前不會處理任何請求。

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

destory方法:是在servlet實例被銷毀時有web容器調用。Servlet規范確保在destroy方法調用之前所有請求的處理均完成需要覆蓋destroy方法的情況:釋放任何在init方法中打開的與servlet相關的資源存儲servlet的狀態

21:什么是回調方法?有什么特點?

由容器來調用程序的方法

由容器來決定什么時候來調

22:如何設置初始化servlet的參數?

<init-param>
 
       <param-name>greetingText</param-name>
 
       <param-value>Hello</param-value>
 
  </init-param>

23:如何獲取servlet初始化的參數

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

24:ServletConfig接口默認在那里實現的

GenericServlet類實現ServletConfig接口

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

Servlet上下文 

ServletContext對象是Web應用的運行時表示,可通過其實現Web應用中的資源共享

26:如何訪問ServletContext接口?是在那里實現的?

Servlet通過getServletContext()方法訪問

GenericServlet類實現

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

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

getInitParameterNames() : Enumeration

讀寫訪問應用級屬性:getAttribute(name:String) : Object

setAttribute(name:String, value:Object)

getAttributeNames() : Enumeration

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

getResourceAsStream(path) : InputStream

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

log(message:String, Throwable:excp)

28:如何設置Context的參數?

<context-param>
 
<param-name>catalogFileName</param-name>
 
<param-value>/WEB-INF/catalog.txt</param-value>
 
</context-param>

29:如何獲取Context設置的參數值?

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

30:描述Web應用的生命周期?

Web容器啟動時,初始化每個Web應用

可以創建"監聽器"對象觸發這些事件;

Web容器關閉時,銷毀每個Web應用

31:如何用代碼實現監控Web應用的生命周期?

public class Test implements ServletContextListener{
 
public void contextInitialized(ServletContextEvent sce) {
 
//
 
}
 
}
 
<listener>
 
<listener-class>
    com.csy.Test
</listener-class>
</listener>

32:web應用中如下錯誤碼示什么意思:400,401,404,500

400    Bad Request

401    Unauthorized

404    Not Found

500    Internal Server Error

33:描述Web應用中用聲明方式來進行錯誤處理的兩種方法

使用error-page元素聲明一個給定HTTP狀態碼的處理器

<error-page>

 <error-code>404</error-code>

 <location>/error/404.html</location>

</error-page>

可以聲明任意數量的錯誤頁面,但一個給定的狀態碼只能對應一個頁面

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

<error-page>

 <exception-type>

        java.lang.ArithmeticException

 </exception-type>

<location>/error/ExceptionPage</location>

</error-page>

可以聲明任意數量的錯誤頁面,但一個給定的異常類型只對應一個頁面

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

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

GenericServlet:

log(message:String)

log(message:String, Throwable:excp)

ServletContext:

log(message:String)

log(message:String, excp:Throwable)

35:什么是會話?

Web容器可為每個用戶保存一個"會話對象",用來存儲特定用戶的會話信息

36:如何獲得會話?

HttpSession session = request.getSesseion();

37:會話Api的基本功能?

getID() :String

isNew() :boolean

getAttribute(name):Object

setAttribute(name,value)

removeAttribute(name)

38:如何銷毀會話?

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

    <session-config>

    <session-timeout>10</session-timeout>

    </session-config>

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

invalidate()

    getCreationTime() :long

getLastAccessedTime() :long

getMaxInactiveInterval() :int

    setMaxInactiveInterval(int)

39:描述會話保持狀態的基本原理

當客戶端第一次請求時,服務器創建一個session與request綁定,用響應對象response來返回sessionid 放到客戶端的cookies中存儲下來,下次在發送請求時,直接根據sessionid來檢索服務器的會話(每次請求都會將所有的cookies帶到服務器端)

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重寫,如何實現,代碼示例

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

客戶在每個URL的后面追加額外的數據

服務器將此標識符與其存儲的有關會話數據相關聯

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

41:描述web應用的4種認證技術

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

DIGEST – Web瀏覽器接收用戶名和口令,使用加密算法將此數據發送給Web服務器

FORM – Web應用提供發送給Web瀏覽器的HTML form

CLIENT-CERT – Web容器使用SSL驗證用戶,服務端和客戶端的鏈路保護

42:什么是授權,什么是驗證?

授權是分局用戶角色劃分web資源的過程,其標識web應用中的安全域   分配權限

web容器使用廠商指定的機制驗證用戶的角色   匹配權限

43:什么是HTTPS

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

44:什么是審計?

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

45:如何實現聲明性授權

1、標識web資源集

2、標識角色

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

4、標識每個角色中的用戶

在 web.xml里配

46:描述servlet并發問題?

多個同類線程運行,可以共享同一個Servlet實例,共享的數據和資源未合理同步,可能會引起數據的沖突

47:描述Web應用中的六種屬性范圍

局部變量(頁面范圍)

實例變量

類變量

請求屬性(請求范圍)

會話屬性(會話范圍)

上下文屬性(應用范圍)

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

局部變量和請求屬性

49:什么是STM?如何實現?

SingleThreadModel接口

可以實現SingleThreadModel接口保證某一時刻只有一個請求執行service方法

50:如何實現并發管理?

盡可能使用局部和請求屬性

使用synchronized語法控制并發

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

使用正確設置了線程安全的資源類

以上是“Java中Servlet常見面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泊头市| 长宁区| 临清市| 遂宁市| 固镇县| 韩城市| 陕西省| 孝昌县| 灵石县| 长治市| 竹溪县| 天等县| 静宁县| 汶上县| 宁武县| 奉节县| 金寨县| 明星| 盱眙县| 勐海县| 孟村| 阿拉善盟| 垦利县| 吉首市| 马尔康县| 皋兰县| 鹿泉市| 铁岭县| 怀柔区| 棋牌| 巴塘县| 潍坊市| 扶绥县| 岳西县| 宁武县| 丰原市| 西乡县| 儋州市| 庐江县| 皋兰县| 会东县|