`

ssh常见面试题

阅读更多

1楼
其实spring,hibernate,struts面试的话 一般不会问什么太深的问题   一般只是看你用过没有   做过什么什么项目   有个面试官就问我 ssh集成要配置多少个xml文件 哇哈哈 很简单的就答出来了 不过有些同学也问得挺难的 下面是些常问的问题



1.MVC,分析一下struts是如何实现MVC的
m:JavaBean 或结合 EJB 组件或者pojo构成
c:Action 来实现
v:一组 JSP 文件及其标签构成。

2.struts中的几个关键对象的作用

Action:控制器类,

ActionForm:表单对象,

DynaValidatorForm:

动态form,ActonMapping:

配置文件中action节点的信息..

3.Hibernate有哪几种查询数据的方式
hql查询,sql查询,条件查询

4.load()和get()的区别
hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,load默认支持延迟加载,在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常ObjectNotFoundEcception;所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理(load时候之查询一级缓存,不存在则创建代理)。get()现在一级缓存找,没有就去二级缓存找,没有就去数据库找,没有就返回null ;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。

5.spring 的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
声明事务和编程事务
隔离级别:
- DEFAULT使用数据库默认的隔离级别
- READ_UNCOMMITTED会出现脏读,不可重复读和幻影读问题
- READ_COMMITTED会出现重复读和幻影读
- REPEATABLE_READ会出现幻影读
- SERIALIZABLE最安全,但是代价最大,性能影响极其严重
和传播行:
- REQUIRED存在事务就融入该事务,不存在就创建事务
- SUPPORTS存在事务就融入事务,不存在则不创建事务
- MANDATORY存在事务则融入该事务,不存在,抛异常
- REQUIRES_NEW总是创建新事务
- NOT_SUPPORTED存在事务则挂起,一直执行非事务操作
- NEVER总是执行非事务,如果当前存在事务则抛异常
- NESTED嵌入式事务
6.Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理。
getHiberanteTemplate里面提供了save,update,delete,find等方法。
简单说一个:如果配置了声明式事务,当执行getHibernateTemplate的各种方法的时候,事务会

自动被加载
如果没有配置事务,那么以上操作不会真正的被同步到数据库,除非配置了hibernate的

autocommit=true

7.spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
spring事务分两种形式,声明式事务和编程式事务,spring提供了一个事务的接口

PaltformTractionManager接口,针对不同的事务,spring进行了不同的实现,对hibernate事务

的实现HIbernateTractionManager,对JDBC的JdbcTractionManager,

DataSourceTractionManager 以及JdoTractionManager。接口platformTractionManager提供了三

个方法,获取事务,提交和回滚的方法。

8.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to- many、many-to-many、

8)jspForward1.jsp要把请求转发给jspForward2.jsp,应该在jspForward1.jsp中如何实现? (单选)
选项:
(A) <a href=“jspForward2.jsp”>jspForward2.jsp </a>
(B) <jsp:forward page=“jspForward2.jsp”>

(9) 当浏览器第二次访问以下JSP网页时的输出结果是什么?(单选)

<!% int a=0;      %>
<%
int b=0;
a++;
b++;
%>

a:<%= a %> <br>
b:<%= b %>

选项:
(A)   a=0   b=0
(B) a=1   b=1
(c) a=2   b=1

(10)下面哪个说法是正确的? (单选)
选项:
(A) 对于每个要求访问maillogin.jsp的HTTP请求,Servlet容器都会创建一个HttpSession对象
(B)每个 HttpSession对象都有惟一的ID。
(C)JavaWeb应用程序必须负责为HttpSession分配惟一的ID

(11) 如果不希望JSP网页支持Session,应该如何办? (单选)
选项:
(A) 调用HttpSession的invalidate()方法
(B) <%@ page session= “false\”>

(12) 在标签处理类中,如何访问session范围内的共享数据? (多选)
选项:
(A)在TagSupport类中定义了session 成员变量,直接调用它的getAttribute()方法即可。
(B)在标签处理类TagSupport类中定义了pageContext成员变量,先通过它的getSession()方法获得当前的

HttpSession对象,再调用HttpSession对象的 getAttribute()方法。
(C)pageContext.getAttribute(“attributename”,PageContext.SESSION_SCOPE)

(13)在下面的选项中,哪些是TagSupport类的doStartTag()方法的有效返回值? (多选)
选项:
(A) Tag.SKIP_BODY
(B) Tag.SKIY_PAGE
(C) Tag.EVAL_BODY_INCLUDE
(D) Tag.EVAL_PAGE

(14)以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?(单选)
request.setAttribute(\”count\”,new Integer(0));
Integer count = request.getAttribute(\”count\”);
选项:
A)不能编译通过   B)能编译通过,并正常运行
C) 编译通过,但运行时抛出ClassCastException

答案:
(1)C (2)D   (3)D   (4)A,B,D   (5)A   (6)C   (7)C   (8)B   (9)C    (10)B
(11)B   (12)B,C   (13)A,C   (14)A





1.struts
Action是不是线程安全的?如果不是,有什么方式可以保证Action的线程安全?如果是,说明原因

2.MVC,分析一下struts是如何实现MVC的

3.struts中的几个关键对象的作用(说说几个关键对象的作用)

4.spring
说说AOP和IOC的概念以及在spring中是如何应用的

5.Hibernate有哪几种查询数据的方式

6.load() 和get()的区别

回答:
1.Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

2.struts是用一组类,servlet 和jsp规范实现mvc的

3.ActionFrom ActionServlet Action struts-config.xml

4.spring的核心就是IOC,通过指定对象的创建办法,描述对象与服务之间的关系,而不生成对象

5.3种,hql 条件查询() 原生sql

6.load()方法认为该数据一定存在,可以放心的使用代理来延时加载 ,如果使用过程中发现了问题,就抛出异常;
get()方法一定要获取到真实的数据,否则返回null


4楼
hibernate
1.在数据库中条件查询速度很慢的时候,如何优化?
(1).建索引
(2).减少表之间的关联
(3).优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
(4).简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据

2.在hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之对应,如何解决这个问题?
解决方案一,按照Object[]数据取出数据,然后自己组bean
解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成这个bean了。具体怎么用请看相关文档,我说的不是很清楚。

hibernate 的核心类是什么,它们的相互关系是什么?重要的方法是什么?

Configuration 接口:配置Hibernate,根据其启动hibernate,创建
SessionFactory 对象;
SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建
session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应
用的多个线程共享,是重量级、二级缓存;
Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,
避免多个线程共享同一个session,是轻量级、一级缓存;
Transaction 接口:管理事务;
Query 和Criteria 接口:执行数据库的查询。

Session如下方法
    Save/ load/Update/Delete/get/saveOrUpdate/deleteAll
          Query q=CreateQuery(“from Customer where customerName=:customerName”)
    beginTransaction
    close
    Transaction
    Commit()



5楼
一组Struts的选择测试题附答案
(1)在Struts应用的视图中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E) 代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签

(2)在Struts应用的控制器中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签

(3) 在Struts应用的模型中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签

(4)以下代码定义了一个变量,如何输出这个变量的值?(多选)
<bean:define id=\”stringBean\” value=“helloWorld“/>
选项:
(A)<bean:write name=“stringBean\”/>
(B) <bean:write name=“helloWorld\”/>
(C)<%= stringBean%>
(D)
<% String myBean=
(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);
%>
<%=myBean%>

(5)把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?(多选)
A)提高可维护性
B)提高可重用性
C) 支持国际化
D)提高运行速度

(6)以下哪些说法是正确的?(单选)
选项:
(A)每个HTTP请求对应一个单独的ActionServlet实例
(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的 HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例
(D)每个子应用对应一个单独的 web.xml文件

(7)下面哪些任务是RequestProcessor完成的?(多选)
选项:
(A)把 Struts配置文件信息加载到内存中
(B)把资源文件信息读入到内存中
(C)如果需要的话,创建ActionForm实例,组装数据,并进行表单验证
(D)找到匹配的Action实例,调用其execute()方法
(E)把请求转发到Action的 execute()方法返回的ActionForward代表的组件。

(8)对于以下代码,HelloAction希望把请求转发给 hello.jsp,在HelloAction的execute()方法中如何实现?(多选)
<action     path       = \”/HelloWorld\”
type       = \”hello.HelloAction\”
name      = \”HelloForm\”
scope      = \”request\”
validate    = \”true\”
input      = \”/hello.jsp\”
>
<forward name=\”SayHello\” path=\”/hello.jsp\” />
</action>

选项:
(A) return (new ActionForward(mapping.getInput()));
(B) return (mapping.findForward(\”SayHello\”));
(C) return (mapping.findForward(“hello.jsp\”));

(9)对于以下这段配置ActionServlet的代码,哪些说法是正确的?(多选)
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/myconfig.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!– Standard Action Servlet Mapping –>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

选项:
(A)Servlet容器在启动Struts应用时,会初始化这个ActionServlet。
(B) 对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理。
(C) 这段代码位于struts-config.xml中。
(D)这段代码位于web.xml中。

(10) 问答题:MVC是什么含义?

答案:
(1)A,G (2)B,C,D   (3)E,F   (4)A,D   (5)A,B,C   (6)C   (7)C,D,E   (8)A,B   (9)A,B,D
(10)M表示Model(模型),V表示 View(视图),C表示Controller(控制器)
分享到:
评论

相关推荐

    java之SSH常见面试题

    【SSH常见面试题详解】 SSH 是 Java Web 开发中三个著名框架 Struts、Hibernate 和 Spring 的简称。这些框架分别负责模型-视图-控制器(MVC)架构的不同部分,为开发人员提供了一种高效且可扩展的方式来构建企业级...

    SSH常见面试题文库.pdf

    本文档总结了 SSH(Spring、Struts、Hibernate)相关的面试题,涵盖了 MVC 模式、Struts、Hibernate、Spring 等方面的知识点。 1. MVC 模式 MVC 模式是软件架构的模式,用于分离应用程序的关注点。MVC 模式将应用...

    SSH2面试试题

    SSH2面试试题主要涵盖Struts 2、Hibernate和Spring这三个框架的相关知识,这些技术是Java企业级应用开发中常用的三大框架。以下是对这些面试题目的详细解析: 1. Struts 2框架来源于WebWork和XWork。WebWork是基于...

    ssh100道面试题

    通过阅读和练习《三大框架SSH面试题.docx》中的题目,你可以更好地检验自己的知识水平,找出不足并加以补充,从而提高获得高薪工作的机会。在学习过程中,不断实践和反思,将理论知识转化为实际能力,才能在面试中...

    SSH经典面试题汇总

    根据给定文件的信息,我们可以总结出以下关于Struts、Hibernate、Spring的经典面试题知识点: ### 一、Java集合框架 Java集合框架主要包括`Collection`和`Map`两大类。 - **Collection**: 包括`List`和`Set`两种...

    JAVA-SSH面试题.doc

    Java-SSH面试题主要涉及到Java企业级开发中的三个重要框架:Struts、Hibernate和Spring,它们合称为SSH。这些框架的使用和集成是Java web开发中的常见知识点。 **MVC设计模式** MVC(Model-View-Controller)是一种...

    java程序员ssh面试常见题

    ### Java程序员SSH面试常见题详解 #### 1. Action是什么?如何证明Action是线程安全的? - **知识点概述**:在Struts框架中,Action是处理用户请求的核心组件之一,它负责执行业务逻辑并返回相应的结果。由于...

    JAVA_ssh面试题及答案

    【JAVA SSH面试题及答案】 SSH(Struts + Spring + Hibernate)是Java Web开发中常见的三大框架,它们各自承担着不同的职责,共同构建了一个高效、灵活的企业级应用程序架构。 **Hibernate工作原理及为什么使用** ...

    SSH面试题 java SSH面试题

    SSH面试题通常指的是Java开发中三个重要框架的面试问题,这三个框架是Struts、Spring和Hibernate。在这篇文章中,我们将详细探讨关于Hibernate的部分,因为它是SSH面试中的常见考点。 **Hibernate工作原理及为什么...

    java面试题,J2EE面试题 笔试题

    6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理...

    SSH框架部分常见面试题.pdf

    SSH框架部分常见面试题.pdf 本文将对 SSH 框架部分常见面试题进行详细的解释和分析,以帮助读者更好地理解 SSH 框架的各个方面。 MVC 框架 MVC 是一种设计模式,分为 Model、View、Controller 三个部分。Model ...

    SSH框架面试题目及答案

    SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中常见的三大开源框架的组合。这三大框架分别负责MVC模式中的Model、View和Controller部分。以下将详细阐述SSH框架的相关知识点: **一、Hibernate** ...

    ssh框架面试题

    SSH框架,全称为Struts+Spring+...以上内容详细介绍了SSH框架面试题中涉及的关键知识点,涵盖了Spring、Hibernate和Struts的相关概念和机制。这些知识点对于理解和掌握SSH框架,以及进行Java Web开发至关重要。

    java常见面试题.doc

    java常见面试题,里面内容涵盖了最近几年的面试题,很详细。

    ssh面试题文档

    主要是总结了一些常见面试题的总结,以及ssh 核心模块的配置,和主要流程的模块,希望对你有所帮助。

    SSH框架面试题.pdf

    ### SSH框架面试题详解 #### Struts框架 1. **解释Struts框架及其工作原理** Struts是一个基于MVC模式的开源Web框架,用于构建动态网页应用。它通过将模型(Model)、视图(View)和控制器(Controller)分离来...

    SSH笔试面试题, 面试官 最有可能问的哦!!!!

    SSH是三个流行开源框架的缩写,分别代表Spring、Hibernate和Struts,它们在Java Web开发中被广泛使用...同时,随着技术的发展,现代框架如Spring Boot和Spring MVC已经成为更常见的选择,了解其与SSH的异同也是必要的。

    JAVA-SSH相关面试题

    Java SSH(Spring、Struts和Hibernate)面试题涵盖了这些框架的核心概念、差异和在实际项目中的应用。让我们逐一深入探讨。 1. MVC设计模式: MVC全称为Model-View-Controller,是一种常见的软件设计模式,常用于...

    ssh框架面试题.doc

    SSH框架,全称为Struts、Hibernate、Spring,是Java Web开发中常见的三大开源框架的组合。这三者分别负责MVC(Model-View-Controller)架构中的不同层面:Struts处理控制逻辑,Hibernate负责持久化操作,Spring提供...

    2013ssh面试题

    【SSH面试题详解】 在Java Web开发领域,SSH(Struts、Spring、Hibernate)是一个常见的经典框架组合,常用于构建企业级应用。以下是对2013年SSH面试题的详细解析: 1. **Struts工作机制与优势** Struts是一个...

Global site tag (gtag.js) - Google Analytics