(三大框架SSH)面试题

合集下载

云计算网络原理面试题目(3篇)

云计算网络原理面试题目(3篇)

第1篇一、选择题1. 云计算网络的主要特点不包括以下哪项?A. 弹性B. 可扩展性C. 分布式D. 高速答案:D2. 云计算网络架构中,以下哪个组件负责资源分配和管理?A. 虚拟化平台B. 网络设备C. 云平台D. 运维团队答案:A3. 云计算网络中,以下哪个协议用于数据传输的加密?A. SSL/TLSB. HTTPC. FTPD. SMTP答案:A4. 云计算网络中,以下哪个技术可以实现负载均衡?A. 虚拟IP地址B. 网络地址转换C. 多播D. 广播答案:A5. 云计算网络中,以下哪个技术可以实现虚拟私有网络(VPN)?A. IPsecB. VPN客户端C. SSL VPND. PPTP答案:A6. 云计算网络中,以下哪个技术可以实现数据中心的网络虚拟化?A. 虚拟交换机B. 虚拟路由器C. 虚拟防火墙D. 虚拟负载均衡器答案:A7. 云计算网络中,以下哪个技术可以实现数据中心网络的自动化管理?A. 软件定义网络(SDN)B. 硬件定义网络C. 网络功能虚拟化(NFV)D. 云网络服务答案:A8. 云计算网络中,以下哪个技术可以实现跨数据中心的网络互联?A. VPNB. 虚拟专线C. 私有云互联D. 公共云互联答案:B9. 云计算网络中,以下哪个技术可以实现数据中心网络的性能优化?A. 数据包过滤B. 网络流量监控C. 负载均衡D. 数据压缩答案:C10. 云计算网络中,以下哪个技术可以实现数据中心网络的弹性扩展?A. 网络地址转换B. 虚拟化技术C. 网络冗余设计D. 弹性负载均衡答案:D二、判断题1. 云计算网络与传统网络相比,安全性更高。

(√)2. 云计算网络中,虚拟化技术可以降低网络设备的成本。

(√)3. 云计算网络中,负载均衡技术可以提高网络的可靠性。

(√)4. 云计算网络中,SDN技术可以实现网络的自动化管理。

(√)5. 云计算网络中,VPN技术可以实现跨地域的数据传输。

(√)三、简答题1. 简述云计算网络的基本架构。

ssh试题

ssh试题

测试卷(java)一、选择题(60 分)1)在S t r ut s实现的MVC框架中,(a)类是包含了excute 方法的控制器类,负责调用模型的方法,控制应用程序的流程。

a)Actionb)EJBc)ActionServletd)JSP2)在基于Struts 框架的Web 应用中,下面关于Action类的说法正确的是(c)。

a)Action 类属于模型组件b)Action 类主要用来完成实际的业务逻辑c)Action 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程d)在Web 应用启动时会自动加载所有的Action实例3)在基于Struts 框架的Web 应用中,下面关于ActionForm Bean的说法正确的是(b)。

a)ActionForm Bean 用来完成一些实际的业务逻辑b)Struts 框架利用ActionForm Bean 来进行视图和控制器之间表单数据的传递c)ActionForm负责调用模型的方法,更新模型的状态d)ActionForm Bean 包含一些特殊的方法,reset()用于验证表单数据validate()将其属性重新设置为默认值4)分析Action Bean 的execute 方法:public ActionForward execute(ActionMappingmapping, ActionForm form,HttpServletRequest request,HttpServletResponse response) {ActionErrors errors=new ActionErrors();if(!udao.check(loginform)){ errors.add("login", newActionMessage("error.login"));returnmapping.findForward("failure");}}完成以上的功能,应在下划线上填入(c)。

ssh 面试题

ssh 面试题

ssh 面试题SSH面试题1. 什么是SSH?SSH(Secure Shell)是一种安全的网络协议,用于通过不安全的网络建立安全的远程连接。

它提供了加密的通信通道,以保护数据在客户端和服务器之间的传输安全。

2. SSH有哪些组成部分?SSH由三个主要组成部分构成:SSH客户端、SSH服务器和SSH协议。

2.1 SSH客户端:用于建立SSH连接的软件/工具。

它通常是用户在本地计算机上运行的程序,用于连接到远程SSH服务器。

2.2 SSH服务器:接受来自SSH客户端的连接请求,并提供远程访问和管理功能。

SSH服务器通常运行在远程计算机上。

2.3 SSH协议:规定了SSH客户端和服务器之间通信的规范。

它定义了加密算法、认证过程和数据传输方式等。

3. SSH的工作原理是什么?SSH使用公开密钥加密技术来确保通信信道的安全。

其工作原理如下:3.1 客户端发起连接请求:SSH客户端向SSH服务器发送连接请求。

3.2 服务器认证:服务器收到连接请求后,会发送一个公钥给客户端进行服务器身份认证。

3.3 用户认证:客户端使用本地的私钥对服务器发送的公钥进行加密,然后发送给服务器进行用户身份认证。

3.4 建立加密通道:身份认证成功后,客户端和服务器使用协商好的加密算法建立加密通道。

这样,所有通过该通道传输的数据都将被加密。

3.5 数据传输:客户端和服务器之间可以通过已建立的加密通道进行数据传输。

传输的数据将在客户端和服务器之间进行加密和解密。

4. SSH的优点有哪些?4.1 安全性:SSH提供了加密通信通道,可以保护数据在传输过程中的安全性,防止被窃听或篡改。

4.2 认证:SSH采用公钥加密认证方式,仅信任具有授权的用户能够访问服务器。

4.3 远程访问:通过SSH,用户可以远程访问服务器,执行命令、上传文件等操作,方便进行远程管理和维护。

4.4 端口转发:SSH支持端口转发功能,可以将本地端口和远程端口进行映射,实现本地和远程网络资源的访问。

SSH复习题

SSH复习题

SSH复习题选择题1、下面哪一个不是框架(D)。

A.SpringB.StrutC.HibernateD.JSP2、下面是框架的是(D)。

A.定义实体类B.数据的增删改查操作C.业务逻辑的描述D.页面展示和控制转发4、在三层结构中,Hibernate承担的任务是(A)。

A.数据的持久化操作B.实体类的定义C.业务逻辑的描述D.页面的显示与控制转发5、下面信息不在Strut2配置文件中配置的是(B)。

A.FormBean配置信息B.Spring声明式事务C.Action转发路径D.Strut2引用的资源文件6、在trut实现的框架中,(B)类包含了e某cute方法的控制器类,负责调用模型的方法,控制应用程序的流程。

A.Aja某B.ActionC.FormD.Method7、下面关于Hibernate的说法,错误的是(C)。

A.Hibernate是一个“对象-关系映射”的实现B.Hibernate是一种数据持久化技术C.Hibernate是JDBC的替代技术D.使用Hibernate可以简化持久化层的编码8、下列说法中错误的是(C)。

A.使用通配符可以优化action的配置B.约定优于配置。

约定的如果好,可以使action配置非常的简洁C.如果Action中存在多个方法时,只能使用method属性指定调用方法D.在trut2中超级链接通常都采用绝对路径,而不使用相对路径,这样便于链接的实现9、下列说法中错误的是(D)。

A.从值栈中取值用value=“参数名”,参数名是action中的参数B.从actionconte某t中取值用#parameter.参数名,参数名是trut中的参数C.在客户端跳转时一次requet只有一个valueStackD.在客户端跳转时一次requet可以有多个valueStack10、和SQL相比,HQL有哪些优点(C)。

A.HQL能够简单的操作表B.HQL是简单的ql语言组成C.HQL是面向对象的检索语言D.HQL对应的是表和表的字段11、一个某ML文件能被浏览器解析的最小要求是(A)。

SSH框架面试题(自己+别人的试题)

SSH框架面试题(自己+别人的试题)

(问答题+选择题(在55页))Java工程师(程序员)面题Struts,Spring,Hibernate三大框架1.Hibernate工作原理及为什么要用?原理:1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作6.提交事务7.关闭Session 8.关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。

他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

4. hibernate的性能非常好,因为它是个轻量级框架。

映射的灵活性很出色。

它支持各种关系数据库,从一对一到多对多的各种复杂关系。

2.Hibernate是如何延迟加载?1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection)2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many4.Struts1流程:1、客户端浏览器发出HTTP请求。

2、根据web.xml配置,该请求被ActionServlet接收。

3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。

开发面试题目(3篇)

开发面试题目(3篇)

第1篇一、基本概念与原理1. 请简述什么是面向对象编程(OOP)?列举OOP的三大基本特征。

2. 解释什么是封装、继承和多态,并举例说明。

3. 简述什么是设计模式,列举三种常用的设计模式及其适用场景。

4. 请解释什么是单例模式,并实现一个单例模式的示例。

5. 什么是原型模式?请简述其原理和实现方式。

6. 请解释什么是工厂模式,并实现一个简单的工厂模式示例。

7. 简述什么是MVC模式,并解释其在Web开发中的应用。

8. 什么是依赖注入(DI)?请解释其原理和实现方式。

9. 请解释什么是反射,并举例说明其在Java中的应用。

10. 什么是异常处理?请解释try-catch-finally语句的用法。

二、编程能力1. 编写一个函数,实现两个数的加法,不使用+运算符。

2. 实现一个函数,用于判断一个字符串是否为回文。

3. 编写一个函数,实现一个链表的插入操作。

4. 实现一个函数,用于查找链表中的倒数第k个节点。

5. 编写一个函数,实现一个队列的入队和出队操作。

6. 实现一个函数,用于判断一个二叉树是否为平衡二叉树。

7. 编写一个函数,实现一个有序数组到有序链表的转换。

8. 实现一个函数,用于计算一个整数的阶乘。

9. 编写一个函数,实现一个栈的入栈和出栈操作。

10. 实现一个函数,用于判断一个字符串是否为有效的括号序列。

三、数据结构与算法1. 请解释什么是时间复杂度和空间复杂度,并举例说明。

2. 请解释什么是排序算法,列举常见的排序算法及其时间复杂度。

3. 实现一个快速排序算法。

4. 实现一个归并排序算法。

5. 实现一个插入排序算法。

6. 实现一个堆排序算法。

7. 请解释什么是查找算法,列举常见的查找算法及其时间复杂度。

8. 实现一个二分查找算法。

9. 实现一个哈希表,并实现插入和查找操作。

10. 实现一个图的数据结构,并实现图的深度优先搜索(DFS)和广度优先搜索(BFS)算法。

四、数据库1. 请解释什么是数据库的三范式(1NF、2NF、3NF),并举例说明。

ssh三大框架整合

ssh三大框架整合

ssh三⼤框架整合Hibernate框架 1 hibernate核⼼配置⽂件 (0)orm思想 - 对象关系映射 (1)数据库信息 (2)hibernate信息 (3)映射配置 (4)hibernate核⼼配置⽂件 - 如果单纯使⽤hibernate框架,核⼼配置⽂件名称 hibernate.cfg.xml和位置 src下⾯固定的 - hibernate和spring整合时候,hibernate核⼼配置⽂件名称和位置没有固定要求的 2 hibernate映射配置⽂件 (1)实体类和数据库表映射关系—使⽤orm思想 3 hibernate操作的步骤 (1)在spring框架对hibernate框架进⾏封装,使⽤hibernateTemplateStruts2框架 1 Action操作 (1)action创建三种⽅式 - 继承类 ActionSupport (2)配置action访问路径 - 创建struts.xml配置⽂件,这个⽂件名称和位置固定 src下⾯的 (3)配置访问action的多个⽅法 - 使⽤通配符⽅式配置 (4)在action获取表单提交数据 - 获取request对象 ** 使⽤ServletActionContext类获取 - 属性封装 - 模型驱动(重点) - 表达式封装 (5)在action操作域对象 - 使⽤ServletActionContext获取域对象 (6)配置struts2的过滤器 2 值栈 (1)向值栈放数据 - set⽅法 - push⽅法 - 定义变量,⽣成get⽅法 (2)从值栈获取数据 - 在jsp中使⽤struts2标签+ognl获取 - <s:property> - <s:iterator> 3 拦截器 (1)aop和责任链模式 (2)⾃定义拦截器 - 继承MethodFilterInterceptor - 重写类⾥⾯的⽅法 - 配置拦截器和action关联Spring框架 1 spring核⼼配置⽂件 (1)名称和位置没有固定要求 (2)在spring核⼼配置⽂件中引⼊schema约束 2 创建对象 (1)xml配置⽅式:<bean id=”” class=”” scope=””/> (2)注解⽅式:四个注解 3 注⼊属性(对象类型属性) (1)xml配置⽅式: (2)注解⽅式:两个注解 - autowired - resource 3 使⽤ServletContext对象和监听器实现 (1)在服务器启动时候,加载spring配置⽂件,创建对象 (2)配置spring的监听器 (3)指定spring配置⽂件位置 4 jdbcTemplate 5 spring事务配置 (1)xml⽅式 (2)注解⽅式SSH框架整合思想 1 三⼤框架应⽤在javaee三层结构 2 struts2框架和spring整合 (1)struts2的action在spring配置 3 spring框架和hibernate框架整合 (1)hibernate的sessionFactory交给spring配置 (2)把hibernate数据库配置交给spring配置整合struts2和spring框架 1 把struts2的action交给spring管理 2 实现过程 第⼀步导⼊struts2的jar包 (1)导⼊⽤于整合的jar包 (log4j.properties为log4j的⽇志输出格式,放⼊src下⾯) (2)Spring为了整合Struts还需要额外再导⼊⼀个jar包:(该包在struts的lib⽬录下) (3)导⼊Struts2的jar包(struts2版本为2.3.24): (4)创建Actionpublic class UserAction extends ActionSupport {public String execute() throws Exception {System.out.println("Success....");return NONE;}} (5)创建Strut2的核⼼配置⽂件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><package name="demo" extends="struts-default" namespace="/"><action name="userAction" class="erAction"></action></package></struts> (6)在web.xml中配置struts2的过滤器<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping> (7)导⼊Spring整合Web项⽬的jar包,也就是监控项⽬启动的监听器所在的jar包 (8)创建Spring的核⼼配置⽂件并在其中引⼊约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd"></beans> (9)把action交给Spring进⾏配置1 <!-- 配置action的对象 -->2 <!-- 注意action是多实例的,因此我们这⾥把scope配置为prototype的 -->3 <bean id="userAction" class="erAction" scope="prototype"></bean> ①在spring配置action对象,在struts.xml中也配置action对象 ②解决: 只需要在spring⾥⾯配置action对象,不要在struts.xml中配置<struts><package name="demo1" extends="struts-default" namespace="/"><!-- class属性⾥⾯不写action全路径了,因为写,action对象创建两次写spring配置的action的bean的id值--><action name="userAction" class="userAction"></action></package></struts> 可以这样写的原因是我们导⼊了⼀个Spring整合Struts2的jar包:struts2-spring-plugin-2.3.24.jar (10)web.xml中Spring监听器的配置<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:bean.xml</param-value></context-param> (11)测试准备 ①所需的为Struts2的核⼼配置⽂件:struts.xml ②Spring的配置⽂件:bean.xml ③项⽬的配置⽂件:web.xml ④Struts2的UserAction类 ⑤在UserAction中对UserService的调⽤ ⑥UserService中对UserDao的调⽤ ⑦UserDao类的编写struts.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><package name="demo1" extends="struts-default" namespace="/"><!-- class属性⾥⾯不写action全路径了,因为写,action对象创建两次写spring配置的action的bean的id值--><action name="userAction" class="userAction"></action></package></struts>bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd"><bean id="userAction" class="erAction"><property name="userService" ref="userService"></property></bean><bean id="userService" class="erService"><property name="userDao" ref="userDaoImp"></property></bean><bean id="userDaoImp" class="erDaoImp"></bean></beans>web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" <display-name>spring-day4-ssh</display-name><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:bean.xml</param-value></context-param><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>UserAction.javaimport com.opensymphony.xwork2.ActionSupport;import erService;public class UserAction extends ActionSupport {private UserService userService;public void setUserService(UserService userService) {erService = userService;}public String execute() throws Exception {userService.add();return NONE;}}UserService.javapublic class UserService {private UserDao userDao;public void setUserDao(UserDao userDao) {erDao = userDao;}public void add() {userDao.add();}}UserDao.java 其实现类public class UserDaoImp implements UserDao {public void add() {System.out.println("UserDaoImp....");}} (12)测试结果: 可以在后台观察到如下测试结果:image ⾄此,Spring和Struts2的整合已经完毕,然后是Spring对Hibernate的整合了。

三大框架ssh模式的详解

三大框架ssh模式的详解

三大框架ssh模式的详解SSH是Secure Shell的缩写,是一种用于安全远程登录的协议。

它可以通过加密隧道来传输数据,并提供了身份验证和数据完整性保护。

SSH模式可以分为以下三大框架:SSH-1、SSH-2和OpenSSH。

1.SSH-1:SSH-1是最早的SSH协议版本,由Tatu Ylönen在1995年开发。

SSH-1使用了基于RSA算法的身份验证机制,并使用了Diffie-Hellman 算法进行密钥交换。

然而,SSH-1存在许多安全漏洞,包括易受到中间人攻击的问题。

因此,SSH-1在1996年被SSH-2所取代,成为历史遗留的协议版本。

2.SSH-2:SSH-2是目前最广泛使用的SSH协议版本。

与SSH-1相比,SSH-2具有更好的安全性和可靠性。

SSH-2支持多种身份验证机制,包括密码、公钥和基于证书的身份验证。

它还增加了Diffie-Hellman组合机制和更强大的加密算法,如AES和3DES。

SSH-2还提供了压缩数据和端口转发等功能。

由于SSH-2的安全性和功能,它成为了企业网络中常用的远程登录协议。

3. OpenSSH:OpenSSH是SSH协议的开源实现,也是最常用的实现之一、OpenSSH 包括了SSH客户端和服务器端。

它被广泛使用于Linux和Unix系统中,提供了安全的远程登录和文件传输功能。

OpenSSH拥有良好的安全性和稳定性,并提供了许多高级功能,如X11转发、SFTP文件传输和动态端口转发。

OpenSSH还支持在非标准端口上运行,从而增加了安全性。

总结来说,SSH模式的三大框架包括SSH-1、SSH-2和OpenSSH。

SSH-1是最早的SSH协议版本,但存在安全漏洞,已被SSH-2所取代。

SSH-2具有更好的安全性和可靠性,支持多种身份验证机制和强大的加密算法。

而OpenSSH则是SSH协议的开源实现,被广泛应用于Linux和Unix系统中,提供了安全的远程登录和文件传输功能,并支持多种高级功能。

100道技术面试题

100道技术面试题

一.基础题1.静态变量和实例变量的区别?1)语法定义上:静态变量前要加static关键字,而实例变量前则不加。

2)程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

2.面向对象的基本特征有哪些?并作简要说明?1)封装:隐藏对象的属性和实现细节,仅对外公开接口。

2)继承:子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。

3)多态:类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。

使具有不同的内部结构的对象可以共享相同的外部接口3.简单描述下三大框架ssh,每个框架起到什么样的作用?表现层:由struts来实现,负责控制业务逻辑层与表现层的交互:从表现层调用业务逻辑层,并把业务逻辑层的返回结果以视图的形式组织。

业务层:由spring来实现,实现运用的业务逻辑。

数据层:由Hibernate来实现,和数据库进行交互,用持久化对象来完成对数据库进行操作。

4.Spring MVC请求处理流程5.Spring MVC常用的注解?@Controller、@RequestMapping 、@RequestParam 、@DateTimeFormat、@ResponseBody等6.Spring MVC参数传递第一种方式:ModelAndView第二种方式:Model第三种方式:MapMap.put(key,value);7.struts2的工作流程?struts2怎么实现MVC?struts2的工作流程?1)客户端发送http请求2)这个请求经过struts的一系列过滤器(Filter)3) 如果该请求要调用某个action,则由ActionProxy根据配置文件找到相应的action类,然后根据命名空间来调用action4)action执行完毕后,会根据struts.xml找到相应的返回结果,一般是某个jsp页面。

SSH_三大框架介绍

SSH_三大框架介绍

SSH_三大框架介绍SSH是指Struts、Spring和Hibernate三个开源框架的整合,其中每个框架都有自己的设计思想和特点,通过整合,可以充分发挥它们的优势,提高开发效率和系统性能。

下面将分别介绍这三个框架。

1. Struts:Struts是一个基于MVC设计模式的Web应用程序框架,它将应用程序分为三个层:模型(Model)、视图(View)和控制器(Controller)。

模型负责处理业务逻辑,视图负责展示数据,控制器负责接收用户输入和导航请求。

Struts通过配置文件定义请求的映射和处理逻辑,通过统一的控制器Servlet接收请求,根据配置文件将请求转发给相应的Action。

在Action中进行请求处理和业务逻辑的实现。

2. Spring:Spring是一个轻量级的IoC(Inverse of Control)容器和应用程序框架,它主要解决企业应用中的复杂性问题。

Spring的核心思想是面向接口编程和依赖注入。

通过Spring的IoC容器管理对象的生命周期和依赖关系,将对象的创建和销毁过程交给容器处理。

通过依赖注入,可以将对象之间的依赖关系解耦,提高代码的可维护性和可测试性。

Spring还提供了丰富的功能模块,如AOP(Aspect-Oriented Programming)框架、事务管理、远程调用等,可以在应用程序中灵活地配置和使用。

Spring的优点是具有良好的灵活性和扩展性,可以与其他框架进行无缝集成,支持多种数据库和应用服务器。

同时,Spring还提供了很强的层次化管理和面向切面编程的能力,使得开发人员可以更加精细地控制应用程序的流程和行为。

3. Hibernate:Hibernate是一个开源的对象关系映射框架,用于将Java对象映射到关系数据库中的表结构上。

Hibernate通过配置文件和注解,提供了一种方便的方式来实现数据的持久化和检索。

Hibernate根据对象的映射关系,自动生成相应的SQL语句,实现了对象与数据库之间的映射和转换。

ssh框架期末考试题及答案

ssh框架期末考试题及答案

ssh框架期末考试题及答案一、选择题(每题2分,共20分)1. SSH框架中,S代表的是:A. SpringB. StrutsC. HibernateD. SpringMVC答案:A2. 在Struts2框架中,OGNL表达式中获取参数值的正确方式是:A. ${param.paramName}B. ${paramName}C. ${request.paramName}D. ${session.paramName}答案:A3. Hibernate中,以下哪个接口用于获取当前会话的持久化对象?A. SessionB. TransactionC. QueryD. Criteria答案:A4. Spring框架中,以下哪个注解用于声明一个Bean?A. @AutowiredB. @ServiceC. @ComponentD. @Repository答案:C5. 在Spring MVC中,以下哪个注解用于映射请求到对应的处理器方法?A. @ControllerB. @RequestMappingC. @ResponseBodyD. @PathVariable答案:B6. Struts2中,以下哪个标签用于遍历集合?A. <s:iterator>B. <s:property>C. <s:if>D. <s:else>答案:A7. Hibernate中,以下哪个是事务管理的接口?A. SessionB. TransactionC. QueryD. Criteria答案:B8. Spring框架中,以下哪个注解用于自动注入集合类型的Bean?A. @AutowiredB. @QualifierC. @ResourceD. @Inject答案:A9. 在Struts2框架中,以下哪个拦截器用于处理表单验证?A. TimerInterceptorB. PrepareInterceptorC. ValidationInterceptorD. WorkflowInterceptor答案:C10. Spring MVC中,以下哪个注解用于将请求参数绑定到控制器方法的参数上?A. @RequestParamB. @PathVariableC. @RequestBodyD. @RequestHeader答案:A二、简答题(每题5分,共20分)1. 简述SSH框架的组成及其各自的作用。

SSH选择题

SSH选择题

1。

下面(D)是框架。

A.JSP B。

Struts标签库 C。

Criteria查询 D.SSH2.MVC设计模式的目的是(C).A.使程序结构更清晰B.使程序更好维护C.保证视图和模型的隔离 D在逻辑上将视图、模型和控制器分开3。

下面信息不在Struts配置文件中配置的是(B).A.Form Bean配置信息 B。

Spring声明式事务C.Action转发路径D.Struts引用的资源文件4。

在Struts中,DispatchAction和普通Action的配置不同的是(B)。

A。

需要多配置一个可选的parameter属性B。

需要多配置一个必须的parameter属性C。

需要多配置一个可选的method属性D。

需要多配置一个必须的method属性5.在Struts中,关于DispatchAction的说法中,错误的是(B)。

A.访问DispatchAction必须提供parameter参数B.DispatchAction中必须实现execute方法C.DispatchAction可以与Spring进行集成D.可通过传入参数的值指定访问DispatchAction中的方法的名称6。

下面关于Struts报错机制说法正确的是(AC)。

A.强制使用国际化B。

错误信息保存在session中C.使用〈html:errors>标签显示错误信息D.也可以使用〈html:messages〉显示错误信息7.某Action Bean中有如下代码:errors.add(”order_count”,new ActionMessage(”error。

biz_ruler。

no_storage"));在页面上显示这条错误信息的代码是(D)。

A。

〈html:error name=”order_count” /〉B。

〈html:error property=”order_count" />C.<html:errors name=”order_count" /〉D。

整合SSH三大框架介绍

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的工程,选最新版本的java ee。

1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib目录下。

2.将WEB应用部署到tomcat效劳器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-\conf,翻开其中的server.xml文件,在文件末尾</Host>上面参加例如<Context path="/ssh2" docBase="F:\javaWeb\ssh2\WebRoot" reloadable="true" />这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web工程的WebRoot所在的目录,最后一个readloadable最好选true。

3.在WebRoot->WEB-INF->web.xml中参加struts2的过滤器将部署好的应用纳入到struts2的管辖范围类,具体代码如下<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>rc目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。

ssh复习题

ssh复习题

ssh复习题SSH复习题SSH(Secure Shell)是一种用于在不安全网络上安全登录和传输数据的协议。

它提供了加密的通信通道,确保数据的机密性和完整性。

在计算机网络和信息安全领域,SSH是一个非常重要的概念。

现在,让我们来复习一些与SSH相关的问题。

1. 什么是SSH?为什么使用SSH?SSH是一种网络协议,用于在不安全的网络上安全地进行远程登录和传输数据。

它通过使用加密技术,确保数据的机密性和完整性。

SSH提供了比传统的Telnet和FTP更高的安全性,因为它使用了公钥加密和对称加密算法。

使用SSH的好处包括:- 安全性:SSH提供了加密的通信通道,防止敏感数据被窃听或篡改。

- 认证:SSH使用公钥加密技术进行身份验证,确保只有授权用户能够访问系统。

- 远程访问:使用SSH,用户可以通过远程终端访问远程服务器,而无需物理接触服务器。

- 文件传输:SSH还支持安全的文件传输,用户可以通过SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)传输文件。

2. SSH的工作原理是什么?SSH的工作原理涉及三个主要组件:客户端、服务器和密钥对。

当客户端连接到服务器时,服务器会向客户端发送一个公钥。

客户端使用服务器的公钥对数据进行加密,并将其发送回服务器。

服务器使用私钥解密数据,并对其进行验证。

如果验证成功,服务器将允许客户端访问。

在这个过程中,密钥对起着重要的作用。

密钥对包括公钥和私钥。

公钥由服务器发送给客户端,私钥由客户端保留。

公钥用于加密数据,私钥用于解密数据。

这种非对称加密技术确保了数据的安全性。

3. SSH密钥对的生成和使用方法是什么?生成SSH密钥对的方法因操作系统而异。

在Linux和Mac上,可以使用ssh-keygen命令生成密钥对。

在Windows上,可以使用PuTTYgen等工具生成密钥对。

生成密钥对后,可以将公钥复制到服务器上的~/.ssh/authorized_keys文件中。

三大框架面试题及答案

三大框架面试题及答案

三大框架面试题及答案在软件开发领域,三大框架通常指的是三个流行的前端开发框架:React、Angular 和 Vue.js。

以下是一些可能在面试中出现的关于这些框架的问题及答案:1. 请解释 React 中的生命周期方法是什么?答案:React 的生命周期方法是指在组件的生命周期中,React 会在特定的时刻调用的方法。

这些方法允许开发者在组件创建、存在、更新或销毁时执行特定的操作。

React 16.3 版本之后,生命周期有了新版本,包括:- `constructor()`- `render()`- `componentDidMount()`- `shouldComponentUpdate()`- `componentDidUpdate()`- `componentWillUnmount()`在 React 17 中,引入了新的生命周期方法`getDerivedStateFromProps` 和 `getSnapshotBeforeUpdate` 来替代旧的生命周期方法。

2. Angular 中的服务是什么,它们是如何工作的?答案:在 Angular 中,服务是一种单例对象,用于在应用程序的多个组件之间共享数据或逻辑。

服务可以通过依赖注入系统在组件或其他服务中使用。

服务通常用于以下目的:- 分离应用程序逻辑和组件(关注点分离)- 共享数据或功能,如用户身份验证、配置参数或日志记录- 执行不需要用户界面的操作,如与后端 API 通信服务可以通过 Angular 的 `@Injectable()` 装饰器创建,并通过构造函数注入所需的依赖。

3. Vue.js 中的计算属性和观察者有什么区别?答案:在 Vue.js 中,计算属性和观察者都是响应式系统的一部分,但它们有不同的用途:- 计算属性(computed properties):它们是基于响应式依赖进行缓存的属性。

只有当计算属性依赖的数据发生变化时,计算属性才会重新计算。

hadoop面试题目(3篇)

hadoop面试题目(3篇)

第1篇一、Hadoop基础知识1. 请简述Hadoop的核心组件及其作用。

2. 什么是Hadoop生态系统?列举出Hadoop生态系统中的主要组件。

3. 什么是MapReduce?请简述MapReduce的原理和特点。

4. 请简述Hadoop的分布式文件系统HDFS的架构和特点。

5. 什么是Hadoop的YARN?它有什么作用?6. 请简述Hadoop的HBase、Hive、Pig等组件的特点和应用场景。

7. 什么是Hadoop的集群部署?请简述Hadoop集群的部署流程。

8. 什么是Hadoop的分布式缓存?请简述其作用和实现方式。

9. 什么是Hadoop的MapReduce作业?请简述MapReduce作业的执行流程。

10. 请简述Hadoop的HDFS数据复制策略。

11. 什么是Hadoop的NameNode和DataNode?它们各自有什么作用?12. 请简述Hadoop的HDFS数据写入和读取过程。

13. 什么是Hadoop的Zookeeper?它在Hadoop集群中有什么作用?14. 请简述Hadoop的HDFS数据块的校验和机制。

15. 什么是Hadoop的HDFS数据恢复机制?二、Hadoop核心组件面试题1. 请简述Hadoop的MapReduce组件的架构和执行流程。

2. 请简述Hadoop的HDFS数据块的读写过程。

3. 请简述Hadoop的YARN资源调度器的工作原理。

4. 请简述Hadoop的HBase组件的架构和特点。

5. 请简述Hadoop的Hive组件的架构和特点。

6. 请简述Hadoop的Pig组件的架构和特点。

7. 请简述Hadoop的Zookeeper组件的架构和特点。

8. 请简述Hadoop的HDFS数据块的复制策略。

9. 请简述Hadoop的HDFS数据块的校验和机制。

10. 请简述Hadoop的HDFS数据恢复机制。

三、Hadoop高级面试题1. 请简述Hadoop集群的故障转移机制。

后端开发工程师常见面试题

后端开发工程师常见面试题

后端开发工程师常见面试题在当今科技飞速发展的时代,后端开发工程师在构建高效、稳定和安全的网络应用中起着至关重要的作用。

当企业招聘后端开发工程师时,往往会通过一系列面试题来评估候选人的技术能力、问题解决能力和思维方式。

以下是一些常见的后端开发工程师面试题,希望能对正在准备面试的你有所帮助。

一、数据库相关问题1、请简要介绍一下关系型数据库和非关系型数据库的区别,并举例说明在什么场景下会选择使用它们。

关系型数据库,如 MySQL、Oracle 等,具有严格的结构化数据模式,强调数据的一致性和完整性,适用于数据结构相对固定、对事务处理要求较高的场景,比如电商系统中的订单管理。

而非关系型数据库,如 MongoDB、Redis 等,通常具有更灵活的数据模型,能更好地处理大规模的、结构不固定的数据,常用于缓存、日志存储或实时数据分析等场景。

2、谈谈你对数据库索引的理解,以及在什么情况下应该创建索引,什么情况下不应该创建索引?索引可以加快数据的查询速度,但也会增加数据插入、更新和删除的开销。

一般在经常用于查询、连接和排序的字段上创建索引,比如主键、外键等。

但对于数据量小的表、频繁更新的字段或者很少用于查询的字段,创建索引可能并不合适。

3、如何处理数据库中的并发操作,以避免数据不一致的问题?常见的方法包括使用事务来保证一组操作的原子性、一致性、隔离性和持久性(ACID)。

通过设置合适的隔离级别,如读未提交、读已提交、可重复读和串行化,可以控制并发事务之间的可见性和相互影响。

二、编程语言相关问题1、以你熟悉的编程语言(如 Java、Python 等)为例,解释一下面向对象编程的三大特性:封装、继承和多态,并举例说明它们的应用。

封装是将数据和操作数据的方法封装在一个类中,对外提供访问接口,增强了代码的安全性和可维护性。

继承允许子类继承父类的属性和方法,实现代码复用。

多态则是同一操作作用于不同的对象可以有不同的表现形式,比如在 Java 中通过方法重写和方法重载实现多态。

集思科技面试总结

集思科技面试总结

面试中遇到的问题:(基础)1.String和StringBuffer的区别?那个用在线程中,为什么?2.String s=new String(“hello world!”);在这个过程中创建了几个对象,分别存放在那(堆,栈,域)?3.面向对象的特征?4.解释什么是抽象,为什么要用抽象,在什么情况下用?(封装,继承,多态也会问到相同的,解释清楚其中一个,后面三个基本不会问)5. 什么是Abstract类和interface?两者的区别?为什么要用interface,什么情况下用?6.ArrayList和LInkedList有什么区别?7.ArrayList和HashMap的区别?8.Int和Integer的区别?Int的初始值是什么?Integer的默认值?9.Java虚拟机,jvm文件的调用,以及运行原理?10.线程怎么写,有几种方法,同步如何实现11.Session在什么时间用,session的默认时间是?在用的过程中,你是如何设置,在web。

Xml下如何定义session的时间(数据库)1.数据库三范式2.事务的特性3.存储过程,触发器,和视图(视图问的最多)4.说一个sql语句(对方会给定)5.Sql语句中的函数都用过什么?6.MySQL用什么管理,和oracle的区别?7.表之间如何建立关系8.索引是做什么的,为什么要用,怎么用9.锁的作用,什么是死锁(框架)1.简述三大框架的用法,分别在项目中的作用(如果简历上有写ssh)2.多变查询怎么实现,配置文件怎么写3.Struts的运行机制,什么是拦截器,怎么用,如何配置?4.Spring IOC的原理,如何调用?(基本每个公司都问)5.每个配置文件,最好都熟悉,知道都有什么内容6. Spring MVC 和ssh的区别7.什么情况下用mybaits8.简述MVC(前台)1.ajax在页面中的作用,你是怎么用的,2.JQuery验证,jQuery如何获取对象3.这么实现隐藏(主要适合视图做对比)4.页面传值,前台怎么传,后台怎么调5.增删改查时请求是怎么传值,传的是什么?6.邮箱验证特别注意,多数会问------在写代码的过程中有用到过什么样的插件,------代码管理有问到过SVN是否了解,你用什么管理代码------下班时间你是如何学习,有关注什么,你觉得对自己的技术方面有怎样的提升------如果有笔试题,都会考到逻辑题和算法题,算法都是比较简单的------说出在不用框架的情况下,如何实现增,删,改,查,(口述)------对现在新技术的了解(大数据,云计算)------其他服务器的了解程度(除tomcat之外)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
autocommit=true
8.spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
spring事务分两种形式,声明式事务和编程式事务,spring提供了一个事务的接口
PaltformTractionManager接口,针对不同的事务,spring进行了不同的实现,对hibernate事务
为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
- SERIALIZABLE最安全,但是代价最大,性能影响极其严重
和传播行:
- REQUIRED存在事务就融入该事务,不存在就创建事务
- SUPPORTS存在事务就融入事务,不存在则不创建事务
- MANDATORY存在事务则融入该事务,不存在,抛异常
- REQUIRES_NEW总是创建新事务
2.Hibernate是如何延迟加载?
1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
4.说说AOP和IOC的概念以及在spring中是如何应用的
AOP:面向方面编程,ioc:依赖注入;声明式事务和编程式事务积极一些通用部分
5.Hibernate有哪几种查询数据的方式
hql查询,sql查询,条件查询
6.load()和get()的区别
hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,load默认支持延迟加载,在用到对象中的其他属性数 据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常ObjectNotFoundEcception;所说的load方法抛异常是指在使用该对 象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在 load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理(load时候之查询一级缓存,不存在则创建代理)。get() 现在一级缓存找,没有就去二级缓存找,没有就去数据库找,没有就返回null ;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被ActionServlet接收。3、根据struts-config.xml配置, ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。4、是否验证,需要验证则调用ActionForm的validate方法,验证失败则跳转到input,成功则继续。5、Action从ActionForm获得数据,调用javabean 中的业务方法处理数据。6、Action返回ActionForward对象,跳转到相应JSP页面或Action。7、返回HTTP响应到客户端浏览器。
的实现HIbernateTractionManager,对JDBC的JdbcTractionManager,
DataSourceTractionManager以及JdoTractionManager。接口platformTractionManager提供了三
个方法,获取事务,提交和回滚的方法。
getHiberanteTemplate里面提供了save,update,delete,find等方法。
简单说一个:如果配置了声明式事务,当执行getHibernateTemplate的各种方法的时候,事务会
自动被加载
如果没有配置事务,那么以上操作不会真正的被同步到数据库,除非配置了hibernate的
ቤተ መጻሕፍቲ ባይዱ
7.谈谈hibernate的延迟加载和openSessionInView
延迟加载要在session范围内,用到的时候再加载;opensessioninview是在web层写了一个
filter来打开和关闭session,这样就表示在一次request过程中session一直开着,保证了延迟
加载在session中的这个前提。
MVC设计模式:modal:“模型” 也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射
如果对象已经在本session中持久化了,不做任何事
如果另一个与本session关联的对象拥有相同的持久化标识(identifier),抛出一个异常
如果对象没有持久化标识(identifier)属性,对其调用save()
如果对象的持久标识(identifier)表明其是一个新实例化的对象,对其调用save()
8.spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
声明事务和编程事务
隔离级别:
- DEFAULT使用数据库默认的隔离级别
- READ_UNCOMMITTED会出现脏读,不可重复读和幻影读问题
- READ_COMMITTED会出现重复读和幻影读
- REPEATABLE_READ会出现幻影读
如果对象是附带版本信息的(通过 <version>或 <timestamp>) 并且版本属性的值表明其是一个新实例化的对象,save()它。 否则update() 这个对象
10.Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理。
9.数据库里面的索引和约束是什么?
索引是为了提高数据的检索速度,索引是建立在数据表上,根据一个或多个字段建立的约束是为了保持数据的完整性,约束有非空约束,主键约束,外键约束等等。
10.spring是什么
这个问题,往往可以通过我们为什么要使用spring这个问题来切入:AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比 如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。 IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反 过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。 Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。
m:JavaBean 或结合 EJB 组件或者pojo构成
c:Action 来实现
v:一组 JSP 文件及其标签构成。
3.struts中的几个关键对象的作用(说说几个关键对象的作用)
Action:控制器类,ActionForm:表单对象,DynaValidatorForm:动态form,ActonMapping:配置文件中action节点的信息......
11.用自己的话简要阐述struts2的执行流程。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。
spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注入)和AOP(面向切面编程)
7.hibernate是什么?
hibernate是基于ORM对象关系映射(完成对象数据到关系数据映射的机制)实现的,做数据持久化的工具
8.JSF是什么?
JavaServer Face是基于组件的web开发框架,跟sturts差不多的框架
Java工程师(程序员)面题
Struts,Spring,Hibernate三大框架
相关文档
最新文档