jsp主要內置對象有: application、exception、 pageContext、 request、 session、response__out、config、page。
5、 application對象是 代表應用程序上下文,它允許JSP頁面與包括在同一應用程序中的任何Web組件共享信息 ,而session對象則是每個客戶專用的。
JDBC的主要任務是:與數據庫建立連接 、發送SQL語句、處理結果
7、 一個Bean由三部分組成: 實現java.io.serializable接口、 提供無參數的構造方法 、 提供getter()和setter()方法訪問它的屬性 。
9、 Servlet的生命週期分三個時期:裝載Servlet、創建一個Servlet實例、銷燬 。
10、 JSP開發網站的兩種模式分爲_jsp+javabean_和jsp+javabean+servlet
1. 什麼是request對象,它有哪些常用的方法。
1. 答:“request” 對象代表的是來自客戶端的請求,例如我們在FORM表單中填寫的信息等,是最常用的對象。關於它的方法使用較多的是getParameter、getParameterNames和getParameterValues,通過調用這幾個方法來獲取請求對象中所包含的參數的值。
3.什麼是application對象,application對象與session對象的區別?
1)“application” 對象負責提供應用程序在服務器中運行時的一些全局信息,常用的方法有getMimeType和getRealPath等。
2)與session對象不同:服務器啓動後,就產生application對象。當客戶訪問服務器上的Jsp時,Jsp引擎就爲該客戶分配這個application對象。所有的客戶的application對象都是同一個。即所有的客戶共享這個內置的application。
4、這些內置對象都代表什麼意思?
答:request,請求對象:代表的是來自客戶端的請求
response,響應對象:代表的是對客戶端的響應
session,會話對象:代表服務器與客戶端所建立的會話
application,應用程序對象:負責提供應用程序在服務器中運行時的一些全局信息
out,輸出對象:代表了向客戶端發送數據的對象
exception,異常對象:代表了JSP文件運行時所產生的異常對象
5、分頁的步驟和關鍵代碼?
答:1)首先取得總的記錄數m。
2)根據每頁顯示的n計算總的頁數pageSize。
3)設定一個變量爲要顯示的頁:showPage。
4)設定一個變量爲記錄顯示記錄的位置:positoion
如果要顯示第showpage頁則:
int position=(showPage-1)*pageSize+1;
rs.absolute(postion);//設置遊標的位置
…
for(int I=1 ;I<pageSize;I++)
{
out.print(“<tr>”);
out.print(“<td>”+rs.getString(1)+”</td>”);
…
out.print(“</tr>”);
rs.next();
}
2. 什麼是URL重寫?Jsp中如何實現URL重寫?
2.答:URL重寫:當客戶從一個頁面重新連接到另一個頁面時,通過向這個新的URL添加參數,把session對象的Id傳帶過去,這樣可以保障客戶在客戶在該網站各個頁面中的session對象是完全相同的。
實現URL重寫的方法:使用response對象調用encodeURL()或encodeRedirectURL()實現URL重寫。例如:從tom.jsp連接到jerry.jsp
1) String s=session.getId();
2) String str=response.endcodeURL(“jerry.jsp”);
3) <%=str %>//連接目標
3. 從表單中獲得參數常用方法有哪些?
1)getParameter() 獲取參數的值
2)getParameterNames() 獲取參數的名稱
3)getParameterValues() 獲取多個值
1.簡述servlet進行中文處理的方法。
res.setContentType(“text/html;charset=gb2312”);
5.JSP和Servlet有哪些相同點和不同點,他們之間的聯繫是什麼?
答:JSP是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。
3.簡述Jsp的執行過程。
.答: 1)客戶端發出Request(請求);
2)JspContainer將Jsp轉譯成Servlet源代碼;(字節碼)
3)將產生的Servlet的源代碼經過編譯後,並加載到內存執行;
把結果Response(響應)至客戶端。
2.請寫出獲取初始化參數的方法。
答:1)使用ServletConfig對象訪問初始化參數:
ServletConfigconfig=getServletConfig();
Config.getInitParameter(“name”);
3. 簡述使用Cookie進行會話跟蹤的過程。(寫出主要步驟,即存取數據的步驟)
答:保存到Cookie中:
Cookie=new Cookie(“userType”,user);
從Cookie中取數據:
Cookie[] cookie=req.getCookies();
if (cookies!=null){
for(int I=0;I<cookies.length;I++)
{
if (cookies[I].getName().equals(“userType”));
String userType=cookie[I].getValue();
}
4.JavaBeans具有的特點有哪些?
答:1)可以實現代碼的重複利用。
2)易編寫、易維護、易使用。
3)可以在安裝了Java運行環境的平臺上使用,而不需要重新編譯。
5、簡述Jsp 的指令與JspAction 各包包含哪些內容(列舉5個以上)
1)page 指令 2)include指令 3)taglib指令4)<jsp:include/>動作
5)<jsp:forward/>動作 6)〈jsp:useBean/>
6、編寫兩個過濾器FilterC和FilterD同時作用於一個ServletC。兩個過濾器簡單打印一句話。然後將兩個過濾器的作用順序發生改變,打印出執行結果,並寫出web.xml的配置。
publicclass ServletC extends HttpServlet
{
public void service(HttpServletRequestrequest,HttpServletResponse response)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is ServletC!");
}
}
FilterC.java
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclass FilterC implements Filter
{
public void init(FilterConfig config)
{
}
public void doFilter(ServletRequestrequest,ServletResponse response,FilterChain chain)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is FilterC before doFilter");
chain.doFilter(request,response);
out.println("This is FilterC after doFilter");
}
public void destroy()
{
}
}
FilterD.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class FilterD implements Filter
{
public void init(FilterConfigconfig)
{
}
public voiddoFilter(ServletRequest request,ServletResponse response,FilterChain chain)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is FilterD beforedoFilter");
chain.doFilter(request,response);
out.println("This is FilterD afterdoFilter");
}
public void destroy()
{
}
}
web.xml配置爲:
<filter>
<filter-name>FilterC</filter-name>
<filter-class>FilterC</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterC</filter-name>
<url-pattern>/ServletC</url-pattern>
</filter-mapping>
<filter>
<filter-name>FilterD</filter-name>
<filter-class>FilterD</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterD</filter-name>
<url-pattern>/ServletC</url-pattern>
</filter-mapping>
1)按上面順序配置web.xml打印出的結果爲:
This is FilterC before doFilter
This is FilterD before doFilter
This is ServletC!
This is FilterD after doFilter
This is FilterC after doFilter
2)過濾器作用順序發生改變時候的執行結果爲:
This is FilterD before doFilter
This is FilterC before doFilter
This is ServletC!
This is FilterC after doFilter
This is FilterD after doFilter