Java EE概念:
Java EE是一个开放的平台,它包括的技术很多,主要包括十三种核心技术(java EE就是十三种技术的总称)。建立一个整全的概念。
要成为一个java EE程序员,必须掌握的技术是java,servlet,jsp。这是基础。
只有在上面的基础上再学struts,hibernate,ejb,spring,webwork,jst等web框架。
J2ee的十三种技术(规范)
1.java数据库连接(JDBC)。——JDBC定义了4种不同的驱动:
1.JDBC-ODBC桥,
2.JDBC-native驱动桥3,JDBC-network桥4.纯java驱
动。
2.Java命名和目录接口(JNDI)(它是为了对高级网络应用开发中的使用
的目录基础结构的访问。)。
3.企业Java Beans(Enterprise Java Beans,EJB)(它提供了一个架构来
开发和配置到客户端的分布式商业逻辑,因此可以明显减少开发扩展
性、高度复杂企业应用的难度。)。
4.JavaServer Pages(JSPs)。
5.Java servlets(servlets提供的功能大部分与JSP相同,JSP中大部
分是HTML代码,其中只有少量的Java代码,而servlets则相反,它
完全使用Java编写,并且产生HTML代码。)。
6.Java IDL/CORBA(用得不多)。
7.Java 事务体系(JTA)/Java事务服务(JTS)(用得不多)。
8.JavaMail和JavaBenas激活架构(JavaBeans Activation
Framework,JAF)。(JavaMail是一个用来访问邮件服务的API)。
9.Java信使服务(Java Messaging Service,JMS)(JMS是一个用来和面
向信息的中层通信的API)。
10.扩展标记语言(Extensible Markup Language,XML)。
11.12. 13当前流行的及格框架struts+hibernate+spring(ssh).
Java ee的开发环境(eclipse)
Eclipse是一个开源的、可扩展的集成开发环境,已经成为目前最流行的j2ee 开发工具。
Eclipse安装后就可以开发java se的项目了,但不能开发java ee项目,
需要安装web开发插件(lomboz或是myeclipe)
Eclipse的官网:https://www.doczj.com/doc/3a4343374.html,
myeclipse的官网:https://www.doczj.com/doc/3a4343374.html,/
在java ee的开发中有几个重要的开发模式:
1.Model1模式
2.model2模式(model2x模式(用得少))
3.mvc模式
一、Model1模式
Model1的基础是jsp文件,它由一些相互独立的jsp文件,和其它一些java
class组成(不是必须的)。这些jsp从HTTPRequest中获得所需要的数据,
处理业务逻辑,然后将结果通过Response返回前端浏览器。
从上面分析我们可以看到model1模式可以分为两类:
1.Model1(纯jsp技术,不带任何java class)。
2.Model1(jsp+java class)。
Model1模式的缺点:
1.表现层和业务层混合在一起(乱!)。
2.在开发过程中,不利于多人协同开发。
3.不利于后期维护。
Model1模式的优点:
1.简单,开发速度较快。
2.比较适合开发小的项目。
二、model1(结合java class)开发模式,有些书上称:mv模式,即:m→model模
型(java class,业务逻辑层),v→view视图(jsp,界面层)。
1.一个数据库应一个类:ConnDB.java(得到连接)。
2.数据库中的每一张表对应两个类:(1)UserBean.java(表示users表)类。
(2)UserBeanCl.java(业务逻辑,即对users表的操作)类。
如:
login.jsp输入数据,logincl.jsp通过调用java class(模型)处理数据,wel.jsp显示数据。这是一种多么完美的开发模式。
不足之处:
1.Jsp技术主要做界面,但是logincl.jsp这里调用了java class(模型),完成对用户验证,显得有点怪怪的。
2.Wel.jsp是用于显示用户信息(显示数据),但,wel.jsp除了显示数据,还调用了java class(模型),代码的优雅就荡然无存了,也不
得于将来的分工。
3.Servlet技术处理页面的跳转是最快捷和方便的,难道我们就此不用了吗?
三、mvc开发模式:M(model模型),V(view视图),C(controller控制器)。
MVC是一个设计模式,它强制性的使应程序的输入、处理、和输出分开。使用MVC应用程序分成三个核心部件:模型、视图、控制器。它们各自处
理自己的任务。
M主要由java class来做,也可以是java bean、eib等
V由jsp来做
C由servlet来做
对上的例子进行改进:
1.增加控制器(servlet):将logincl.jsp用servlet来替代,发挥
servlet充当控制中转的优势。
2.在控制器(servlet)中去调用模型(model)去完成用户验证,并准备要
显示的用户信息数据。
MVC开发模式的总结:
处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后调用模型来处理用户的请求并返回数据,最后控制器用相应的视图显示模型返回的数据,并通过浏览器呈现给用户。
Mvc模式存在的缺点:
1.工作量增加了。
由于开发者将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而意见的。这样好像我们的工
作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。
2.不适用小型项目,否则就是机关枪打蚊子。
3.调试应用程序难度加大。
Mvc提倡模型和视图分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你
就可以毫不顾忌的重用它们了。
数据库中用户名是中文,中文乱码问题(一般是要查询数据时,有中文字符才需要转码):
当提交表单时,表单中有中文,也会产生乱码。
解决中文乱码问题,有三种方法:
1.重新转码,如,有String u=”是中文”; u=new
String(u.getBytes(“iso-8859-1”),”gb2312”);
2.使用过滤器来解决[详解]
3.通过修改Tomcat配置servlet.xml文件[不太稳定.],具体操作如下: connectionTimeout="20000" redirectPort="8443" />改为: connectionTimeout="20000" redirectPort="8443" URIEncoding=”gbk”/> 在 当request得到的是乱码时,可以这样解决(一定要这样写): name=new String(request.getParameter(“username”).getBytes(“ISO8859_1”),” gb2312”); Servlet部分 Servlet开发流程(这是servlet规范,没有理由,只有这么做) 1.在%TOMCAT_HOME%\webapps下建一个文件夹如(myWebSite),然后在该 文件夹下新建WEB-INF的文件夹下,写一个web.xml(该网站的配置信 息),建立一个classes的子文件夹,也可以从加的目录ROOT下拷贝. 2.开servlet(引入servlet-api.jar,否则编绎不了)。 3.部署你的servlet,在web.xml文件中:添加代码(看例子)。 4.启动tomcat,访问你的servlet,在浏览器的地址栏输入 http://127.0.0.1:8080/myWebSite/hello,回车就可看到servlet的 输出。 开发servlet有三种方法 1.实现接口servlet来编写 2.继承GenericServet类(该写了servlet接口,所以有和servlet相同 的方法service)。 3.继承HttpServlet类(该类有doGet,doPost方法) Servlet的生命周期 1.init()函数,用于初始化该servlet(类似于类的构造函数,该函数只 会被调用一次(当用户第一次访问该页面的servlet时被调用。)。)。 2.业务逻辑函数(如:service,doGet,doPost等方法)(当用户每访问该 servlet时,都会被调用,它有两个参数:ServletRequest—用于获取 客户端的信息,ServletResponse—用于向客户端返回信息)。 3.destroy()函数,用于销毁servlet实例(释放内存),只有如下三种情 况才会周用(1.reload该servlet(webApps),2.关闭tomcat,3.关机) 值行了这个函数后,这个网站内的所有的session和conTest都被释放, 为空。 表单提交数据get请求和post请求的区别 1.从安全方面看get 2.从提交的内容大小来看get post提交的数据理论上不受限制,但是实际编程中建议不要大于64K。 3.从请求响应速度上看get>post,get要求服务器立即响应请求,而post 请求可能形成一个队列请求。 从以上几点看,表单提交方式(method)建议用post 在sevlet中打印的html语句,可以不加引号 同一用户的不同页面共享数据的四种方法 1.Cookie(小甜饼,在javax.servlet.http.*;这个包里面)(服务器在客户端保存用户的信息,比如登录名,密码…就是cookie,数据量并不大, 服务器端在需要的时候可以从客户端读取。)。 Cookie的使用方法:①Cookie有点像一张表,分两列一个是名字,一个是值,数据类型都是String。②创建Cookie(在服务器端创建):Cookie c=new Cookie(String name,String val);③将Cookie添加到客户端: response.addCookie(c); ④读取Cookie(从客户端读到服务器): Cookie[] allCookie=request.getCookies();c.getName();c.getValue();方法 读取⑤修改Cookie存在时间:c.setMaxAge(30);单位秒,为负则该 cookie不会存储,为0则删除该cookie,如果不设置存在时间,那第该 Cookie将不会保存。 2.sendRedirect(地址跳转,注意中文处理) 3.Session(会话技术)(当用户打开浏览器,访问某个网站时,服务器就会在服务器内存为该浏览器分配一个空间,该空间被这个浏览器独占, 这个空间就是session空间,其中的数据默认存在时间为30min,可以 修改(在conf—web.xml中修改))。 Session的使用方法:①得到session:HttpSession hs=request.getSession(true); ②向session添加属性:hs.setAttribut(String name,Object val);③从 session得到某个属性:String name=hs.getAttribute(String name); ④从session删除掉某个性性:hs.removeAttribute(String name);⑤ 修改session的存在的时间:hs.setMaxInactiveInterval(20);单位秒, 为负则永远不超时,为0则马上超时。 因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用。 注意:以文件—新建—窗口,的方式打开窗口,session的ID是不变的,也就是同一个session空间 4.隐藏表单提交(form)(input type=hidden name=““ value=““),在提交该表单时,能一并提交过去。(获取方式: req.getParameter(String name);)。 Cookie VS session 1.存在的位置:cookie保存在客户端,session保存在服务器端。 2.安全性:比较而言,cookie的安全性比session要弱。 3.网络传输量:cookie通过网络在客户端与服务器端传输,而session 保存在服务器端,不需要传输。 4.生命周期(20分钟为例)①cookie的生命周期是累计的,从创建时,就开始计时,20分钟后cookie生命周期结束,cookie就无效。②session 的生命周期是间隔的,从创建时开始时计时,如在20分钟,没有访问 过session,那么session信息无效,如果在20分钟内,比如第19分 钟时,访问过session,那么它的生命周期将重新开始计算。③另外, 关机会造成session生命周期结束,但是对session没有任何影响。 使用ServletContext(和session一样,但是它所有的客户都可以访问)。 1.得到ServletContext实例:this.getServletContext(); 2.你可以把它想像成一张表,这个和Session非常相似:每一行就是 一个属性。添加属性:setAttribute(String name,Object ob); 得到值:getAttribute(Stringname); 返回Object。 删除属性:removeAttribute(String name); 3.生命周期:ServletContext中的属性的生命周期从创建开始,到 服务器关闭而结束。 4.使用ServletContext:的注意事项:因为存在ServletContext中 的数据会长时间的保存在服务器,会占用内存,因此我们建议不要 向ServletContext中添加过大的数据……. 切记 Servlet操作数据库注意事项 需要将连接数据库的3个jar包,拷贝到tomcat服务器 具体有两种方法可以: (1).将.jar包拷贝到%tomcat%/lib文件夹 (2).或者在你的webapps目录的WEB-INF文件夹下建立一个lib文件夹, 然后 把3个jar包拷贝到lib文件夹下 两种方法的区别: 第一种:所有webapps都可以使用3个jar包[公用库]。 第二种:只有放如jar包的那个webapps能使用jar包[独用lib库]。 特别要注意sql 注入漏洞:用户名和密码不能同时查询,可先用用户名查出密码,再用查出来的密码与输入的密码进行比较。 分页技术(方法) 我们先讲讲分页的算法: 我们需要定义四个量,它们有各自的用处,如下: int pageSize:每页显示多少条记录 int pageNow:希望显示第几页 int pageCount:一共有多少页 int rowCount:一共有多少条记录 说明: pageSize是指定的(常量)。 pageNow是用户选择的(变量)。 rowCount是从表中查询得到的(是个变量)。 pageCount是计算出来的,该计算式为: if(rowCount%pageSize==0) { pageCount=rowCount/pageSize; } else { pageCount=rowCount/pageSize+1; } 然后查询数据库,我们可能很自然的想到,用 select 字段列表 from 表名 where id between ? and ? 但是如果表的某个id被删除了,那么某页可能就会少一条记录。 因此最终解决方法是如下语句: select top pageSize 字段名列表 from 表名 where id not in (select top pageSize *(pageNow-1) id from 表名)翻页的链接可以用下拉框或输入文本 网站框架问题分析 1界面和业务逻辑放在一起(model1模式),有以下问题: (1).有很多页面逻辑相似(如:操作数据库),有重复代码(一般 一段代码重复了三次或三次以上,就应该把这段代码封装到一 个函数里面去)。 (2).整个框架没有清晰的层次关系,显得非常乱。 (3).代码一点也不优雅,可读性差,可维护性差。 2.进行分层(界面层、业务逻辑层)[mv模式](m—>model模型,v—>view 视图) (1).将常用的代码(比如边接数据库),封装到类中。(现在java 中javaBean一般与数据库中表映射,充当表,如 (UserBean.java(表示表),UserBeanCl.java(业务逻辑), ConnDB.java(得到连接)。))。 3.在UserBeanCl中,查询数据库,返回查询结果集时,要返回ArrayList 集合,而不是直接返回ResultSet,原因如下:(rs代表ResultSet 的一个对象) (1).如果返回ResultSet,那么我们在使用ResutlSet时,是不能关 闭该RestultSet相互关联的数据库连接等资源,从而造成资源浪 费。 (2).如果返回ResutlSet,我们只能使用rs.getInt(?), rs.getString(?)…,这样的方法来得到结果,代码的可读性不好, 维护起来不方便。 (3).返回ArrayList集合方法(ArrayList作为中转,就可以尽快的 关闭rs,数据库连接,同时更能体现面向对象编程,代码可读性 更好。)如下: ①将rs中的每一条记录,封装成一个UserBean对象ub。 ②将封装成一个UserBean对象ub放入到ArrayList集合中,利 于管理。③从ArrayList结合中取出ub,然后使用。 Servlet中操作文件(和java 一样) tomcat的配置: 1.如何修改tomcat的端口(浏览器默认端口:80,可以不写) (1)需要启动两份tomcat服务器、服务占用了8080端口时可改 (2)修改端口方法:修改%timcat%/conf/server.xml文件中 port=“8080”数据修改成你需要的端口即可。 (3)端口号,是用两个字节存放,范围在1~65530,但是1~1024 是有名端口,很有可能被用,所以尽量设大一些。 2.如何设置虚拟目录 (1)tomcat所在的磁盘空间不够用了、为了统一管理,希望放在某 个特定的目录下,而不是默认目录。 (2)修改方法:修改%timcat%/conf/server.xml文件,在适当的位 置( path=“/mysite(站点文件夹名)” docBase=“c:\mysite(站点 目录)” debug=“0”/> 3.如何给tomcat的管理员设置密码 (1)修改方法:修改%timcat%/conf/tomcat-users.xml文件中可以 给管理员设置密码,密码设置可以防止非法用户远程登录到 tomcat。 (2)在默认情况下,管理员的密码是空密码,这样不法分子可能远 程发布一个站点,并在某个servlet中加入一些可怕的语句(比 如重启、关机…)。 (3)利用密码为空搞破坏,步骤如下: ①利用jdk自带的jar工具将有破坏的站点打包成*.war文 件。使用jar工具需要配置jdk的环境变量 path=%JAVA_HOME%/bin; 或者在你编绎时写入 set path=%path%;你的jdk目录\bin,这样即可在任何目录下使 用jar命令,然后切换路径到需要打包的那个文件夹目录 下;打包的命令是:jar –cvf war 文件名 *.* ②通过tomcat管理页面将站点发布到tomcat ③访问有破坏的代码的servlet,这样你就被黑了。 4.如何设置数据源和连接池(公司常用!)(因为JDBC连接速度太慢) 没测试出来,网上查 (1)为什么使用:每次操作数据库,需要加载驱动才能得到一根连 接,然后返回结果,加载驱动是要花时间的。 (2)解决方法:配置”连接池”与”队列池”。”连接池”事先与 数据库连接好了,并有了几根(可配置)连接,如果连接也中有 空闲的连接,tomcat就分配给请求客户端;如果没有空闲的连 接,请求客户端将会在队列池中等待(时间可配置),直到有连 接。因为直接取连接,所以速度快。 (3)修改方法:有两种方法(1)通过tomcat管理界面来配置(2)修 改配置文件。修改%timcat%/conf/server.xml文件,在指定的 位置添加代码即可: //******************************************************* ******* type="javax.sql.DataSource"/> //******************************************************* ******* 如果要加中文注释,则必需得在最前加如下语句: //******************************************************* ****** (4)如何使用:如果使用连接池的方式来连接数据库,那么就要这 样: Context ctt=new javax.naming.InitialContext(); DataSource ds=(DataSource)ctt.lookup("java:comp/env/数据源的名");//粉红//色的是:得到配置环境保护,这是固定 写法 Connection Ct=ds.getConnection(); jsp部分 jsp的概述 jsp是servlet技术的补充,访问jsp的过程:如果是第一次访问,jsp文件被服务器翻译成一个对应的java文件(servlet),然后,再被编译成.class文件并加载到内存中。如果是以后访问jsp,那就直接调用内存中的jsp实例,所以,第一次访问jsp慢,后面访问jsp的速度就会变快了。 为什么会出现jsp技术? 程序员在开发过程中,发现servlet做界面非常不好→jsp 一个公式:jsp=html+java片段+jsp标签+javascript(css)→比较综合 jsp功能的强大是因为可以与javabean结合使用(即:jsp作前台(界面),javabean作后台(逻辑层))。 Jsp+javabean的基础上再结合servlet,就会构成mvc的开发模式,Mvc模 式是目前软件公司中相当通用的开发模式,是重点 Jsp的基本语法(冒号后面是举例) (1)指令元素---用于从jsp发送一个信息到容器,比如设置全局变量, 文件字编码,引入包等,主要包括如下: ①page指令:<%@page contentType=”text/html”;charset=gb2312%> ②include指令:<%@include file=”filename”%> ③taglib指令---这个指令允许在jsp页面使用自定义的标签: (2)脚本元素---在一定程度上可能理解就是java的片段scriplet ①scriplet:<%java代码,可以和写java一样写%> ②表达式:<%=java表达式%> <%=rs.getString(1)%> (3)Declaration声明:<%!变量声明 %>比如:<%!int count=10%> <%!函数声明 %>比如: <%! int jssuan(int num) { int result=0; for(int i=0;i {result=result+i;} } %> (4)动作元素---动作元素是使用xml语法写的,是jsp规定的一系列 标准确性动作,在容器处理jsp时,当容器遇到动作元素时,就执 行相应的操作。常用的几个如下: ① ② ③ 结合使用,如: value=”parameterValue”/> parameterValue”> ④ ⑤ ⑥ ⑦ ⑧ (5)jsp的九大内置对象(可以直接使用,不用创建。) ①out (是servlet中如:PrintWriter out=res.getWriter();)// 向客户端输出数据,字节流,如:out.println(“”); ②request //接受客户端的http请求,如: getParameter(String name); //name表示表单的参数名 getParameterValues(String name); //使用得到是String [] setAttribute(String name,Object obj); //设置名字为name 的obj,值为obj getAttribute(String name); //返回由name指定的属性值 如果不存在就返回null getCookie(); ③response //封装jsp产生的回应,如: addCookie(Cookie cookie); sendRedirect(“welcome.jsp”); ④session(是servelt中HttpSessio类的实例) //用于保存用 户的信息,跟踪用户的行为 setAttribute(String name,Object obj); getAttribute(String name); ⑤application //多个用户共享该对象,可以做计数器 ⑥pageContext //代表jsp页面的上下文 ⑦exception //代表运行时的一个异常 getMessage(); ⑧page //代表jsp这个实例本身(使用比较少)。 ⑨config //代表jsp对应的servlet配置,可以得到web.xml 中的参数 jsp与servlet的区别: (1)jsp和servlet是对应关系:jsp文件被服务器翻译成一个对应的 servlet文件并编译成.class文件,对应的servlet文件放在work目 录下。 (2)jsp是以servlet为基础的 (3)jsp文件改变时,服务器能自动重新加载该文件,不需要重启服务器。 发送电子邮件(javamail)到用户信箱 Js中验证字符串是否为数字:(1)可以Math.round(num)!=num (2)使用正则表达式做项目(网上商城): 一.系统分析与设计: 1.需求分析: i.系统描述:[系统可以做什么]; 电子商声场包括两个基本本部分,一个是前台销售程序,一个是后台管理程充。 用户可以在前端浏览,搜索商品,能够看到最新的公告(如活动、物价商品), 用户可以使用购物车购买商品,可以对入入购物车的商品进行处理, 如修改数据量,从购物车中去除商品等,用户购完商品必须到服务台 结帐,也叫下定单,用户下完订单,可以打印或E-mail保留订单, 以便收到商品时查对; 后台管理程序,商家在此管理本企业的相关信息发布,录入,更改商品细信息,订单查询处理,并管理在商城里注册的用户。 ii.角色(按照类来划分用户): 1.前端用户 2.系统管理员:可以细化为:商品和公告管理者:订单管理者 iii.用例识别: 在角色的基础上,可以识别出与角色相关的用例。 前台用户: 系统管理员: 2.用例图 3.功能模块 做项目的步骤: 1.界面(模仿)。 2.数据库(表的设计)[界面(功能)--→猜出表来??](用 户表和商品表)。 3.建立web工程,testShopping 4.一步一步的画当前流程图 5.开始写主页面(index.jsp)[界面用dw,界面我使用”死去 活来”法,即先是静态的,然后才连接数据库,把它写活。], 在dw中我们建html--→在myeclips中我们建立jsp。在 开发界面时,我们使用table+css方式布局。在table+css 方式布局中,常驻用的一个技巧是:在某行列中嵌入一个表 格,可做精确布局。 CSS:是层叠样式表:控制网页的字体、颜色、大小、背景、边 框……。 先会用,再会做。(flash,javascript,ps) 6.把静态的页面向动态的页面修改[死去活来法]。 7.Mvc 模式写 model和servlet部分的开发。 8.HashMap的集合 a.hashmap就像一张表 b.key值是不能重复 c.key值和value值,可以是java的object类型 hashmap充当购物车是很好 key值-------→书的id values值-------→书的数量 hashmap提供了一堆好的函数 select * from goods goodsId in(1,2,3,5) 9.对购物车可以增加,删除,清空,修改数量 为了让servlet得到货物的id 的数量,可使用隐藏表单 10. a.设计订单(怎么设计???) 表的设计:如设计定单表:如果设计为如下: 定单表(orders) ordersId (订单号) userId (用户 id) goodsId (商品 id) Nums (数 量) orderDate (时间) payMode (付款方 式) isPayed (付款 否) totallPrice (总价) 13532007-8-9货到付 款 否890 13442007-8-9货到付 款 否890 13332007-8-9货到付 款 否890 13242007-8-9货到付 款 否890 以上订单表,很容易操作,但是出现在数据冗余。 解决方法是:把重复的字段,单拿出来做一张表(订单表),把不重复的字段单拿出来做一张表(订单细节表)。如下图,两个表 订单表(orders) ordersId (订单号) userId (用户id) orderDate (时间) payMode (付款方式) isPayed (付款否) totallPrice (总价) 122007-8-9货到付款否890 订单细节表(orderDetail) ordersId(订单号) goodsId(商品id) Nums(数量) 153 144 133 124 这是就很好的解决了: 数据表的设计模式:表和表之间有多对多的关系时,就应当使用中间表来解决数据冗余的问题。 总结:通过定单细节表,把订单表和货物表的多对多的关系,简化成了一对多的关系,从机达到解决数据冗余的问题。 批量操作数据库:new Statement().addBatch(“sql语句”); HTML 一、HTML有关知识点 1.html介绍 html是一种标记语言,主要的用途是开发网页,使用html可以展现文字、图片、视频、声音,html是我们web开发(网站开发)。 2.html可以做什么 ?html可以编写静态网页 ?该静态网页可以包括文字、图像、动画、声音、表格、链接。从而构成一个个漂亮的网页 3.Html发展历史 4.Html的基本结构 5.是标记(也叫元素),标记的一般格式: <元素名[属性=“属性值”]>元素内容标签> 如果没有内容可以用:<元素名[属性=“属性值”]/> 6.Html实体标记 7.Html常用标记 ?html超链接 ●_blank 新的窗口 ●_self 本窗口 ●_parent 父窗口 ●_top整个浏览器窗口 ?html图像元素 ?html表格 J2EE面试题集锦(附答案) (1)JNDI(2)JMS(3)JTA(4)JAF(5)RMI7.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别.8.XML的解析方法9.什么是Web Service?10.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?11.JSP中动态INCLUDE与静态INCLUDE的区别?二、Java编程与程序运行结果1.Java编程,打印昨天的当前时刻2.文件读写,实现一个计数器答案:1.答:T T F F F F T2.答:(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见)3.答:HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的.4.答:forward: an internal transfer in servletredirect: 重定向,有2次request,第2次request将丢失第一次的attributs/parameters等5.答:实现J2EE 规范中web协议的应用.该协议定义了web程序的运行时环境,包括:并发性,安全性,生命周期管理等等.6.答:(1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一 一、选择: 1) 在三层结构中,数据访问层承担的责任是(B) a) 定义实体类 b) 数据的增删改查操作 c) 业务逻辑的描述 d) 页面展示和控制转发 2) 下面关于数据持久化概念的描述,错误的是(D a) 保存在内存中数据的状态是瞬时状态 b) 持久状态的数据在关机后数据依然存在 c) 数据可以由持久状态转换为瞬时状态 d) 将数据转换为持久状态的机制称为数据持久化 3) 下面关于Hibernate的说法,错误的是(C) a) Hibernate是一个“对象-关系映射”的实现 b) Hibernate是一种数据持久化技术 c) Hibernate是JDBC的替代技术 d) 使用Hibernate可以简化持久化层的编码 4) Hibernate配置文件中,不包含下面的(A) a) “对象-关系映射”信息 b) 数据关联的配置 c) show_sql等参数的配置 d) 数据库连接信息 5) 在Hibernate关系映射配置中,inverse属性的含义是(B)。 a) 定义在 Linux视频教程(韩顺平)听课笔记1 (RedHat) 1、老师联系方式:hanshunping@https://www.doczj.com/doc/3a4343374.html, 2、linux for工作 (1)linux系统管理员——linux系统的维护、配置等 (2)linux程序员——需c/c++、java,php、jsp等 ①linux软件工程师(pc) ②linux嵌入式开发(单片机、芯片) 3、学习linux的步骤 (1)第一阶段:linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat,mysql...和linux基本操作 (2)第二阶段:加厚c语言功底《c专家编程》或是java语言 (3)第三阶段:学习unix环境高级编程《unix环境高级编程》 (4)第四阶段:linux应用系统开发/linux嵌入式开发 4、计算机学习的正确道路 5、推荐书籍 -《鸟哥的Linux的私房菜基础学习篇》鸟哥、许伟、林彩娥等编著 -《Linux编程从入门到精通》宫虎波编著 -《Linux内核完全剖析》赵炯编著 6、关机命令 shutdown -h now立即进行关机 shutdown -r now现在重新启动计算机 -t sec : -t后面加秒数,即”过几秒后关机” -k: 不是要真的关机,只是发送警告信息 -r: 在将系统的服务停掉之后就重新启动 -h: 将系统服务停掉后,立即关机 -n: 不经过init程序,直接以shutdown关机 -f: 关机并启动之后,强制略过fsck的磁盘检查 -F: 系统重新启动之后,强制进行fsck的磁盘检查 -c: 取消已经在进行的shutdown命令内容 reboot 现在重新启动计算机 7、用户登录 登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,难免操作失误。可以利用普通用户登录,登录后再用“su -”命令来切换成系统管理员身份。 8、进入桌面(命令行界面进入图形界面) startx 9、用户注销 在提示符下输入logout即可。 10、vi进行开发java和c/c++程序 -java程序 -vi Hello.java -输入i,进入到插入模式,写好代码 -输入Esc键,进入命令模式 -输入冒号:[wq 表示退出保存,q!表示退出不保存] -编译javac Hello.java -运行java Hello -c程序 -gcc o自定义文件名Hello.cpp[参数o表示可自定义生成的out文件名,否则默认为a. out] 顺平j2ee系列教程--玩转oracle10g学习笔记 引言: 数据保存问题? 可使用文件保存和数据库保存。 使用文件保存数据存在几个缺点: 1、文本的安全性问题; 2、文件不利于查询和对数据的管理; 3、文件不利于存放海量数据; 4、文件在程序中控制不方便。 为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。 数据库 1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据; 2、数据存放在数据库中。 数据库服务器、数据库和表的关系 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。 为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如图所示: 为什么选择oracle--性能优越 概述:目前主流数据库包括 微软: sql server和access 瑞典MySql: AB公司mysql ibm公司: db2(处理海量) 美国Sybase公司: Sybase ibm公司: informix 美国oracle公司: oracle 做项目时应当如何选择数据库? 1、标的(项目预算); 2、功能的要求; 3、并发数(多少人用); 4、安全、稳定性。 5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window) oracle数据库的认证 oca(oracle certified associate)初级认证 ocp(oracle certified professional)中级认证 ocm(oracle certified master)高级认证 oracle10g安装步骤: 1、安装文件 2、把10201_database_win32.zip文件copy到没有中文的路径下 3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载 4、将压缩包解压后,双击setup.exe文件进行安装。 说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到 一、填空题 发布到服务器上的组件除包含自身实现的代码文件外,还要包含一(XML)部署描述文件。 Java EE技术框架可分为三部分:组件技术、(服务技术)、通信技术。 Servlet 最大的用途是通过(动态响应)客户机请求来扩展服务器功能。 表单数据的提交方法有两种,(Post)方法和Get方法。 (Filter)拦截请求和响应,以便查看、提取正在客户机和服务器之间交换数据。 (Listener)实现了Servlet的事件驱动。 JSP页面的脚本元素用来嵌入(java)代码。 JSP动作组件是一些(XML)语法格式的标记,被用来控制Web容器的行为。 JSP供提供九种内置对象,(request)对象代表的是来自客户端的请求。 JSP 标准标记库是一个实现(Web )应用程序中常用功能的定制标记库集。 java.sql.Statement对象代表一条发送到数据库执行的SQL语句。有(三)种Statement 对象。 Servlets可以使用(MIME)类型来向浏览器传送非HTML 文件。 Enterprise Bean 是在(多)台机器上跨几个地址空间运行的组件。 JavaBean 是(一)台机器上同一个地址空间中运行的组件。 在标记描述TLD文件中Required 定义为(true)代表为必须。 二、单项选择题 1、表单数据的提交方法有两种, ()方法使得数据由标准的输入设备读入。 A.Get B. Post C.Read D.Input 2、在表单提交的数据中,如果变量的值有多个,这时应调用( )方法, A. getParameterValues() B. getParameter() C. getParameterNames() D. getAttribute() 3、Servlet的事件驱动由()实现。 A. Filter B. Listener C . Response D. Request 4、标记名称由两部分组成,( )用来区分不同标记库. A. 后缀 B. 前缀 C.JSP D. bean 5、客户机对Servlet的请求和Servlet对客户端的响应,都是通过( )来实现的。 A、EJB B、XML C、API D、Web服务器 6、获取数据库连接的方法是()。 A、Connection() B、getConnection() C、Con D、getContent() 7、常用的接收邮件的协议是() A、SMTP B、POP3 C、IMAP D、MIME 8、()用来获取一个已被创建的JavaBean组件的属性值。 A、 西北农林科技大学本科课程考试试题(卷) 2012—2013学年第1学期《J2EE技术》课程A卷专业班级:命题教师:审题教师: 学生姓名:学号:考试成绩: 本试卷由笔试和机试两部分组成。一到三题为笔试部分,第四题为机试部分 一、选择题(每题3分【按空分配分数】,共30分)得分:分 1. 相比于Spring,基于EJB的Java EE技术作为企业级应用解决方案的主要优势体现在(),使得开发出的应用是可向外伸缩的 (scale-out)。 A. 安全性 B. 运行的时空效率 C. 事务处理能力 D. 支持分布的能力 企业级的与普通javabean的区别是企业级的不仅可以供本地客户端访问,还可以供远程客户端访问。本质区别是访问者和被访问者是否位于同一台虚拟机上。 2.消息服务 (Message Service) 与方法调用 (Method Invocation)两者的最大区别就是:消息服务还可以实现()、()以及异构系统集成。 Java消息服务(JMS)是一个消息标准,它允许javaEE应用程序组件生成、发送、接收和读取消息。它能够进行分布式的、松耦合的、可靠地、异步的信息交流。 A. 异步 B. 业务调用 C. 松耦合 D. 消息传递 3. 关于无状态会话bean和有状态会话bean中“状态”说法正确的是()。 A. 有状态会话bean实例有对应的生命周期,而无状态会话bean则没有 B. 有状态会话bean可维持同一个客户端的多个调用之间的状态信息,无状态会话bean则不能 C. 有状态会话bean可以实现业务对象的持久化,无状态会话bean不能 D. 有状态会话bean可以维护HTTP客户端的状态,无状态会话bean不能 4.JPA实体之间的关系包括一对一、多对多、(对多一)和(一对多)共四种关联关系,以及( D )关系。 Java Persistence API java持久化,实体类表示对象,是对数据库中记录的表示 A. 一对多 B. 多对一 C. 继承 D. 映射 5. 判断访问EJB的方式是本地 (local) 访问还是远程 (remote) 访问取决于 第一课 第二课tomcat 简单模拟 package com.my.first; import java.io.*; import https://www.doczj.com/doc/3a4343374.html,.*; publicclass Mytomcat { /** * @param args */ publicstaticvoid main(String[] args) throws Exception { ServerSocketss = new ServerSocket(9999); Socket s = ss.accept(); System.out.println("在9999上等待。。。"); OutputStreamos =s.getOutputStream(); BufferedReaderbr = new BufferedReader(new FileReader("f:\\hello.html")); String str=""; while((str = br.readLine())!=null){ os.write(str.getBytes()); } br.close(); os.close(); s.close(); // ss.close(); } } 在浏览器中输入 http://localhost:9999 就会出现“hello world” 第三课 启动tomcat 各种问题总结 第四课 第五课 虚拟目录 如在f盘存放着各种web应用,但是空间不够了,这是我在d盘弄个文件当做该web应用的文件。但是要在server.xml中指定一下。 步骤:1、在那个磁盘下建立“f:\web2”,并建立相关的资源文件 2、在server.xml中配置 J2EE期末考试试题(笔试) A卷 姓名:学号: 注意事项:(考试时间90分钟) 1)整个试卷中不得做任何形式的书写或标记,是否试卷成绩做废; 2)认真准确填写并核对答题卡中的各项内容,因填涂错误造成的任何后果,由考生自负; 3)考试完毕,不得将所有考卷.答题卡.草稿纸带离考场,否则试卷成绩作废; 4)作弊,雷同答卷,成绩一律为0分 答题结束后,必须经监考老师确认考卷,答题卡,草稿纸已经提交后,方可离开考场 一、选择题(单项选择,每题2分,共50题) 1、下面对Web应用开发中Servlet组件说法错误的是。 A)Servlet是按照接受请求/返回响应的模式工作的 B)运行于Servlet容器中,是被动态加载的 C)在Struts框架中,Servlet充当模型组件 D)在Struts框架中,Servlet充当控制器组件 2、在Struts应用中,能在下列哪几种范围内共享数据说法错误的是。A)只有request与session B)request C)session D)application 3、下面那个选项不属于MVC三个核心模块。 A)模型 B)视图 C)数据库连接 D)控制器 4、下列关于Struts框架的说法中,正确的是。 A)Struts实质是在JSP Model2的基础上实现的一个MVC框架 B)在Struts框架中,模型是由实现业务逻辑的JavaBean与EJB组件构成C)在Struts框架中,视图是由一组JSP文件组成 D)以上都是 5、关于在web.xml文件中配置欢迎文件清单说法错误的是。 A)使用 Javascript的基本介绍 ?JS是用于WEB开发的脚本语言: ?脚本语言是什么: ?脚本语言不能独立使用,它和HTML/JSP/PHP/https://www.doczj.com/doc/3a4343374.html,配合使用 ?脚本语言也有自己的变量,函数,控制语句(顺序,分支,循环)?脚本语言实际上是解释性语言(即在执行时直接对源码进行执行)?Java程序.java→.class→jvm , js→浏览器(js引擎来解释执行)?Js在客户端(浏览器)执行 ?因为js是由浏览器来执行的,因此这里有个问题,不同类型的浏览器可能对js的支持不一样。 韩顺平html+css+js 之JS笔记 Javascript的基本介绍 ?JS是用于WEB开发的脚本语言: ?脚本语言是什么: ?脚本语言不能独立使用,它和HTML/JSP/PHP/https://www.doczj.com/doc/3a4343374.html,配合使用 ?脚本语言也有自己的变量,函数,控制语句(顺序,分支,循环) ?脚本语言实际上是解释性语言(即在执行时直接对源码进行执行) ?Java程序.java→.class→jvm , js→浏览器(js引擎来解释执行) ?Js在客户端(浏览器)执行 ?因为js是由浏览器来执行的,因此这里有个问题,不同类型的浏览器可能对js的支持不一样。 J2简答题 1、简述J2的四层模型。 运行在客户端机器上的客户层组件;运行在J2服务器上的层组件;运行在J2服务器上的业务逻辑层组件;运行在服务器上的企业信息系统层软件 2、什么是对象持久化? 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、数据文件中等等。 3、简述一下,为什么我们使用它? ( )是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式。 原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。 4、简述一下如何使用实现对象持久化的过程(可画图或用伪码描述) 1:创建对象。在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析、 2: 创建对象。通过创建好的对象可以创建一个对象的实例,同时是生成对象实例的工厂,他在整个应用中应该是,唯一的。 3:创建对象。对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比中的对象丰富很多。 4:开始一个事务。在中定义一个事务操作的开始,这是使用进行持久化操作必不可少的步骤 5:进行持久化操作。在这个步骤中可以读取或者保存对象。 6:结束事务。在操作完成之后还要进行显式的结束事务的操作。 7:关闭。类似于释放数据库的连接。 5、为什么要实现序列化? 1、序列化以某种存储形式使自定义对象持久化 2、序列化将对象转换为可传输方式从一个地方传递到另一个地方 3、序列化使程序更具维护性 6、比较一下中的()和()方法 1、创建的会和绑定到当前线程,而不会。 2 、创建的线程会在事务回滚或事物提交后自动关闭,而必须手动关闭 7、比较一下中的()和()方法,以及如何保证每次都是从数据库读取而不是在缓存中读? ()和()方法均可以根据指定的实体类和从数据库读取记录,并返回与之对应的实体对象。 ①spring是什么? struts 是 web 框架 (jsp/action/actionfrom) hibernate 是 orm框架,处于持久层. spring 是容器框架,用于配置bean,并维护bean之间关系的框架 ?spring中有一个非常概念: bean (是java中的任何一种对象javabean/service/action/数据源./dao, ioc(控制反转inverse of control) di( dependency injection 依赖注入) ?画一个框架图 快速入门 开发一个spring项目. 1.引入spring的开发包(最小配置该包把常用的jar都包括, 还要写日志包 2.创建spring的一个核心文件 , [hibernate有核心 struts核心文件 ], 该文件一般 放在src目录下,该文件中引入 xsd文件: 可以从给出的案例中拷贝一份. 3.配置bean 1,Jquery是一个javascript框架或者叫做javascript库; 2,用Ajax我们可以给服务器发送一个请求,服务器可以给我回送一个请求; 3,出现javascript框架的根本原因就是为了提高开发者的开发效率; 4,jquery是一个轻量级的js库(压缩后只有21K),这是其他的js库所不及的,它兼容CSS3,还兼容各种浏览器; 5,JQuery是一个快速的,简洁的javascript库,使用户能更方便的处理HTML document,events,实现动画效果,并且方便的为网站提供AJAX交互; 6,JQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 7,jquery能够使用户的html页保持代码和html内容的分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可; 8,所谓的库就是提供一些现成的方法供你去调用; 9,当前流行的javascript库有: Jquery ,MooTools,Prototype,Dojo,YUI,EXTJS,DWR[主要是运行在服务器上的]; 10,$(document) //---这个表示一个jquery对象; 11,如果使用jquery,则需要引入jquery库 12,jquery对象就是对dom对象的一系列包装,它包装完成后,就可以使用jquery对象提供的方法来进行操作; 13,在使用jquery开发中,有两种对象,1,jquery对象,2,dom对象,如果是jquery对象则只能使用jquery库提供的方法,如果是dom对象,则只能使用js本身提供的方法; 14,分析jquery库文件的运行原理:
韩顺平html笔记
?无序列表 --用于说明行 --用于说一小格
?有序列表
?框架 ?表单元素 J2EE面试题集锦(附答案)
2016年J2EE考试复习试题
传智 韩顺平 linux 课程笔记1(吐血整理)
韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)
J2EE期末考试复习题
j2ee考试题带答案
韩顺平servlet笔记(个人总结版)
J2EE期末考试深刻复知识题(88份)
传智播客韩顺平轻松搞定网页设计(html+css+javascript)之javascript
韩顺平html+css+js之JS笔记
J2EE考试题目及答案
韩顺平Spring笔记
jquery学习笔记-韩顺平