JSP常見知識點

 

一、轉發和重定向的區別是什麼html

轉發是在項目內部資源頁面跳轉,轉發是繼續傳遞請求(效率高),轉發是經過request實現,轉發後地址欄不改變java

    request.getRequestDispatcher(「頁面名」).forward(request,response);web

重定向能夠跳轉到任何頁面,重定向是新的請求(效率不如轉發),重定向是經過response實現,地址欄會改變ajax

    response.sendRedirect(「頁面名」);spring

 

request.setAttribute(「名字」,);sql

response.sendRedirect(「xxx.jsp」);數據庫

注意:下一個頁面沒法取出request中存儲的數據,由於是新的請求編程

 

二、http提交請求有哪兩種方式,區別是什麼?設計模式

getpost瀏覽器

區別:get能夠在地址欄顯示傳遞的數據(不安全),get有長度限制,只能傳遞文本數據,效率高於post

 

Post傳遞的數據不會在地址欄顯示(安全),post無長度限制,能傳遞任何數據,效率低於get

 

Servlet中接收請求後必定會執行的方法是如下哪一個(C

A.doGet()    B.doPost()    C.service()    D.init()

若是一個servlet衝存在doGetdoPostservice三個方法,那麼只會執行service

 

三、Spring的核心思想有哪兩個技術點

Spring核心思想:IOCAOP

IOC:控制反轉/依賴注入(DI),將對象之間的關係在編碼外的配置文件中進行配置

AOP:面向切面編程設計,將項目中的共性問題抽離出來集中解決

 

四、Sql中聲明變量的語法是什麼?賦值有哪兩種方式

   declare @變量名 類型

Delare @name varchar(30)

Set @name = ‘jack’    賦予固定值,同時只能給1個變量賦值

Select @name = ‘jack’  能夠給多個變量賦值,通常是將查詢的結果賦值給某變量,如:

Declare @myCount int = 0;

Select @myCount=count(*) from

 

五、ORM是什麼?Hibernate是一種什麼技術

   ORM:對象關係映射 將類和數據庫的表進行映射關聯,操做類對象時,自動根據映射去產生sql語句及jdbc代碼

   Hibernate是一種實現了ORM思想,封裝了jdbc的一種數據庫操做技術

 

六、Struts2的控制器分哪兩種?

   1)核心控制器(StrutsPreparedAndExecuteFilter

 它是一個過濾器,負責處理全部的請求

   2)業務控制器(平時本身創建的XXXXAction)

 

    Struts2中的每一個請求都會建立對應的Action實例

 

七、Struts2Action如何完成配置(寫出大概的框架例子便可)

   <package name=」包名」 extends=」struts-default」 namespace=」訪問的路徑」>

       <action name=」訪問名」 class=」包名.類名」>

             <result name=」名字」 type=」」>頁面</result>

       </action>

   </package>

頁面返回的類型:

Dispatcher(默認,轉發)

Redirect(重定向)

redirectAction(重定向到其餘Action

 

八、IOC是什麼?表明什麼意思,有哪兩種注入方式?

IOC:控制反轉/依賴注入(DI),將對象之間的關係在編碼外的配置文件中進行配置(下降耦合)

 

Set注入

構造注入(時機更早一些)

<bean id=」emp」 class=」com.scme.Employee」>

     <property name=」age」 value=」20」 />

</bean>

以上property說明,Employee類中必定有一個setAge方法

 

九、AOP是什麼意思,表明什麼意思?有哪幾種通知類型

 

AOP:面向切面編程設計,將項目中的共性問題抽離出來集中解決

Aop是面向對象的補充擴展,不是替代。Aop是橫向的設計,面向對象是縱向

前置通知

後置通知

環繞通知

異常通知(攔截目標方法的執行)

 

AOP主要是經過代理設計模式實現,代理有兩種方式:

1)>jdk動態代理(默認)

2)>cglib類代理方式

 

十、Hibernate中的對象有哪幾種生命週期狀態

瞬時(臨時):new的對象

持久化:調用saveloadget等方法

遊離:session.close  session.clear   session.evict

 

十一、SSH中幾個經常使用bean的注入方式是什麼?如DataSource注入給誰。

DataSource-->sessionFactory-->Dao--->Service--->Action

 

當咱們的Dao繼承HibernateDaoSupport後,那麼必需要注入sessionFactory

 

十二、<jsp:useBean是什麼意思,完成一個完整的寫法例子,它的存儲範圍有哪幾個

<jsp:useBean id=」對象名」 class=」包名.類名」 scope=」request」 />

等價於在jsp中:

<%

類名 對象名 = new 類名();

%>

Scope表明該對象存在的範圍

   Page      --當前頁面範圍有效

   Request   --轉發後的下一個頁面有效

   Session   --整個會話範圍

   Application   ---整個項目範圍(全局、最大)<網頁的計數器>

 

1三、Hibernatecascade是什麼意思,有哪幾個取值

Cascade級聯操做

取值:all   save-update   delete   none

1四、Hibernate中延遲加載的屬性是什麼?=true=false什麼意思,默認是什麼

     Lazy=」true」  延遲  -------默認

     Lazy=」false」  不延遲(當即)

 

1五、HibernatesetFirstResultsetMaxResult是什麼意思

setFirstResult(數字)---從第幾條開始取,下標從0開始

setMaxResult(數字)---取多少條記錄

setFirstResult(4),  從第5條開始取

setMaxResult(8),  8條記錄

 

1六、Pagerequestsessionapplication的存儲做用域分別是什麼

          Page      --當前頁面範圍有效

            Request   --轉發後的下一個頁面有效

            Session   --整個會話範圍(不一樣的客戶端有不一樣的session

            Application   ---整個項目範圍(全局、最大)<網頁的計數器> 不一樣的項目有不一樣的application

    

1七、Struts2中的XXXAction中如何訪問requestsessionapplication對象

HttpServletRequest req = ServletActionContext.getRequest();

 

HttpSession session = req.getSession();

 

ServletContext application = ServletActionContext.getContext();

 

1八、SSH中須要改變那些配置文件,分別改變那裏是作什麼用的?

   如監聽器:在那裏配置,如何配置

   Web.xml Struts2的核心控制器和監聽器

   Struts.xml: 配置Struts2的屬性和配置action

   applicationContext.xml:配置對象之間的依賴關係

   Hibernate.cfg.xml:配置hibernate的屬性

 

   實體類.hbm.xml:實體類和數據庫表的映射信息

 

1九、爲了規範Struts中的Action寫法,通常咱們會實現哪一個接口或者繼承哪一個類

Action接口

ActionSupport

 

20、Servlet的生命週期是什麼,分別在何時執行。

加載   --服務器啓動時

實例化  ---第一次請求時

初始化(init)  ---第一次請求時

服務(service--doGet/doPost)    ---每次請求時

銷燬(destroy)    ---服務器中止時

 

Servlet完成後須要在web.xml中配置其訪問路徑,不然沒法使用

<servlet>

<servlet-name>名字</servlet-name>

<servlet-class>包名.類名</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>名字和上面對應</servlet-name>

<url-pattern>/test</url-pattern>

</servlet-mapping>

那麼要進入該servlet,則請求最後要提交的就是/test,如項目名是book,那麼訪問爲:

http://ip:端口/book/test  便可訪問該servlet

 

2一、Jsp的執行原理是什麼?爲何第二次訪問jsp頁面時比第一次訪問要快

   Jsp----翻譯(轉義)成java---編譯成class,最終運行這個class,向客戶端輸出靜態的html

   由於jsp頁面第一次訪問時,須要轉義和編譯的過程,第二次就不須要了.

2二、]>javaWeb中的MVC指什麼,Model1時期時控制器是誰,Model2時期時控制器是誰

 MVC:設計模式

 Model 模型 javabean(實體類、Daoservice)

 View   視圖(jsp

 Controller  控制器(servlet

Model1:最先時期的javaweb應用,控制器jsp擔任

Model2:目前,控制器servletAction

 

2三、如今有班級表(ClassInfo)和學生表(StudentInfo),其中學生表中有一個claId爲該學生所在的班級ID(外鍵),如今要查詢出班級名稱是」1403」的男同窗信息,請完成sql語句(使用子查詢)

Select * from StudentInfo where claId = (select claId from ClassInfo where claName = ‘1403’) and stuSex = ‘

註釋:1403是班級的名稱,只在班級表中,學生表中只有班級的id,並不是班級名稱。

 

2四、Hibernate是一個對象關係映射框架,它是如何映射的(什麼對應什麼)?

----

屬性----

對象-----行記錄

2五、sessionFactory是一個重量級仍是輕量級的對象,通常項目中建立幾個?

     重量級對象,一個項目中一個便可

     Ssh中,由spring負責建立它,LocalSessionFatoryBean

 

2六、Hibernateinverse是什麼意思,通常設置在哪一個標籤上,設置爲何值的時候效率高

inverse表明關係中誰做爲主控方

通常設置在1方的<set標籤上,設置爲true的時候表明對方(多方)爲主控方,效率高

 

2七、Hibernate.cfg.xml是配置什麼的?實體和表的映射信息配置在哪一個配置文件中

配置hibernate的一些全局屬性,如數據庫鏈接、方言dialectshow_sql

 

實體和表的映射信息存儲在各自的 xxxx.hbm.xml文件中

 

2八、Struts2action請求處理方法通常返回的字符串,該字符串和那裏的配置對應。它默認的返回類型是什麼?有哪幾種返回方式

struts.xml中的<result name=」xxx」 中進行配置

默認是轉發

Dispatcher

Redirect

redirectAction

 

2九、若是jsp頁面要導入標籤庫,則須要使用的指令是?其中uriprefix表明什麼意思

   <%@ taglib uri=」標籤的地址」 prefix=」前綴」 %>

 C標籤:

<%@ taglib uri=」http://java.sun.com/jsp/jstl/core」 prefix=」c」 %>

Struts標籤:

<%@ taglib uri=」/struts-tags」 prefix=」s」 %>

 

30、Struts2action是單例的仍是每次請求都會建立action對象

    Action是每次請求都會建立action對象

Struts1action是單例的

Servlet也是單例的

3一、Ajax 是一種什麼技術,其中xmlHttpRequest的狀態值有哪幾種,分別是何時變化。在服務器端返回xml數據時,如何獲取返回的信息xmlHttpRequest.responseXXXX什麼獲取

   Ajax是一種頁面無刷新技術

   xmlHttpRequest負責整個ajax中的通訊,發送請求接收數據

   readyState5個狀態值:

   0  剛建立

   1  準備發送

   2  已發送

   3  接收數據中

   4  接收完畢

 

3二、http返回的狀態嗎分別表明什麼意思

   404--------資源找不到

   200---------處理成功

   500---------服務器報錯

3三、Webservice使用什麼協議通訊

SOAP協議

Webservice中包含了:xml/xsd  soap   wsdl

 

3四、http訪問時的默認端口號是什麼?Tomcat的默認端口號是什麼,能夠改變嗎?Sqlserver的默認端口號是什麼?

80端口

Tomcat默認是:8080

Sqlserver默認端口:1433

 

3五、客戶端禁用Cookie時,如何實現會話跟蹤

url重寫

 

3六、SessionCookie分別存儲在那裏?

Session是存儲在服務器端的信息

Cookie是存儲在客戶端

 

3七、OGNLstruts2訪問數據的語法,其中OGNL的根是什麼

     ValueStack

     OGNL訪問數據時都要加 #

 

3八、actionsession是從哪裏獲取出來的,request如何獲取

HttpServletRequest request =ServletActionContext.getRequest();

 

HttpSession session = request.getSession();//若是沒有session則建立一個

 

HttpSession session = request.getSession(false);//若是沒有session則返回null

 

Tomcatsession默認存活的時間:30分鐘

能夠在tomcatconf中的配置文件中改爲存活時間

也能夠直接調用session

session.setMaxAge(時間);-----

 

3九、下列代碼可以在下一個jsp頁面中取出數據嗎,爲何

 

request.setAttribute(「name」,」zhang」);

response.sendRedirect(「http://localhost:8080/servlet/MyServlt」);

 

    下一個jsp是否可以取出request中存儲的name屬性

  答:不能取出,由於重定向是一個新的請求

 

40、servlet中如何獲取表單提交請求中的數據,如文本框的數據,再如獲取多個名字相同的checkbox中的值

String n = request.getParameter(「name」);

String[] as = requset.getParameterValues(「名字」);

 

4一、C標籤如何循環集合中的數據,寫出一個簡單的架構便可。Strtus2標籤如何循環

<c:forEach items=」${集合}」 var=」對象名」 varStatus=」狀態信息」 >

 

</c:forEach>

 

<s:iterator value=」#attr.集合名」 id=」對象名」 status=」狀態信息」>

 

</s:iterator>

 

4二、Hibernate中的session經常使用的方法有哪些,做用是幹什麼

     Session.save   保存對象

     session.saveOrUpdate  --增長或修改(根據對象的主鍵id

     Session.update

     Session.get

     Session.load

     Session.delete

     session.close

 

4三、Hibernate中經過getload均可以根據id查詢一個對象,區別是什麼?

getload都會查詢1級緩存

get是當即加載,若是沒找到返回null

load是延遲加載,若是沒找到報錯

   

4四、Html註釋和jsp註釋分別如何寫,那個在客戶端看不到(隱式的)?哪一個效率高

Html註釋:<!-- html註釋,能夠看到,效率低  -->

Jsp註釋:<%-- jsp註釋,客戶端看不到,隱式效率高--%>

 

4五、xml文件進行限制有哪兩種方式?

Dtd------------.dtd

Schema-------.xsd(限制要求更高)

 

4六、Struts2中自定義類型轉換器須要實現的接口、類分別是什麼?

TypeConverter  -----------接口

StrutsTypeConverter----------

4七、Sql中經常使用的聚合函數有那些,分別是幹什麼的

Sum 求和

Avg  平均

Max  最大

Min   最小

Count  統計行數

 

Select count(*) from

Select count() from   ---若是該列值存在爲null,則不參與統計

 

4八、下列代碼運行結果是什麼,爲何

 

tx = session.beginTransaction();

Customer c1=(Customer)session.load(Customer.class,new Long(1));

Customer c2=(Customer)session.load(Customer.class,new Long(1));

System.out.println(c1==c2);

tx.commit();

session.close();

true,第一次load會放入緩存中,第二次直接從緩存中取

 

4九、Sql中排序時升序和降序的關鍵字分別是什麼?

Asc----升序(默認)

Desc  --降序

 

50、SQL中的索引有什麼用?在哪些列上適合創建索引?

索引主要是爲了加快查詢速度。

1)該列警察被使用、排序、分組等。

2)該列不常常被修改

3)該列重複值很少

索引:

彙集索引,效率高,一個表中只能一個(主鍵就是彙集索引),索引的順序和數據的物理順序一致(拼音目錄)

非彙集索引,效率低,一個表中能夠多個(最多255個),索引的順序和數據的順序不一致(偏旁部首目錄)

 

5一、子查詢若是用 > < = 引出來,那麼子查詢只能查詢出多少值?若是用in 引出來,那麼查詢出多少值?

單個值   select * from where = (單個值查詢)

In的話,能夠多個,可是隻能單列

 

5二、sql中事務的做用是什麼?Sql中事務用那些語句構成

事務是爲了保證某個功能下的多條sql要麼都成功,要麼都取消

Begin tran --開始事物

Commit tran --提交事務

Rollback tran –回滾事務

5三、存儲過程的建立語法是什麼,參數能夠是什麼類型,如何調用

Create proc up_名字(

參數列表

)

As

Begin

--存儲過程主體

end

參數能夠是輸入參數、輸出參數(要用output聲明)

 

調用存儲過程時,使用 exec ,如:

declare @flag int  --聲明輸出參數

exec up_過程名 參數1,參數2,@flag output

print @flag ---上面的存儲過程會將輸出參數中進行賦值,做爲返回值

 

5四、sql中的變量分類,舉例

   Sql中變量分爲全局變量和局部變量

   全局變量,只能讀取數據,不能聲明,如:

   @@error  上個語句錯誤號

   @@identity  最後次插入標識列的值,若是沒有,則爲null

   @@rowcount  上個增刪改語句影響的行數

  

   局部變量,本身聲明的:

   Declare @name varchar(30)

   Set @name = ‘jack’

 

5五、關於having

Select count(*) from 考試信息表

查詢全部人考試的總次數

按人來查詢每一個人的總次數

Select count(*) from 考試信息表 group by 學生ID

查詢考試次數在2次以上的人的id

Select 學生ID from 考試信息表 group by 學生ID having count(*) > 2

 

 

 

56、重載和重寫

重載與重寫的區別

 
 
 

序號

重載

重寫

 
 

1

方法的名稱相同,參數個數和類型不一樣

方法名稱、參數列表和返回值類型與父親徹底相同

 
 

2

不要求方法的訪問範圍

子類中提供的重寫方法的訪問範圍不能小於父類

 
 

3

應用在一個類的內部

應用在父子類繼承關係中

 
 

重載:同一個類中,相同的方法名,不一樣的參數

重寫:子類重寫父類的方法,方法名、返回類型,參數都同樣

 

5六、HashMap

 HashMap不能保證其中元素的順序,HashMapkeyvalue都能爲null HashMap使用鍵/值的形式保存數據,HashMap經過get(key)獲取對應的值

 

57、泛型集合

 泛型能夠解決數據類型安全的問題,泛型消除了類型強制轉換,泛型集合的效率比普通集合更高

 

5七、抽象類和接口

抽象類在Java語言中表示的是一種繼承關係,一個類只能使用一次繼承。抽象類能夠沒有構造方法,可是一個類卻能夠實現多個接口;在抽象類中能夠沒有抽象方法,抽象類不能被實例化; 實現抽象類和接口的類必須實現其中的全部抽象方法,除非它也是抽象類。接口中的方法都不能被實現,必須在子類中重寫;接口中不能有構造方法;接口中定義的變量默認是public static final 型,且必須給其初值,因此實現類中不能從新定義,也不能改變其值

 

5八、面向對象的方法:繼承、封裝、多態

 

5九、Java構造方法

構造方法沒有返回類型;構造方法是類的一種特殊方法,它的方法名必須與類名相同; 構造方法的主要做用是完成對類的對象的初始化工做

 

60、java中的數據類型

不會改變的是:基本數據類型(8)String類型

基本數據類型(8):Int double float long char boolean  short  byte

 

61java的修飾符:Private -- default ---protected---public

 

6一、在瀏覽器輸入http://localhost:8080/news/main/list.jsp,分別執行以代碼後,打印結果

System.out.println(request.getContextPath());   打印結果:/news

System.out.println(request.getServletPath());   打印結果:/main/list.jsp

System.out.println(request.getRequestURL());    

打印結果:http://localhost:8080/news/main/list.jsp

System.out.println(request.getRequestURI());   打印結果:/news/main/list.jsp

URL:帶http的全路徑

URI:項目名/頁面名

 

6二、WEB

Web服務的數據傳輸標準是XML

Webservice通訊協議:SOAP

 

63XMLHttpRequestreadyState屬性值:

0未初始化,剛建立時

1準備發送

2send方法調用,已發送

3正在接收,未完畢

4已經響應完畢

Status的狀態信息爲200成功、404資源未找到、500服務器報錯

相關文章
相關標籤/搜索