您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页java开发技术总结

java开发技术总结

来源:爱够旅游网
数据库

oracle-->数据库管理系统-->SQL、PL/SQL-->Java(JDBC+SQL)DBA,数据库编程程序员1.概念导论1)什么是数据库有组织和结构存储数据。可以存储字符、字节、图形、图像等类型数据DB(数据库):数据集合DBMS(数据库管理系统):对数据集合进行管理和操作的软件--Oracle--DB2--MySQL--SQLSERVERJDBC

1.什么是JDBC全称JavaDataBaseConnection,Java数据库访问。JDBC是Java访问数据库的一项技术JDBC是SUN推出的Java访问数据库的一套标准。由一系列接口构成。各个数据库厂商负责提供JDBC接口API的实现包。开发者只需要掌握JDBC接口的使用,就可以实现对各种数据库的操作,不需要了解开发商的实现类。XML

1、什么是xml(xtendsiblemarkuplanguage可扩展的标记语言)?1)定义基于文本的通用的数据保存格式。(1)通用的点的坐标Point类point对象(x=10,y=20)a,序列化b,数据库表c,文件...(2)数据格式1020HTML

知识准备1、分层:表现层:UI界面(DOS界面、桌面类型、web类型)业务层:数据层:文件、Oracle数据库2、Web类型的应用程序----B/S类型打开Browser,输入URL,浏览器将请求发送到服务器服务器得到请求,分析,返回响应浏览器得到响应,解析(翻译),显示为页面3、web学习阶段客户端技术:HTML+CSS+Javascript---Web基础服务器端技术:JSP、PHP、ASP.NET4、web基础的课程HTML:页面的创建CSS:页面的外观JavaScript:页面的动态效果和交互行为--3一:HTML概述1、超文本标记语言:一种编写页面的纯文本的标记语言,文件以.html或者.htm为后缀,依靠浏览器运行显示----解释性的语言2、标记:一些用<>括起来的内容,特殊的显示3、主流浏览器:IE/Firefox/Chrome/4、浏览器兼容性:符合标准规范,具体问题CSS

一:CSS概述1、CSS:级联样式表(层叠样式表)2、特征:为页面定义外观的语言,实现内容和表现的分离,多个样式可以合为一个,如果冲突,以优先级为准二:基础语法1、语法:属性名称:值;属性名称:值;比如--color:red;2、如何应用方式一(内联方式):<元素style=\"\"/>---将样式直接定义在元素的style属性里方式二(内部样式表):在页面的head里的style里定义样式方式三(外部样式表):定义一个单独的.css的文件(定义样式);然后,在页面的head里用link引入---推荐方式3、外部样式表的优点:实现内容和表现的分离,提高代码的可重用性和可维护性---可以准备多套样式---换皮肤/主题4、样式表,如果重复定义a、样式不同,取并集b、相同,按照优先级内联>内部或者外部c、相同优先级下,以最后定义的为准javascript

一:javascript概述1、什么是javascript:一种基于对象和事件驱动的解释性脚本语言,嵌入到网页上2、历史:js代码---W3C定义了标准规范的js代码3、浏览器兼容问题:标准代码,个别情况个别对待4、怎么写方式一:直接写在事件里,仅限于代码很少方式二:写在head的script里,仅限于当前页面重用方式三:写在js文件里,html页面的head里用script引入5、js的特征53………………………………………………..一种解释性的脚本语言,适用于为网页添加动态效果和交互行为6、错误:二:基础语法1、写法:以;结束,大小写敏感2、标识符:以字母、数字和下划线还有$组成,不以数字开头---不能和系统关键字重名3、变量***----声明变量,以var开始vari=1;vars=\"mary\";varb=true;js是一种弱类型的语言---变量声明时不需要确定类型,数据类型以赋值为准4、数据类型简单类型:string、number、bool特殊类型:null、undefinedvari;alert(i);---undefined复杂类型:对象5、(string)字符串类型vars=\"mary\";vars='mary';特殊字符:使用转义---转换为普通字符,解决汉字的问题\"hello\\'w\\\"or\\nld\"alert(\"一\");alert(\"\一\");[\一-\龥]6、number:并不区分整数和小数varn=12;varn1=12.34;7、bool:true(1)和false(0)8、数据类型之间的转换varn=18;varname=\"mary\";隐式转换(直接)string+number--number+bool--bool+bool--string+bool--显式转换(调用方法)***xxx.toString()parseInt(xxx);parseFloat(xxx);--确实能转,如果不能转,将返回NaNNaN---notanumber判断isNaN(\"aaa\")--isnotanumber--返回bool9、运算符算术运算符、比较、逻辑、位。。。特殊一:***===严格相等:值和类型if(a==b)if(a===b)servlet

1、web开发的背景知识(了解)b/s架构:特点:客户端使用浏览器,服务器端使用web服务器,客户端与服务器端使用标准化的http协议来进行通信。优点:与c/s架构相比,有两个优点:a,客户端不需要单独安装b,开发相对简单(因为c/s架构需要自定义协议,开发相应的通信模块,而b/s使用标准化的http协议,浏览器与web服务器都提供了相应的通信模块)。2、什么是servlet?sun公司制订的一种用来扩展web服务器功能的组件规范。(1)扩展web服务器功能早期的web服务器(iis,apachews等等),只能够处理静态资源的请求(即需要事先将html文件写好并保存到web服务器相应的文件夹下面),不能够处理动态资源的请求(即需要进行计算,然后生成相应的html)。a,可以使用cgi程序来扩展。cgi程序可以使用c/c++,perl等语言来开发,但是,程序比较复杂,而且可移值性不好,性能也比较差,现在用得不多。b,servlet可以扩展这些web服务器的功能。浏览器发送请求给web服务器(apachews),web服务器检查请求是否需要计算,如果需要,web服务器会访问servlet容器,servlet容器会调用servlet来进行计算。(2)组件规范1)什么是组件?符合一定规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。2)什么是容器?符合一定规范,为组件提供运行环境及相应服务的程序。3、如何开发一个servlet?step1,先写一个java类,实现Servlet接口或者继承HttpServlet类(一般会使用继承的方式)。step2,编译step3,打包(创建一个具有如下结构的文件夹)appname(应用名称)WEB-INFclasses(放.class文件)lib(可选,放.jar文件)web.xml(部署描述文件)step4,部署将step3创建好的文件夹拷贝到servlet容器指定的某个文件夹下面(比如,如果容器是tomcat,可以拷贝到webapps文件夹下面)。注意:也可以使用jar命令将step3创建好的文件夹压缩成一个以\".war\"为后缀的文件,然后拷贝。step5,启动servlet容器,访问servlethttp://ip:port/appname/servlet-url6、servlet是如何运行的?比如,在浏览器地址栏输入http://ip:port/web01/hellostep1,浏览器依据ip,port建立与servlet容器(容器同时也是一个简单的web服务器)之间的连接。step2,浏览器将请求数据打包(按照http协议,该数据包也称为请求数据包)。step3,浏览器发送请求数据包给容器。step4,容器收到请求数据包之后,解析该数据包,并将解析之后得到的数据封装到request(请求数据包)对象上,同时,容器还要创建response对象。step5,容器要依据请求资源路径(\"/web01/hello\")找到servlet的配置,然后创建servlet对象。step6,容器调用servlet对象的service方法。容器会将事先创建好的request,response作为参数传递给service方法。step7,在service方法里面,可以通过request对象获得请求参数,并进行相应的处理,处理结果会放到response对象里面。step8,容器从response对象中取出处理结果,然后打包(按照http协议,该数据包称之为响应数据包)。然后将响应数据包发送给浏览器。step9,浏览器收到响应数据包之后,解析处理结果,然后生成相应的页面。http://localhost:8080/web01/hello?uname=jetty?后是请求参数,其中uname是参数名,jetty是参数值。JSP

1、什么是jsp(javaserverpagejava服务器端页面技术)?1)定义sun公司制订的一种服务器端动态页面生成技术规范。2)理解a,因为直接使用servlet,虽然也可以生成动态页面,但是比较繁琐(需要使用out.println语句),并且维护困难(如果页面发生改变,必须修改java代码),所以,sun在servlet规范制订之后,又添加了jsp规范。b,jsp其实就是一个以\".jsp\"为后缀的文本文件,该文件会被容器(比如tomcat)转换成一个servlet。2、如何写一个jsp文件?step1,写一个以\".jsp\"为后缀的文件。step2,在该文件里面,可以添加如下的内容:1)html(css,javascript)直接写即可(不用out.println)2)java代码a,java代码片断<%java代码;%>b,jsp表达式<%=java表达式%>3)指令a,什么是指令?告诉容器,在容器将.jsp文件转换成.java文件时做一些额外的处理,比如导包。b,基本语法<%@指令名称属性名称=属性值%>c,page指令import属性:导包,比如<%@pageimport=\"java.util.*\"%><%@pageimport=\"java.util.*,java.text.*\"%>contentType属性:设置response.setContentType的内容,比如<%@pagecontentType=\"text/html;charset=utf-8\"%>pageEncoding属性:告诉容器jsp文件的编码。因为容器需要读jsp文件的内容(也就是说,需要解码,某些容器,如果没有该属性,默认情况下会按照iso-8859-1去解码,会产生乱码问题)。4)隐含对象a,什么是隐含对象?在jsp文件里面可以直接使用的对象,比如out,request,response。b,为什么可以直接使用这些隐含对象?因为容器会自动添加创建这些对象的语句。3、jsp是如何运行的?step1,容器要将.jsp文件转换成.java文件(其实就是一个servlet类)。a,html(css,javascript)--->在service方法里,使用out.write输出。(out.write方法会将null转换成\"\"输出)----->在service方法里,照搬。----->在service方法里,使用out.print输出。b,<%c,<%=%>%>step2,容器调用servlet来处理请求。4、转发(1)什么是转发?一个web组件(servlet/jsp)将未完成的处理通过容器交给另外一个web组件继续完成。最常见的情况:一个servlet获得数据,然后转发给一个jsp来展现这些数据。(2)如何转发?step1,绑订数据到request对象上。request.setAttribute(Stringname,Objectvalue);说明:name:绑订名称value:绑订值step2,获得转发器RequestDispatcherrd=request.getRequestDispatcher(Stringuri);说明:url:转发的目的地step3,转发rd.forward(request,response);request对象的其它和绑订相关的方法:依据绑订名称找到绑订值,如果找不到对应的值,返回null。Objectrequest.getAttribute(Stringname);解除绑订request.removeAttribute(Stringname)(3)转发的特点a,转发之后,浏览器地址栏的地址不变。b,转发的目的地必须是同一个应用内部某个web组件的地址。Ajax

1、ajax是什么?(asynchronousjavascriptandxml异步的javascript和xml)ajax是一种用来改善用户体验的技术,其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest对象,一般称之为ajax对象)异步地(当ajax对象向服务器发请求时,浏览器不会销毁当前页面,用户仍然可以对当前页面做其它的操作)向服务器发送请求。服务器返回的数据不再是一个完整的新的页面,而是部分数据,利用这些数据,更新当前页面。整个过程,页面无刷新,不打断用户的操作。2、如何获得ajax对象?XMLHttpRequest没有标准化,要区分浏览器。functiongetXhr(){varxhr=null;if(window.XMLHttpRequest){//非ie浏览器xhr=newXMLHttpRequest();}else{//ie浏览器xhr=newActiveXObject('MicroSoft.XMLHttp');}returnxhr;}4、编程步骤step1,获得ajax对象。比如:varxhr=getXhr();step2,使用ajax对象发请求。1)发送get请求xhr.open('get','check_username.do?username=tom',true);xhr.onreadystatechange=f1;xhr.send(null);注意:true:发送异步请求(ajax对象发请求时,浏览器不会销毁当前页面,用户仍然可以做其它操作)。false:发送同步请求(ajax对象发请求时,浏览器不会销毁当前页面,浏览器会锁定当前页面,用户不能操作当前页面)。step3,编写服务器端的处理代码,一般不再需要返回一个完整的页面,只需要返回部分数据。step4,编写事件处理函数functionf1(){if(xhr.readyState==4){vartxt=xhr.responseText;更新当前页面}}jQuery

1、jQuery介绍www.jquery.com(1)特点利用选择器查找要操作的节点,并且会将这些节点封装成一个jQuery对象。通过调用jQuery对象的属性或者方法来实现对底层节点的操作,这样做的好处有两个:一是兼容性更好了,另外,代码得到简化。(2)编程步骤step1,使用jQuery选择器查找要操作的节点。step2,调用jQuery对象的方法或者属性。(3)一个简单例子first.html(4)jQuery对象与dom对象如何相互转换?1)dom对象--->jQuery对象$(dom对象)2)jQuery对象--->dom对象2、选择器(1)选择器是什么?jQuery借鉴了css选择器的语法,用来查找要操作的节点。(2)基本选择器selector/s1.html#id.classelementselect1,select2..selectn*(3)层次选择器selector/s2.htmlselect1select2:查找所有的后代select1>select2:只查找子节点select1+select2:下一个兄弟select1~select2:下面所有兄弟(4)过滤选择器1)基本过滤选择器selector/s3.html:first:last:not(select)排除满足select要求的节点:even:odd:eq(index):gt(index):lt(index)2)内容过滤选择器selector/s4.html:contains(text)匹配包含给定文本的元素:empty匹配所有不包含子元素或者文本的空元素:has(select)匹配含有选择器所匹配的元素的元素:parent匹配含有子元素或者文本的元素3)可见性过滤选择器selector/s5.html:hidden匹配所有不可见元素,或者type为hidden的元素:visible匹配所有的可见元素4)属性过滤选择器selector/s6.html[attribute][attribute=value][attribute!=value]5)子元素过滤选择器selector/s7.html:nth-child(index/even/odd)注意:下标从1开始。6)表单对象属性过滤选择器selector/s8.html:enabled:disabled:checked:selected(5)表单选择器:input:text:pasword:radio:checkbox:submit:image:reset:button:file:hidden3、dom1)查询dom/d1.html找到节点之后,可以读取或者修改节点的html内容,文本,值,属性。a,html()读取或者修改节点的html内容b,text()读取或者修改节点的文本内容c,val()读取或者修改节点的值d,attr()读取或者修改节点的属性2)创建dom/d2.html$(html);3)插入节点append():作为最后一个孩子添加进来。prepend():作为第一个孩子添加进来。after():作为下一个兄弟before():作为上一个兄弟4)删除节点dom/d3.htmlremove()remove(selector)empty():清空节点5)数据与行为分离dom/d4.htmld5.html即不用修改html文件,通过引入外部的js文件来为页面提供动态效果。$(fn);fn是一个函数的名称或者$(function(){//当整个页面加载完毕,会执行这儿的代码。});6)复制节点dom/d6.htmlclone()clone(true):使复制的节点也具有行为(将事件处理代码一块复制)7)属性操作读取:attr('id');设置:attr('id','d1')或者一次设置多个attr({\"id\":\"d1\删除:removeAttr('id')8)样式操作dom/d7.html获取和设置:attr(\"class\attr(\"style\追加:addClass('')移除:removeClass('')或者removeClass('s1s2')或者removeClass()//会删除所有样式切换样式:toggleClass,有该样式,就删除,没有,就添加。是否有某个样式hasClass('')读取css('')设置css('','')或者css({'':'','':''})//设置多个样式9)遍历节点dom/d8.htmlchildren()/children(select):只考虑子元素,不考虑其它后代元素。next()/next(select):下一个兄弟prev()/prev(select):上一个兄弟siblings()/siblings(select):其它兄弟find(select):从当前节点向下查找所有的后代(满足select要求的)parent():父节点struts

1、什么是Struts?Struts是基于MVC的轻量级框架,主要处理请求分发的问题,重心在控制层和表现层。--基于MVC:实现了MVC,满足MVC的设计思想。--轻量:侵入性低,是我们业务代码对框架的依赖程度很小,既很少需要importStruts包。--框架:基础的代码,引入之后可以减少我们的开发工作量,提高开发效率。2、为什么用Struts?1)对比Servlet--Servlet优缺点优点:直接、效率高缺点:业务代码耦合度高,不便于维护--Struts优缺点优点:将业务代码解藕,便于维护缺点:效率低--Servlet中的MVC与Struts中的MVC,参考图理解2)对比其他框架--健壮性(4*):稳定程度--易用性(4*):好学、好用--扩展性(5*):就软件未来而言,将来有更复杂的需求时,是否有处理方式。--侵入性(4*):与依赖性/耦合度成正比3、Struts发展史1)Struts1,结构简单、易用,由Apache推出。与Servlet/JSP耦合紧密,导致发展受限。2)WebWork,技术先进,核心是XWork。3)Struts2,基于XWork,在此基础上发展形成。面试题:Struts1和Struts2的区别和联系?--Struts2与Struts1差别很大,不能理解为Struts1的升级版本。--Struts2以XWork为核心,可以理解为WebWork的升级版本。*4、Struts2使用步骤,HelloWorld--使用版本Struts2.1.81)创建web项目2)导包3)配置前端控制器(filter)--在web.xml中配置filter--控制请求分发的控制器4)创建struts.xml--放在src根路径--名称必须是struts.xml5)*创建Action--控制业务流程的控制器6)*创建JSP7)*配置struts.xml--体现请求和Action的关系--体现Action和JSP的关系*5、扩展HelloWorld目标:掌握Action与JSP页面数据交换的方式。1)Action如何向页面发送数据?--通过EL表达式2)*Action如何从页面接收数据?--注入:调用JavaBean的set方法,为其属性赋值的行为称之为注入。*a、基础属性注入--Action中定义基本类型的属性,给它set方法--表单中,文本框的name=\"属性名\"--表单提交时,Struts2会自动将表单的内容,传递给Action里的属性。--Struts2会自动初始化属性--注意:Action跳转的页面,EL表达式${属性名}*b、域模型注入--Action中定义JavaBean类型的属性,给他set方法--表单中,文本框的name=\"对象名.属性名\"--表单提交时,Struts2会自动将表单的内容,传递给Action里定义的对象--Struts2会自动的初始化对象--注意:Action跳转的页面,EL表达式${对象名.属性名}c、模型驱动注入(了解即可)--需要Action实现接口ModelDriven*6、使用Struts2实现NetCTOSS中的资费列表--准备:分析需求、了解表结构、建表1)创建web项目2)导包3)前端控制器(filter)4)创建struts.xml5)创建Action-->filter->struts.xml->Action-->DAO-->DBUtil,Entitya、Entityb、DBUtilc、DAOd、Action6)JSP7)配置struts.xmlHibernate

1、什么是Hibernate1)Hibernate是数据访问层的框架,对JDBC进行了封装,是针对数据访问层的面向对象的解决方案。2)Hibernate允许我们直接访问对象,然后将访问自动转化为SQL去执行,从而达到间接访问数据库的目的,简化代码开发,提升开发效率。2、为什么使用Hibernate1)使用JDBC开发出现的问题--需要在代码中写大量的SQL--需要给大量的?赋值--需要将结果集转换为实体对象--在SQL中可能会写数据库特定的函数,移植性差。2)使用Hibernate可以解决上面的问题--基本上不需要写SQL,因为Hibernate可以自动生成SQL并执行--可以自动给?赋值--可以自动将结果集转换为实体对象--Hibernate提供通用的API来访问不同的数据库,移植性好。3)补充JDBC与Hibernate的优缺点a、JDBC优点:效率高b、Hibernate缺点:效率相对于JDBC要低*3、Hibernate的设计原理1)Hibernate是采用了ORM的思想,对JDBC进行的封装。2)ORM:ObjectRelationMapping,即对象关系映射,指的是Java对象和关系数据库的映射。--之前使用JDBC开发时,需要知道数据库表和实体对象的关系,以及字段和对象属性的关系,比如需要知道COST表和Cost对象的关系。那么这种关系我们之前是手动维护的,比如:cost.setName(rs.getString(\"name\"));ps.setString(2,cost.getName());--ORM思想是希望将这种关系的维护提炼出来,用一个公共的组件描述,那么在我们访问数据库时,需要使用这种关系时,可以复用基于ORM思想提炼出来的关系--正是由于存在这样通用关系的描述,Hibernate才可以让我们直接访问Java对象,从而通过关系转换成SQL自动执行。--Hibernate中将这种关系定义在XML配置文件中。4、Hibernate体系结构1)hibernate.cfg.xml是Hibernate的主配置文件,用于配置数据库连接参数,以及Hibernate框架参数。2)实体类是Java类型,用于封装表中的数据3)xxx.hbm.xml是关系映射文件,用于配置表与实体类的关系,以及表中字段与类中属性的关系。4)Hibernate底层API主要是用于解析主配置文件,以及关系映射文件,然后根据关系自动生成SQL并执行。5、Hibernate常用API1)Configuration用于解析主配置文件的2)SessionFactory用于创建Session的3)Session是数据库连接会话,相当于是数据库连接。注意:此Session和HttpSession没有任何关系。4)Transaction用于控制事务5)Query用于做特殊查询*6、Hibernate使用步骤1)导包2)引入主配置文件hibernate.cfg.xml3)创建实体类Emp4)*创建关系映射文件Emp.hbm.xml--该配置文件必须和实体类同名--该配置文件必须和实体类位于同一个包下--在主配置文件中引入该关系映射文件5)使用Hibernate的API,来进行增、删、改、查Spring

1.什么是Spring,有什么作用Spring框架属于一个解决方案框架可以对其他技术和框架进行整合应用。*好处是:将程序中的各个组件和框架技术进行解耦,便于日后系统维护,升级和扩展操作。在SSH中,会将Action,DAO组件都交给Spring框架管理,由Spring框架创建这些对象,建立这些对象关联。*2.Spring都含有哪些功能--可以创建和管理程序组件对象(相当于工厂的作用)--提供了IoC机制实现组件对象关系的解耦--提供了AoP机制实现共通组件低耦合的调用。(例如事务处理)--提供了对其他技术,例如JDBC,Hibernate,Struts等框架整合API--提供了一个SpringMVC框架实现*3.Spring基本使用1)创建和管理程序组件对象--引入SpringIOC开发包--在src下添加Spring配置文件--将Bean组件定义到Spring配置文件中--(编码)实例化Spring容器对象利用getBean获取Bean对象实例*a.控制Bean对象创建模式在使用时,可以在定义部分利用scope属性指定bean对象采用单例模式创建还是原型模式创建。scope=\"singleton\"表示单例模式(默认值)scope=\"prototype\"表示原型模式,每次调用getBean都返回一个新的Bean对象。b.控制Bean对象创建时机scope=\"singleton\"时,Bean对象是在容器实例化时创建。在中使用lazy-init=\"true\"可以将Bean创建推迟到getBean方法scope=\"prototype\"时,Bean对象是在getBean方法时创建。c.追加初始化和销毁方法在中利用init-method指定一个初始化方法。可以在对象创建之后自动调用。创建Bean对象后,会自动执行myinit方法。同理destroy-method=\"mydestroy\"在容器销毁时,也释放单例的Bean对象,此时会自动调用mydesctory方法。(该属性仅适用于singleton模式的Bean对象)2)Spring的核心IoC容器a.IoC概念InversionofControl控制反转或反向控制(控制转移)2004Martinfowler提出的IoC思想.IoC思想:两个组件之间调用(例如A调用B)原有方式是A负责创建B对象;现在变成了B对象由第三方框架或容器负责实例化,然后给A对象注入。即A对象获取B对象的方式发生了反转。IoC技术方案有两种:依赖注入和依赖查找Spring采用依赖注入技术实现IoC控制。依赖技术主要以下两种方式:--set方式注入(推荐)在A中定义setB(Bb),接收传进来的B对象--构造方式注入在A中定义构造方法publicA(Bb){}DI:DependencyInjection依赖注入b.IoC使用方法--编写Action,定义到Spring配置中--编写DAO,定义到Spring配置中--在Action中定义DAO接口类型变量和setter方法--在Action的配置中使用下面配置

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务