- 相關推薦
java面試筆試題 (WEB)
1. jsp有哪些內置對象?作用分別是什么?
一共有9個內置對象
pageContext javax.servlet.jsp.pageContext
request javax.servlet.http.HttpServletRequest
response javax.servlet.http.HttpServletResponse
session javax.servlet.http.HttpSession
application javax.servlet.ServletContext àthis.getServletContext()
config javax.serlvet.ServletConfig
exception java.lang.Throwable
page java.lang.Object
out javax.servlet.jsp.JspWriter
作用:
1、pageContext 表示頁容器 àEL表達式、 標簽 、上傳
2、request 服務器端取得客戶端的信息:頭信息 、Cookie 、請求參數 ,最大用處在MVC設計模式上
3、response 服務器端回應客戶端信息:Cookie、重定向
4、session 表示每一個用戶,用于登錄驗證上
5、application 表示整個服務器
6、config 取得初始化參數,初始化參數在web.xml文件中配置
7、exception 表示的是錯誤頁的處理操作
8、page 如同this一樣,代表整個jsp頁面自身
9、out 輸出 ,但是盡量使用表達式輸出
2. jsp有哪些動作?作用分別是什么?
jsp共有以下6中基本動作
3. jsp 中動態INCLUDE和靜態INCLUDE 的區別?
動態INCLUDE 用
靜態INCLUDE用<%@ include %>偽碼實現:
<%@ include file=”include.jsp” %> 直接將內容先包含后處理,它不會檢查所包含的文件的變化,適用于包含靜態頁面
4. 兩種跳轉方式分別是什么?有什么區別?
客戶端跳轉:
服務器端跳轉:response.sendRedirect(),跳轉之后地址欄改變,完全轉向新的頁面,不會再回來,相當于go to 語句。
5. 請總結一下WEB開發中的會話跟蹤實現
1、 Session也是最常用的一種
2、 Cookie
3、 地址重寫
4、 隱藏域
6. 在Web開發中需要處理HTML標記時,應做什么樣的處理,要篩選哪些字符
(< > & “ ‘ 空格 乘號 除號 .........)
因為以上的標記都屬于HTML范疇的內容,所以必須進行轉義操作
顯示效果 符號說明 實體名表示 實體編號表示
空格符
< 小于號 < <
> 大于號 > >
& 符號& & &
“ 雙引號 " "
C 版權符號 © &169;
R 注冊商標 ® ®
× 乘號 × ×
÷ 除號 ÷ ÷
‘ 單引號 ´
7. 說明Jsp中errorpage的作用域,應用范圍
表示錯誤頁的操作,在一般的站點中,只要一個程序出現了錯誤,就是產生了異常,則可以統一跳轉到一個頁面上進行顯示,那么這種操作就屬于錯誤頁的處理,但是簡單的錯誤頁基本上都是在Jsp的開發中使用的。要想進行錯誤頁的設置,需要滿足以下兩個條件:
1. 在錯誤能夠處理的頁上的page指令中,增加:isErrorpage=”true”,表示可以處理錯誤
2. 在每一個頁面指定errorpage,執行isErrorpage為true的頁面。
如果現在希望能夠配置一種全局的錯誤處理的話,則可以在Web.xml文件中進行配置
一旦出現錯誤之后,會自動跳轉到指定的頁面,但是這樣的跳轉,永遠都是屬于服務器端跳轉
8. 寫一段JDBC連接Oracle的程序,并實現數據查詢。
package com.jdbc;
//import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.preparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJdbc {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String username = "lanlan"; //scott
String password = "123456"; //tiger
String sql = "select * from users t";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, username, password);
// preparedStatement pstmt = conn.prepareStatement(sql);
// ResultSet rs = pstmt.executeQuery();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
}
rs.close();
stmt.close();
// pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
9. Class.forName 的作用?為什么要用?
Class.forName(xxx.xx.xx) 返回的是一個類
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加載指定的類,也就是說JVM會執行該類的靜態代碼段
10. 簡述在JSp中是如何實現分頁操作的?
分頁有兩種情況:
真分頁:性能高,是基于數據庫的操作,只是從數據庫中取出部分的數據進行顯示,所以性能高,但是可移植性低
假分頁:性能低,是將全部的結果查詢出來,之后依靠算法分頁,只顯示部分數據,因為使用了通用的語法,所以可移植性高
真分頁實現原理:
1.定義一系列的變量:currentpage(當前頁) showResultNumber(每頁顯示記錄數),
并通過查詢求出countResultNumber(總記錄數)求出countpage(總頁數)
|- countpage=(countResultNumber-1)/showResultNumber+1
2.然后根據currentpage 和 showResultNumber到數據庫中查詢數據
|- Oracle中用rownumber MySql中用limit()
3.然后在表單中不斷地修改currentpage和showResutlNumber就可以實現分頁
11. 介紹在JSp中如何使用javaBeans
1. javaBean的格式要求:必須有包、public calss 聲明、屬性封裝、無參的構造函數、setter() 和getter()方法
2. jsp中導入javaBean:
使用import導入 如:
<%@ page import="com.model.User" %>
使用
12. 說一說什么是Servlet 和Servlet的生命周期?
什么是Servlet:
Servlet是用Java編寫的服務端程序,它與協議和平臺無關。Servlet運行于Java-enabled Web Server中。Servlet可以動態地擴展Server的能力,并采用 請求-響應 模式提供Web服務。
Servlet的主要功能在于交互式地瀏覽和修改數據,生成動態Web內容。這個過程為:
1.客戶端發送請求至服務器端;
2.服務器將請求信息發送至Servlet
3.Servlet生成響應內容并將其傳給Server。響應內容動態生成,通常取決于客戶端的請求
4.服務器將響應返回給客戶端
Servlet的生命周期:
加載
初始化:(由應用服務器Tomcat創建)
正常一次,對應 init()方法,有兩個 init()方法,其中一個是具有ServletConfig對象,此方法存在則無參不調用,Servlet對象是由應用服務器在第一次使用的時候創建,一個Servlet只有一個Servlet對象存在。也可以通過在web.xml文件中配置
服務:
服務多次,所有的服務都由service()方法分配,包括 dopost() 和doGet(),分別處理post和get 請求
銷毀:
正常一次,調用destroy()方法,當重新加載或者關閉應用服務器的時候應用服務器會銷毀Servlet對象,如果一個Servlet長時間不使用,也會自動銷毀,而當再次使用的時候就必須重新進行初始化的操作
卸載
13. Servlet中forward()與sendRedirect()的區別?
forward()方法是RequestDispatcher接口定義的,而sendRedirect()是response定義的,sendRedirect()是服務器端的跳轉,forward()是客戶端的跳轉
14. MVC的各個部分都有哪些技術來實現?如何實現?
1.面向事件驅動的(JSF)
2.面向請求驅動的(Struts1.X,Struts2.X,WebWork)
· MVC: Model 、View 、Controller
|- Model(模型)JavaBean:業務處理、數據處理
|- View(視圖)JSp:最好不存在scriptlet,可以使用標簽消除
|- Controller(控制器):接受View提交的內容并調用JavaBean,并根據JavaBean的處理結果進行跳轉
·實現原理:
所有的JSp將內容提交給Servlet,Servlet接收這些內容并調用相對應的JavaBean進行業務及數據的處理,完成業務的操作流程。Servlet調用的只是接口,并根據這些接口的操作結果將內容交給JSp顯示,在顯示的時候盡量少出現scriptlet代碼。
15. 簡述國際化程序的實現思路?
·Locale 、屬性文件 、 ResourceBundle
·國際化程序的實現,是根據本機的操作系統的語言類型,選擇不同的屬性文件,所有程序的基本代碼一樣,但是文字顯示不一樣,所以將內容作為屬性文件出現之后,可以只是顯示屬性文件中的文字
16. 描述JSp和Servlet的區別、共同點、各自應用的范圍。
·區別:先有的Servlet再有的JSp,Servlet是在Java中嵌入HTML代碼,而JSp是在HTML代碼中嵌入Java代碼
jsp是一種腳本語言,簡化了java和Servlet的使用難度,同時擴展了網頁動態執行的能力
jsp仍然沒有超出java和Serlvet的范圍,不僅jsp頁面上可以直接寫java代碼,而且jsp是先被編譯成Servlet之后才實際運行的
jsp在服務器上執行,將結果輸出到客戶端顯示
·共同點:Jsp可以完成的功能Servlet也可以完成,但是對于過濾器、監聽器只能由Servlet完成
·應用范圍:Jsp用于顯示,Servlet用于控制
17. 簡述Web.xml文件的作用
·屬于部署描述符,在整個Java中只要是容器都會存在部署描述符,此部署描述符可以控制整個Web中各個組件的運行狀態,也可以配置整個容器的狀態, 主要配置程序中的一些基本信息和文件等等:
如 :
18. 什么情況下調用doGet()和dopost()方法?
Jsp頁面中的form標簽里的method屬性為get時調用doGet(),為post時調用dopost().
19. 注意內容
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextpath();
String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerport() + path + "/";
%>
凡是自動生成的代碼,都需要注意:
public static void main(String [] args){}
【java面試筆試題 WEB】相關文章:
Java Web基礎筆試題09-26
Java面試題01-22
java面試試題07-19
java面試簡答試題09-25
web前端面試題08-08
Java框架面試題07-16
java線程面試試題09-25
java學習:Java面試題和答案07-17
2016高薪Java面試題08-05