一、轉發和重定向的區別是什麼html
轉發是在項目內部資源頁面跳轉,轉發是繼續傳遞請求(效率高),轉發是經過request實現,轉發後地址欄不改變java
request.getRequestDispatcher(「頁面名」).forward(request,response);web
重定向能夠跳轉到任何頁面,重定向是新的請求(效率不如轉發),重定向是經過response實現,地址欄會改變ajax
response.sendRedirect(「頁面名」);spring
request.setAttribute(「名字」,值);sql
response.sendRedirect(「xxx.jsp」);數據庫
注意:下一個頁面沒法取出request中存儲的數據,由於是新的請求編程
二、http提交請求有哪兩種方式,區別是什麼?設計模式
get/post瀏覽器
區別:get能夠在地址欄顯示傳遞的數據(不安全),get有長度限制,只能傳遞文本數據,效率高於post
Post傳遞的數據不會在地址欄顯示(安全),post無長度限制,能傳遞任何數據,效率低於get
Servlet中接收請求後必定會執行的方法是如下哪一個(C)
A.doGet() B.doPost() C.service() D.init()
若是一個servlet衝存在doGet、doPost、service三個方法,那麼只會執行service
三、Spring的核心思想有哪兩個技術點
Spring核心思想:IOC、AOP
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實例
七、Struts2的Action如何完成配置(寫出大概的框架例子便可)
<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的對象
持久化:調用save、load、get等方法
遊離: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三、Hibernate中cascade是什麼意思,有哪幾個取值
Cascade級聯操做
取值:all save-update delete none
1四、Hibernate中延遲加載的屬性是什麼?=true和=false什麼意思,默認是什麼
Lazy=」true」 延遲 -------默認
Lazy=」false」 不延遲(當即)
1五、Hibernate中setFirstResult和setMaxResult是什麼意思
setFirstResult(數字)---從第幾條開始取,下標從0開始
setMaxResult(數字)---取多少條記錄
setFirstResult(4), 從第5條開始取
setMaxResult(8), 取8條記錄
1六、Page、request、session、application的存儲做用域分別是什麼
Page --當前頁面範圍有效
Request --轉發後的下一個頁面有效
Session --整個會話範圍(不一樣的客戶端有不一樣的session)
Application ---整個項目範圍(全局、最大)<網頁的計數器> 不一樣的項目有不一樣的application
1七、Struts2中的XXXAction中如何訪問request、session、application對象
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(實體類、Dao、service類)
View 視圖(jsp)
Controller 控制器(servlet)
Model1:最先時期的javaweb應用,控制器jsp擔任
Model2:目前,控制器servlet、Action
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六、Hibernate中inverse是什麼意思,通常設置在哪一個標籤上,設置爲何值的時候效率高
inverse表明關係中誰做爲主控方
通常設置在1方的<set標籤上,設置爲true的時候表明對方(多方)爲主控方,效率高
2七、Hibernate.cfg.xml是配置什麼的?實體和表的映射信息配置在哪一個配置文件中
配置hibernate的一些全局屬性,如數據庫鏈接、方言dialect、show_sql等
實體和表的映射信息存儲在各自的 xxxx.hbm.xml文件中
2八、Struts2中action請求處理方法通常返回的字符串,該字符串和那裏的配置對應。它默認的返回類型是什麼?有哪幾種返回方式
在struts.xml中的<result name=」xxx」 中進行配置
默認是轉發
Dispatcher
Redirect
redirectAction
2九、若是jsp頁面要導入標籤庫,則須要使用的指令是?其中uri、prefix表明什麼意思
<%@ taglib uri=」標籤的地址」 prefix=」前綴」 %>
C標籤:
<%@ taglib uri=」http://java.sun.com/jsp/jstl/core」 prefix=」c」 %>
Struts標籤:
<%@ taglib uri=」/struts-tags」 prefix=」s」 %>
30、Struts2的action是單例的仍是每次請求都會建立action對象
Action是每次請求都會建立action對象
Struts1的action是單例的
Servlet也是單例的
3一、Ajax 是一種什麼技術,其中xmlHttpRequest的狀態值有哪幾種,分別是何時變化。在服務器端返回xml數據時,如何獲取返回的信息xmlHttpRequest.responseXXXX什麼獲取
Ajax是一種頁面無刷新技術
xmlHttpRequest負責整個ajax中的通訊,發送請求接收數據
readyState有5個狀態值:
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六、Session和Cookie分別存儲在那裏?
Session是存儲在服務器端的信息
Cookie是存儲在客戶端
3七、OGNL是struts2訪問數據的語法,其中OGNL的根是什麼
ValueStack
OGNL訪問數據時都要加 #
3八、在action中session是從哪裏獲取出來的,request如何獲取
HttpServletRequest request =ServletActionContext.getRequest();
HttpSession session = request.getSession();//若是沒有session則建立一個
HttpSession session = request.getSession(false);//若是沒有session則返回null
Tomcat中session默認存活的時間:30分鐘
能夠在tomcat下conf中的配置文件中改爲存活時間
也能夠直接調用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中經過get和load均可以根據id查詢一個對象,區別是什麼?
get和load都會查詢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不能保證其中元素的順序,HashMap的key和value都能爲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
61、java的修飾符: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
63、XMLHttpRequest的readyState屬性值:
0未初始化,剛建立時
1準備發送
2send方法調用,已發送
3正在接收,未完畢
4已經響應完畢
Status的狀態信息爲200成功、404資源未找到、500服務器報錯