答辩可能会问的.docx

上传人:b****6 文档编号:7355331 上传时间:2023-01-23 格式:DOCX 页数:13 大小:29.53KB
下载 相关 举报
答辩可能会问的.docx_第1页
第1页 / 共13页
答辩可能会问的.docx_第2页
第2页 / 共13页
答辩可能会问的.docx_第3页
第3页 / 共13页
答辩可能会问的.docx_第4页
第4页 / 共13页
答辩可能会问的.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

答辩可能会问的.docx

《答辩可能会问的.docx》由会员分享,可在线阅读,更多相关《答辩可能会问的.docx(13页珍藏版)》请在冰豆网上搜索。

答辩可能会问的.docx

答辩可能会问的

什么是Servlet?

是用Java编写的服务器端程序。

其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet运行于支持Java的应用服务器中。

从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的JavaWebServer,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

Servlet是JSP技术的基础,JSP本身是预编译成Servlet,然后运行,而开发大型Web应用程序需要JavaServlet和JSP来完成。

Servlet和传统的CGI程序和ISAPI,NSAPI等Web应用程序开发工具是一样的,在使用JavaServlet以后,用户不必使用低效的CGI方式,不必仅在固定的Web服务器平台上使用运行API方式动态生成网页。

许多Web服务器支持servlet,即使不直接支持servlet的Web服务器也可以通过其他应用程序服务器和模块来支持servlet。

JSP(JavaServerPages)是一种基于Java的脚本技术。

在JSP的许多优点之中,其中之一就是可以将HTML代码从Web页面的业务逻辑中分离出来。

使用JSP访问可重用的组件,如servlet,JavaBeans和基于Java的Web应用程序。

JSP还支持将Java代码直接嵌入到Web页面中。

有两种访问JSP文件的方法:

浏览器发送一个JSP文件请求并将其发送到servlet请求。

J2EE?

J2EE技术是应用于JAVA网络的技术,在企业级开发中广泛应用。

J2EE技术的组成是一套建立在J2SE平台上的规范(shannin,2001)的以及应用编程接口。

J2EE技术还拥有Sun的公司免费的开发工具包,叫做J2EE软件开发工具包(SDK)。

J2EE这种技术的组合是一种Java网络应用技术,包括远程方法调用(RMI),Java消息服务(JMS),JavaMail等通信服务,JDBC,Java命名和目录接口(JavaNaming和目录接口(JNDI),Java连接器架构(JCA),Java事务API/Java事务服务(JTA/JTS),XML处理API和Servlet,Java服务器页面(JSP),企业级JavaBean(EJB)和其他组件技术任何J2EE实现必须在其特定容器中实现。

Hibernate工作原理!

1.配置好hibernate的配置文件和与类对应的配置文件后,启动服务器

2.服务器通过实例化Configeration对象,读取hibernate.cfg.xml文件的配置内容,并根据相关的需求建好表或者和表建立好映射关系

3.通过实例化的Configeration对象就可以建立sessionFactory实例,进一步,通过sessionFactory实例可以创建session对象

4.得到session之后,便可以对数据库进行增删改查操作了,除了比较复杂的全文搜索外,简单的操作都可以通过hibernate封装好的session内置方法来实现

5.此外,还可以通过事物管理,表的关联来实现较为复杂的数据库设计

优点:

hibernate相当于java类和数据库表之间沟通的桥梁,通过这座桥我们就可以做很多事情了

1.Hibernate是如何连接数据库

主要是通过hibernate.cfg.xml配置文件中的配置

在这个文件中定义了数据库进行连接所需要的信息,包括JDBC驱动、用户名、密码、数据库等,configuration类借助dom4j的XML解析器解析设置环境,然后使用这些环境属性来生成SessionFactory。

这样这个sessionFactory生成的session就能成功获得数据库的连接。

2.Hibernate是如何进行数据库写操作

对数据库的写操作包括保存、更新和删除,当保存一个POJO持久对象时,触发Hibernate的保存事件监听器进行处理。

Hibernate通过映射文件获得对象对应数据库表名以及属性所对应的表中的列名,然后通过反射机制持久化对象(实体对象)的各个属性,最终组织成向数据库插入新对象的SQLinsert语句。

调用了session.save方法后,这个对象会标识成持久化状态存放在session中,对于Hibernate来说它就是一个持久化了的对象,但这个时候Hibernate还不会真正的执行insert语句,当进行session的刷新同部或事务提交时,Hibernate会把session缓存中的所有SQL语句一起执行,对于更新、删除操作也是采用类似的机制。

然后,提交事务并事务提交成功后,这些写操作就会被永久地保存进数据库中,所以,使用session对数据库操作还依赖于Hibernate事务的处理。

如果设置了二级缓存,那么这些操作会被同步到二级缓存中,Hibernate对数据库最终操作也是依赖于底层JDBC对数据库进行。

3.Hibernate如何从数据库中载入对象

当使用session.load载入对象时,可以设置是否采用延迟加载,如果延迟加载,那么load返回的对象实际是CGLIB或javassist返回的代理类,它的非主键属性都是空的,这对于对象集合属性很有效。

Hibernate以此来节约内存,当真正需要读取对象时,Hibernate会先尝试从session缓存中读取,如果session缓存中数据不存在或者是脏数据并且配置了二级缓存,Hibernate尝试从二级缓存中检索数据,否则Hibernate会根据对象类型,主键等信息组织select语句到数据中读取,再把select结果组织成对象返回。

4.Hibernate如何进行数据库查询操作

Hibernate提供SQLHQLCriteria查询方式。

HQL是其中运用最广泛的查询方式。

用户使用session.createQuery方法以一条HQL语句为参数创建Query查询对象后,Hibernate会使用Anltr库把HQL语句解析成JDBC可以识别的SQL语句,如果设置了查询缓存,那么执行Query.list时,Hibernate会先对查询缓存进行查询,如果查询缓存不存在,再使用select语句查询数据库。

umr

UML-UnifiedModelLanguage 统一建模语言,又称标准建模语言。

是用来对软件密集系统进行可视化建模的一种语言。

UML的定义包括UML语义和UML表示法两个元素。

UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。

最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。

统一建模语言(UML)是一种模型化语言。

模型大多以图表的方式表现出来。

一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之2用的文本。

这些虽简单却非常重要,在UML规则中相互联系和扩展。

类图(ClassDiagram):

类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。

类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

你是如何实现人气商品模块的?

每个物品信息都有一个message.top_value,再点击物品信息链接后MessageDetailAction会获取messageid,对当前的message.top_value+1,后再返回。

关键字搜索查询

将关键字提交到searchConditionForm

系统搜索时也用ActionForm(searchConditionForm)接收搜索表单,在Action中用Dao对象操作ActionFrom返回搜索结果。

用户登录校验

除了基本的密码校验之外,LoginAction对用户的权限进行判断,如果数据库中当前用户role为0,则为管理员。

if(null!

=user)

{

session.removeAttribute("user");

session.setAttribute("user",user);

if(user.getRole()==0)

session.setAttribute("role","admin");

}

 

实名制

提前在数据库中存储学生学号,每个学生注册需要一对一的学号,每人只能注册一个账号,在RegisterAction中有checkUserAndStu方法对注册信息进行校验,出现用户名存在、学号不存在、该学号已经注册这三种情况则注册失败。

if(userList.size()!

=0)

{

System.out.println("用户名已经存在!

");

return1;//"userhasebeenexist!

";

}

Studentstu=sDao.findById(form.getStu_id());

if(stu==null)

{

System.out.println("没有此学号的学生");

return2;

}

userList=uDao.findByStu_id(stu_id);

if(userList.size()!

=0)

{

System.out.println("该学号已经注册");

return3;

}

else

return0;

注册成功进入下一个页面,注册失败返回到注册页面。

1.C/S架构与B/S架构的区别

硬件环境不同、对安全要求不同 、对程序架构不同、软件重用不同、系统维护不同 、处理问题不同、用户接口不同 。

C/S又称Client/Server或客户/服务器模式。

服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。

客户端需要安装专用的客户端软件。

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。

浏览器通过WebServer同数据库进行数据交互。

C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。

对应的优点就是客户端响应速度快。

缺点主要有以下几个:

只适用于局域网。

而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。

这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

客户端需要安装专用的客户端软件。

首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。

特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。

还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

对客户端的操作系统一般也会有限制。

可能适应于Win98,但不能用于win2000或WindowsXP。

或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。

只要有一台能上网的电脑就能使用,客户端零维护。

系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。

甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

2.SSH框架

集成SSH框架的系统从职责上分为四层:

表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。

其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。

具体做法是:

用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

统的基本业务流程是:

在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。

在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。

而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。

这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。

而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

3.MVC

MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式:

[1] 

∙Model(模型)表示应用程序核心(比如数据库记录列表)。

∙View(视图)显示数据(数据库记录)。

∙Controller(控制器)处理输入(写入数据库记录)。

MVC模式同时提供了对HTML、CSS和JavaScript的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

  通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。

  通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。

  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。

例如,您可以在不依赖业务逻辑的情况下专注于视图设计。

同时也让应用程序的测试更加容易。

MVC分层同时也简化了分组开发。

不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

 

4.JavaScript技术

javaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

[3] 

1.是一种解释性脚本语言(代码不进行预编译)。

[4] 

2.主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。

[4] 

3.可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

[4] 

4.跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。

Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。

而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

[5] 

5.JSP和JS的区别

6.名字:

  JS:

JavaScript

  JSP:

JavaServerPages

7.执行过程:

JSP先翻译,翻译成Servlet执行

     如:

test.jsp要变成test_jsp.java然后编译成test_jsp.class

     而test_jsp.java本身就是一个servlet.

     所以jsp只是servlet的一个变种,方便书写html内容才出现的。

     servlet是根本,所有jsp能做的,servlet全能做。

JS:

是一种基于对象的客户端脚本语言。

目的是解决服务器端语言。

  如:

Perl,遗留的速度问题,为客户提供更流畅的浏览效果。

  JS可以直接嵌入到html代码中进行解析执行,

  非常简单易学,可以产生很多动态的效果。

8.形象比较:

JS是在客户端执行的,需要浏览器支持JavaScript。

JSP是在服务器端执行的,

     需要服务器上部署支持Servlet的服务器程序。

JS代码能够直接从服务器

     上download得到,对外是可见的,jsp(和翻译后的Servlet代码)是对外不可见的。

9.JS和JSP相比较:

虽然JS可以再客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂

        的服务。

        如:

访问数据库和图像处理等等。

        JSP在HTML中用<%%>里面实现。

JS在HTML中用实现。

10.执行过程:

  JSP:

    1、JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理

    用户的请求,所以Servlet可以看成是运行时的Servlet。

    2、JSP容器也就是Servlet容器管理JSP页面生命周期分为两个阶段,即转换阶段和执行阶段。

    3、转换阶段:

当有一个对JSP页面的请求到来时,JSP容器检查JSP页面的语法是否正确,将JSP页面

    转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件。

    4、执行阶段:

Servlet容器加载转换后的Servlet类。

  JS:

    JavaScript通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交

    互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和

    UI操作响应速度为基本目标。

(运行位置的不同)

11.运行位置不同:

    JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台

    数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。

5.需求分析阶段的主要任务

1.问题识别

(1)功能需求:

明确所开发的软件必须具备什么样的功能。

(2)性能需求:

明确待开发的软件的技术性能指标。

(3)环境需求:

明确软件运行时所需要的软、硬件的要求。

(4)用户界面需求:

明确人机交互方式、输入输出数据格式。

2.分析与综合,导出软件的逻辑模型

分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。

用图文结合的形式,建立起新系统的逻辑模型。

3.编写文档

(1)编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。

(2)编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。

(3)编写确认测试计划,作为今后确认和验收的依据。

(4)修改完善软件开发计划。

在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。

6.数据库的设计步骤

7.1、需求分析:

了解用户的数据需求、处理需求、安全性及完整性要求;

2、概念设计:

通过数据抽象,设计系统概念模型,一般为E-R模型;

3、逻辑结构设计:

设计系统的模式和外模式,对于关系模型主要是基本表和视图;

4、物理结构设计:

设计数据的存储结构和存取方法,如索引的设计;

5、系统实施:

组织数据入库、编制应用程序、试运行;

6、运行维护:

系统投入运行,长期的维护工作。

8.MyEclipse和Eclipse的区别

Eclipse与MyEclipse的联系和区别

Eclipse是一个IDE(IntegratedDevelopingEnvironment),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,而Myeclipse就是其中的一种有名的插件集之一,主要是为J2EE开发;MyEclipse将开发者常用到的一些有用的插件都集合起来,提供一种高级编程环境,可以比较轻松完成struts,Hibernate,Spring布局,编写strtus-config.xml;但它是收费的,没Eclipse MyEclipse是没用的。

lomboz也是类似MyEclipse的插件,不过是免费的,当然功能没有MyEclipse好。

Eclipse是一个开放源代码,基于Java的可扩张的开发平台,多数人都是将Eclipse作为Java的集成开发环境使用,虽然Eclipse使用Java开发:

但Eclipse不仅仅局限于Java开发,还可用于其它语言的开发,如C/C++;Eclipse是一个框架和一组服务,它通过各种插件来构建开发环境,因此只要提供支持C/C++插件便能进行相应语言的开发.

Eclipse最早是由IBM开发的,后来IBM将Eclipse作为一个开发源代码的项目,献给了开源组织Eclipse.org但仍由IBM的子公司OTI(主要从事Eclipse开发的人员)继续Eclipse的开发.

(1)MyEclipse把所有的插件都配好了,直接可以用,比例写jsp,struts,spring之类的,当然包也相当大,机子不好的话开发程序比较慢,

     Eclipse什么都没有,要开发什么就自己配什么插件而已。

(2)严格的说,MyEclipse只是Eclipse体系中的一种插件,只是由于MyEclipse经常和Eclipse一起安装使用,所以通常也将安装了MyEclipse插件后的Eclipse叫做MyEclipse,二者可以单独安装,即先装Eclipse之后,再以插件方式安装MyEclipse。

另一种方法则是在同时安装二者,即安装MyEclipse,时已经同时安装了Eclipse(他们已经整合在一起)。

MyEclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,这解决了各种开源工具的不一致和缺点。

NitroX是一个繁杂而强大的加速JavaWeb应用开发的工具,还包含了一个强大且能够编译所有JSP和StrutsWeb应用的工具AppXRay。

这些工具解析Java和XML配置文件.

MyEclipse的实际价值来自包含的发布包中的大量的工具。

如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如action/sessionbean/form等。

还包含编辑Hib

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1