《java常见复习题-.pdf》由会员分享,可在线阅读,更多相关《java常见复习题-.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 http 协议数据提交方式get,post 答:http 协议提交时默认为get.用 get方式提交时,地址栏中可见且有长度限制(225);用 post方式提交时,地址栏不可见,无长度限制,使用方式为:method=post 2 Servlet 基础i.Serlvet 编程模式答:servlet 是 JSP的基础,是一个java 程序,是接收客户请求,对请求的数据进行处理,并对客户端做出响应的程序。ii.Servlet 生命周期答:从创建到销毁的过程。包括,加载、实例化、初始化(init())、提供服务(service())、销毁(dostroy())。iii.Servlet 部署与配置(
2、web-xml 的配置)答:在 web.xml 文件中使用两个XML 元素(和)把用户访问的URL 映射到 Servlet,其中 将用户访问的URL 映射到Servlet的内部名,元素把 Servlet 内部名映射到一个Servlet 类名(包名+类名)。HelloServlet-设定当前Servlet 的内部名称.ch01.HelloServlet-设 定Servlet所在的位置,包名.Servlet 类名 HelloServlet-通 过Servlet 内 部 名 把URL 和 CLASS 绑定/HelloServlet-这是用户访问Servlet 的URL iv.Servlet 常见错误
3、答:sevlet无正常加载:1 使用了错误的url(如,没有指定/servlet);2 大小写错;空指针异常、空的初始化参数(init()方法没有调用super.init(config))v.Servlet 处理 get/post请求答:对于 get方式,servlet采用对doGet 方法来进行处理,对于 post方式,servlet采用 doPost方法来进行处理对于 get方式,底层是将所有参数附加在请求资源的后面一起传递的;对于post方式,底层是将所有参数附加的请求资源的最后一行的下一行的下一行。3.servlet会话跟踪1.会话的创建和使用答:创建:HttpSession sess
4、ion=request.getsession();使用:session.setAttribute(String name,Object value);String name=session.getAttribute(String name);2.会话 HttpSession的存在周期答:从 HttpSession的创建到浏览器关闭。4.常用集合,接口(List,Map,Set)答:List,Set 是继承自Collection 接口。List 代表有序的重复的集合;Set 代表无序,不可重复的集合。Map 是以键、值对的方式来存储的集合,键可以为空但不可重复。5.MVC 设计模式答:1、模型(
5、Model)模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图(View)视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。3、控制器(controller)控制器工作就是根据用户的输入,控制用户界面数据显示和更新model 对象状态。MVC 不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性6.高级 Jdbc编程1.数据库连接池(数据源与jdni)答:数据连接池负责分配、管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,释放空闲时间超过最大空闲时间的数据连接,避免因为没释放数据库连接而引起数据库
6、连接遗漏。(JNDI Java Naming and Directory Interface)2.基于属性文件的数据库配置答:是为了方便实现不同数据库的访问3.自定义异常答:7.javaBean 在 jsp 中的使用1.javaBean 答:是一种用JAVA 语言写成的可重用组件。1.JavaBean 是一个公共的(public)类。2.JavaBean 必须有一个无参构造。2.jsp 标准动作答:在页面被请求的时候引入一个文件。:寻找或者实例化一个JavaBean。:设置JavaBean 的属性。:输出某个JavaBean的属性。:把请求转到一个新的页面。:根据浏览器类型为Java插件生成O
7、BJECT 或 EMBED 标记。:用于传递参数值。8.EL 和 JSTL 1.EL 表达式答:expression language,即表达语言。以“$”开头,以“”结尾,通过PAGE 指令来说明是否支持EL 表达式。“.“和“两种运算符来存取数据。2.JSTL 标准标签库答:Java Server Pages Standard Tag Library。JSTL 分为核心标签库和SQL标签库。核心标签库包括:通用标签-set/remove/out 条件标签-if、choose 迭代标签-ForEach3.EL 隐式对象答:JSP:pageContext(PageContext 实例对应于当前
8、页面的处理);作用域:pageScope(与页面作用域属性的名称和值相关联的Map 类);requestScope(与请求作用域属性的名称和值相关联的Map 类);sessionScope(与会话作用域属性的名称和值相关联的Map 类);applicationScope(与应用程序作用域属性的名称和值相关联的Map 类);请求参数:param(按名称存储请求参数的主要值的Map 类);paramValues(将请求参数的所有值作为String 数组存储的Map 类);请求头:header(按名称存储请求头主要值的Map 类);headerValues(将请求头的所有值作为String 数组存储
9、的Map 类);Cookie:cookie(按名称存储请求附带的cookie 的Map 类);初始化参数:initParam(按名称存储Web 应用程序上下文初始化参数的Map 类);9.Web 服务1.web 服务的创建与发布答:2.客户端程序调用web服务答:3.单元测试答:是最小粒度的测试,以测试某个功能或代码块。单元测试的对象是软件设计的最小单位模块。单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。1.hibernate 完成对象持久化1.hibernate 原理与使用答:是一个开放源代
10、码的对象关系映射框架,它对JDBC 进行了轻量级的对象封装,使Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。2.hibernate 实现数据的CRUD 答:查询:List list=session.createQuery(from User as user order by user.loginName).list();添加:Session session=HibernateSessionFactory.getSession();Transaction ts=null;try ts=session.beginTransaction();User user=new User();u
11、ser.setLoginName(amigo);user.setFullName(阿蜜果);session.save(user);mit();catch(Exception e)if(ts!=null)ts.rollback();finally HibernateSessionFactory.closeSession();修改:Session session=HibernateSessionFactory.getSession();Transaction ts=null;try ts=session.beginTransaction();/取得持久化对象User user=session.ge
12、t(User.class,amigo);/对需要修改的属性进行修改user.setFullName(阿蜜果);session.update(user);mit();catch(Exception e)if(ts!=null)ts.rollback();finally HibernateSessionFactory.closeSession();删除:Session session=HibernateSessionFactory.getSession();Transaction ts=null;try ts=session.beginTransaction();/取得持久化对象User user
13、=session.get(User.class,amigo);session.delete(user);mit();catch(Exception e)if(ts!=null)ts.rollback();finally HibernateSessionFactory.closeSession();2.hibernate 的关联映射1.一对多关联配置答:2.多对一关联配置答:3.多对多关联配置答:3.hibernate 查询1.hibernate查询语言-HQL 答:from Table;2.criteria 查询答:Criteria criteria=session.createCriteri
14、a(User.class);3.hibernate本地查询答:4.struts2 原理(一)1.struts2开发环境配置答:JDK1.6+MyEclipse6.0+T omcat6.02.struts2基本流程1.控制器组件答:Struts2 的控制器组件是Struts2 框架的核心,所有MVC 框架都是以控制器组件为核心的。控制器由两部分组成:FilterDispatcher 和业务控制器Action。2.视图组件答:Struts 2已经改变了S truts 1只能使用JSP作为视图技术的现状,Struts 2允许使用其他的模板技术,如FreeMarker、Velocity等作为视图技术。
15、当 Struts 2 的控制器返回逻辑视图名时,逻辑视图并未与任何的视图技术关联,仅仅返回一个字符串,该字符串作为逻辑视图名。3.模型组件答:实际上,模型组件已经超出了MVC 框架的覆盖范围。对于S truts 2框架而言,通常没有为模型组件的实现提供太多的帮助。JavaEE 应用里的模型组件,通常指系统的业务逻辑组件。而隐藏在系统的业务逻辑组件下面的,可能还包含了DAO、领域对象等组件。通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。3.struts2基本配置1.Web.xml 答:ch0809 struts2 org.apache.struts2.dispatcher.n
16、g.filter.StrutsPrepareAndExecuteFilter struts2/*index.jsp default.jsp 2.Struts.xml 答:/ognl.jsp/view.jsp/update.jsp/add.jsp/err.jsp 5.struts2 原理(二)1.struts2核心组建 action 1.action核心组建的配置和使用答:/ognl.jsp/view.jsp/update.jsp/add.jsp/err.jsp 2.action访问 servlet API 答:有三种方法:1,利用ActionContext,这是 webWork 中的类。get
17、(object o):访问的是httpservletrequest 中的属性;.set(object key,object value):访问的是httpservletrequest 中的属性;.getSession():Map:得到一个map,对应于HttpServletSession;.getApplication():Map:得到一个map,对应于HttpServletContext,也即 jsp的内置对象application;2,利用 ServletActionContext,这是 struts2继承自ActionContext 的一个类通过它的三个静态方法,分别可获得HttpSer
18、vletRequest,HttpServletSession 和 HttpServletContext。3,利用 SessionAware等接口第一种方法是最推荐的。如果确实需要直接操作HttpServletSession 等,那也应该也第二种方法。6.struts2 原理(三)1.struts2 处理结果答:Struts2 提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity 等。Struts2 支持的不同类型的返回结果为:chain 用来处理Action 链dispatcher 用来转向页面,通常处理JSP,这是默认的结果类型freeMarker 处理 F
19、reeMarker 模板httpHeader 用来控制特殊的Http 行为redirect 重定向到一个URL redirect-action 重定向到一个Action stream 向浏览器发送InputSream 对象,通常用来处理文件下载velocity 处理 Velocity 模板xslt 处理 XML/XLST模板plaintext 显示原始文件内容,例如文件源代码tiles 结合 Tile 使用2.struts2 拦截器答:拦截器 Interceptor 每一个Action 请求都包装在一系类的拦截器内部。拦截器可以在Action 执行直线做相似的操作。每一个Action 既可以将
20、操作转交给下面的拦截器,Action 也可以直接退出操作返回客户既定的画面。自定义拦截器步骤:1.自定义一个实现Interceptor 接口(或者继承自AbstracInterceptor)的类。2.在 struts.xml 中注册上一步中定义的拦截器。3.在需要使用的Action 中引用上述定义的拦截器,为了方便也可以将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。3.struts2 常用标签答:A:-超链接,类似于html 里的 -执行一个view 里面的一个action-如果 action的 errors 有值那么显示出来-如果 action
21、的 message有值那么显示出来-添加一个值到list,类似于list.add();-自动完成 标签的内容,这个是 ajax B:-类似于 struts1.x 中的,JavaBean 的值C:-复选框-多选框-下拉框-图像符号D:-获取日期格式-日期输入框-显示错误信息-表示一个块,类似于html 的 -双下拉框E:-这 3 个标签一起使用,表示条件判断F:-显示文件错误信息-文件上传-获取相应form 的值G:-和 标签一起使用H:-在 里使用,表示头文件结束-隐藏值I:-加载资源包到值堆栈-包含一个输出,servlet或 jsp 页面-获取 form 的一个输入-用于遍历集合L:-只读的
22、标签M:-合并遍历集合出来的值O:-获取标签组-左右选择框P:-为其他标签提供参数-密码输入框-得到 value的属性-value的值 push 到栈中,从而使property 标签的能够获取value 的属性R:-单选按钮-重置按钮S:-单选框-赋予变量一个特定范围内的值-通过属性给list分类-提交按钮-为遍历集合输出子集T:-表格框-表格-I18n文本信息-文本域输入框-文本输入框-拦截器-树-树的结构U:-多选择框-创建 url7.使用 spring 容器管理对象1.依赖注入(配置文件的使用)答:面向接口的编程是最好的依赖注入的例子。控制反转(Inversion of Control,
23、英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。控制反转还有一个名字叫做依赖注入(Dependency Injection)。简称 DI。2.AOP 答:AOP 是 OOP 的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。8.JPA 技术1.JPA 在 spring 中配置答:2.JPA 基本使用答:3.通过 JPA 实现对象-关系映射(一对多,多对一)答:一对多:OneToMany private Set 对象;多对一:ManyToOne private 实体类对象;9.struts2 基于注解形式实现零配置1.实现 struts2 零配置答:10.SSH2 零配置1.spring 与 hibernate 集成使用JPA 答:2.spring 与 struts2 集成答:3.零配置注解答: