- 浏览: 11399 次
最新评论
【总结】Java EE知识点(持续更新)
2011年08月16日
1、配置struts步骤:
①拷贝struts lib目录下的所有jar文件WEB-INF/lib下
②修改web.xml文件,配置ActionServlet
③提供struts-config.xml文件
2、struts知识点:
*ActionForm是做数据收集的,ActionForm中的属性必须和表单输入域的名称一致(也就是和表单中的name名称一致)。
*ActionForm会自动收集来自客户端的表单数据,然后传给Action,Action可以直接使用ActionForm对象。然后就可以得到相应的数据了。
3、jsp两种跳转的区别(标签跳转和response.sendRedirect()跳转)
*属于服务器端跳转,跳转之后的地址栏的信息不会有任何的改变;而response.sendRedirect()属于客户端跳转,跳转之后地址栏是会改变的,变为跳转之后的页面地址。
*在使用request属性范围时,只有是服务器端跳转才能够将request属性保存到跳转页;而如果是客户端跳转,则不行。
*如果使用的是服务器端跳转,则执行到跳转语句时会立刻进行跳转;如果使用的是客户端跳转,则是在整个页面执行完之后才执行跳转。
4、MVC设计模式:
M:即model,模型,主要是业务逻辑,即javabean。
V:即view,视图,在web中通常对应于jsp。
C:即Controler,控制器,在web中对应于Servlet,主要是接收参数,调用模型层,转向的功能。
5、hibernate知识点:
hibernate是一个对象关系框架,它可以让我们面向对象的编程方式来操作数据库,它提供了Java类到数据表的映射,这样可以大大减少操作数据库的工作量。
原理过程:
*配置好hibernate的配置文件和与类对应的配置文件后,启动服务器
*服务器通过实例化Configeration对象,读取hibernate.cfg.xml文件的配置内容,并根据相关的需求建好表或者和表建立好映射关系 *通过实例化的Configeration对象就可以建立sessionFactory实例,进一步,通过sessionFactory实例可以创建session对象 *得到session之后,便可以对数据库进行增删改查操作了,除了比较复杂的全文搜索外,简单的操作都可以通过hibernate封装好的session内置方法来实现 *此外,还可以通过事物管理,表的关联来实现较为复杂的数据库设计 优点:①避免了大量的SQL语句,我们只需要操作对象,使开发更对象化了,提高了效率 ②数据库移植性很好 ③框架无侵入性,是一个轻量级的框架。我们在保存一个类对象时,此类不需要继承Hibernate中的任何类和实现任何接口。 缺点:不适合批量的操作。不适合对象间关系太复杂的映射。 hibernate中处理延迟加载的问题:
通过HQL语句,join feth的方法,把所有需要的列都找到。
6、spring知识点:
*spring框架最核心的就是依赖注射。
*Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),通过依赖注射,用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向切面的编程)的实现(其本质上就是一种动态代理设计模式)。使用这种方式,我们可以更多的去关注核心业务操作,而不用把太多的心思花在事务处理,资源的打开和关闭等方面了。而且spring提供了对已有的优秀框架的支持,比如struts、hibernate等框架都可以放到spring里面进行整合。
7、jsp页面传值的方法
*通过form表单传值。(request.getParameter()得到)
*通过隐藏域传值,取得方法同上。
*通过url传值,在jsp后面加上?id=aaa&name=bbb 取得方法同上
8、Servlet和Struts的Action中的跳转
在Servlet的doGet()或者是doPost()方法中,可以用request.getRequestDispatcher(url).forward(request, response) ;
在Action中,则是mapping.findForward(url) ;
9、让一个表单实现多个action
一个表单,本质是是只能有一个action的,但是我们又想实现多个action,怎么办呢?我们就可以先不填表单的action,使用javascript来动态填写action,这样就实现了表面上的多action。
示例代码:
function serarch(){
fname.action="findEmp";
document.fname.submit();
}
function add(){
fname.action="addEmp";
document.fname.submit();
}
function update(){
fname.action="updateEmp";
document.fname.submit();
}
10、Http报文结构
起始行、头部信息、Body
Get和Post的区别:Get没有Body部分,不能上传文件等大数据量操作
11、Java EE分层
表现层、业务层、持久层
12、Html元素
调用外部CSS:
调用外部javascript:
13、两个div对齐问题
打开firebug,调整边距
14、下拉菜单
JQuery
filedIn filedOut
sliedUp sliedDown
15、限定IP访问
通过过滤器,检查允许IP地址中是否有此链接的IP,没有就通过过滤器返回
16、表合并
Oracle:merge()
存储过程:insert + update
17、Ioc(控制反转),DI(依赖注射)
其实就是一样的:Ioc(控制反转),纯理论;DI(依赖注射):实际实现
18、什么是AOP
面向切面编程,拦截器
19、URL-Pattern映射的两种方式
路径映射和后缀名映射
20、如何让Filter转发请求
FilterChain chain
chain.doFilter(request, response) ;
21、ibatis实现模糊查询
mysql: select * from stu where name like concat('%',#name #,'%')
oracle: select * from stu where name like '%'||#name #||'%'
SQL Server:select * from stu where name like '%'+#name #+'%
22、div、span、lable的区别
div是块级别标签
label标签主要用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点
span则是行级别对普通的文本的一种容器
23、外部导入CSS、JavaScript
CSS:
JavaScript:
24、ibatis的sqlmap中,#和$的区别
用$$ 有点宏替换的意思,如下列映射:
select * from a $name$ ,则在传入参数可以queryForList( "users ", "where name= '张三 ' ");
用##则是预编译处理,传入的是什么类型就是什么类型,如下列映射:
select * from a where a.name=#name# ,
你在传入参数时可以queryForList( "users ", "张三 ");则生成的sql语句是select * from a where a.name= '张三 '。
#表示参数的方式传入类似于jdbc语句里的?,$就是简单的字符串替换,用相应的值替换$$里的内容。由此我们可以发现,使用$$是一件很危险的事情,有导致sql注入漏洞的风险。
25、sql更新多列的操作
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'
26、将oracle查询记录导出到文件
spool d:\output.txt;
select * from employees;
spool off;
这样就可以将查询结果保存到D盘的output.txt文件中了。
27、不能运行tomcat里面的startup.bat文件解决办法
出现这个问题是因为在配置JAVA_HOME的时候出了点问题,如果JDK装在D盘,应该配置成:D:\jdk1.6.0_22\ 最后是一个斜杠,而不是分号。
28、js里面遇到要用到某个函数的时候怎样判断加不加括号
搞清楚就知道一点不乱了:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
29、Ext renderer参数相关
renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){
.....
}
value是当前单元格的值
cellmeta里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。
record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。
rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。
columnIndex列号太简单了。
store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。
30、javascript实现网页局部打印
方式一:
function Printpart(id_str)//id-str 内容中的id
{
var el = document.getElementById(id_str);
var iframe = document.createElement('IFRAME');
var doc = null;
iframe.setAttribute('style', 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
document.body.appendChild(iframe);
doc = iframe.contentWindow.document;
doc.write('' + el.innerHTML + '');
doc.close();
iframe.contentWindow.focus();
iframe.contentWindow.print();
if (navigator.userAgent.indexOf("MSIE") > 0)
{
document.body.removeChild(iframe);
}
}
将要想打印局部内容,将包含内容的标签ID 当参数放入函数就可以了。
方式二:
JS 弹出新窗口实现打印功能(支持FIREFOX)
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="";
eprnstr="";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
OpenWindow = window.open("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("PrintPage");
// 这里写你的CSS地址
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.write("");
OpenWindow.document.getElementById("p").innerHTML=prnhtml;
OpenWindow.document.close();
OpenWindow.print();
}
HTML调用:
xxxxxxxxxxx
31、oracle创建用户,sequences相关
create user nange identified by nange;
grant resource,dba,connect to nange;
//查询数据库中所有的sequence
select SEQUENCE_NAME from user_sequences
//查询下一条
select SEQ_DEPOSIT_SCH.nextval from dual
//查询当前条
select SEQ_DEPOSIT_SCH.currval from dual
32、将JSON格式字符串转变为JSON对象
var jsonStr = '{"name":"jack","age":"18"}';
var jsonObj = eval('('+jsonStr +')')
alert(jsonObj.name);//输出jack
可以写成一个方法:
function parseToJSONData(object){
return eval("(" + object + ")");
}
33、javascript获取浏览器实际宽度和高度
宽度:document.documentElement.clientWidth
高度:document.documentElement.clientHeight
34、当Tomcat启动时出现下面的错误
[ERROR] org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.EOFException
或者
严重: IOException while loading persisted sessions: java.io.EOFException
严重: Exception loading sessions from persistent storage
原因是:
是因为保存在硬盘上的session数据读取失败,问题似乎不大,但是如果不处理一下,每次启动都会出现这个问题,处理方法如下:
将work(例如:tomcat5.5.20\work\Catalina\localhost\_下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser亦可。
根据上面所说,我把我的\work\Catalina\下的内容全部删除,问题成功解决。在此感谢,要不然有时候启动tom大傻猫的时候就会见到这个异常 很烦的!
35、ibatis自动生成的类的含义
int updateByPrimaryKey(User record) thorws SQLException:按主键更新
int updateByPrimaryKeySelective(User record) thorws SQLException:按主键更新值不为null的字段
updateByPrimaryKey应该是根据record里面的ID,然后更新record改变的值。这里是更新所有的字段
而updateByPrimaryKeySelective只是根据主键更新不为空的字段
36、Servlet设置编码问题
request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值
response.setContentType("text/html;charset=gb2312")是设置页面中为中文编码
前者是设置动态文字(参数,数据库),后者设置页面静态文字
response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码.
response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前.
37、使用javascript获取下拉列表框中的文本值
近日碰到一个问题,就是需要将用户点击下拉列表当中某个选项后,将其所选的内容保存起来,例如下面的HTML代码:
北京
上海
广州
也就是说当用户选择“上海”这一列时,需要将“上海”这个名称保存起来。其实方法很简单。看下面javascript代码:
function isSelected(value) {
var cityName;
var city = document.getElementById("city");
//获取选中的城市名称
for(i=0;iReferenceError错误。不过,从代码的规范性考虑,最好还是对第二行加上 var:
if(!window.myObj) {
var myObj={ };
}
或者写成这样:
if(!window.myObj) {
window.myObj={ };
}
上面这种写法的缺点在于,在某些运行环境中(比如V8、Rhino),window未必是顶层对象。所以,考虑改写成:
if(!this.myObj) {
this.myObj={ };
}
在全局变量的层面中,this关键字总是指向顶层变量,所以就可以独立于不同的运行环境。
③还可以使用typeof运算符,判断myObj是否有定义。
if(typeof(myObj)=="undefined") {
var myObj={ };
}
这是目前使用最广泛的判断javascript对象是否存在的方法。
推荐使用第三种。
40、Ext判断浏览器
var ua = navigator.userAgent.toLowerCase(),
02 check = function(r){
03 return r.test(ua);
04 },
05 isOpera = check(/opera/),
06 isChrome = check(/chrome/),
07 isWebKit = check(/webkit/),
08 isSafari = !isChrome && check(/safari/),
09 isSafari3 = isSafari && check(/version\/3/),
10 isSafari4 = isSafari && check(/version\/4/),
11 isIE = !isOpera && check(/msie/),
12 isIE7 = isIE && check(/msie 7/),
13 isIE8 = isIE && check(/msie 8/),
14 isIE6 = isIE && !isIE7 && !isIE8,
15 isGecko = !isWebKit && check(/gecko/),
16 isGecko3 = isGecko && check(/rv:1\.9/),
17 isBorderBox = isIE && !isStrict,
18 isWindows = check(/windows|win32/),
19 isMac = check(/macintosh|mac os x/),
20 isAir = check(/adobeair/),
21 isLinux = check(/linux/);
发表评论
-
C++导出类到Python
2012-01-20 09:38 1376C++导出类到Python 2011年03月24日 C+ ... -
python学习笔记
2012-01-20 09:38 633python学习笔记 2010年07月06日 个人学习p ... -
Python学习笔记
2012-01-20 09:38 652Python学习笔记 2010年09月13日 Pytho ... -
Python GUI编程各种实现的对比
2012-01-20 09:38 1033Python GUI编程各种实现的 ... -
Python编程简介
2012-01-20 09:38 1022Python编程简介 2011年06 ... -
2011年第十届中国机械(越南)展览会
2012-01-19 14:41 4612011年第十届中国机械(越南)展览会 2010年11月22 ... -
去越南相亲吧~~~~~
2012-01-19 14:41 505去越南相亲吧~~~~~ 2011年05月04日 越南,一 ... -
越南攻略
2012-01-19 14:41 480越南攻略 2010年07月02日 ... -
常用JavaScript大全
2012-01-17 04:27 714常用JavaScript大全 2010年11月11日 1 ... -
Javascript 基本函数和技巧
2012-01-17 04:27 591Javascript 基本函数和技巧 2010年09月22日 ... -
JavaScript函数大全
2012-01-17 04:26 521JavaScript函数大全 2011年02月12日 1 ... -
js中的常用的几个对象
2012-01-17 04:26 556js中的常用的几个对象 2010年07月01日 jav ... -
初三语文总复习
2012-01-16 03:16 635初三语文总复习 2009年1 ... -
女人智慧,经典十课
2012-01-16 03:16 750女人智慧,经典十课 2010 ... -
连锁宾馆、酒店培训
2012-01-16 03:16 526连锁宾馆、酒店培训 2011年06月15日 (前厅部) ...
相关推荐
java各知识点详细总结
java ee 面试题总结 从基础到Struts2 Hibernate Spring 一应俱全
Java EE知识体系结构,用图解的形式详细讲述了Java EE整体的知识架构。
通过对javaEE 的学习我对 标签库 有了新的了解,也对servlet 的工作流程更加清楚
java ee基础使用教程郑阿奇里面含有书中的所有ppt和代码
java ee
疯狂的IT人最新整理的Java EE面试总结
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....
基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java ...
Java EE编程 源代码Java EE编程 源代码Java EE编程 源代码Java EE编程 源代码
Java EE 7 tutorial 中的examples代码,找了很久才找到下来的,跟Java EE 7 tutorial配套使用,是官方的学习资料。
并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了平台的基础知识,包括资源创建、资源注入和打包,还涵盖了多项相关技术,包括JavaServer Faces(JSF)、Java Servlet、WebSocket Java...
Java EE 设计模式 Professional Java EE Design Patterns
Practical JSF in Java EE 8 pdf Master the Java EE 8 and JSF (JavaServer Faces) APIs and web framework with this practical, projects-driven guide to web development. This book combines theoretical ...
java EE,servlet jsp java web 开发的帮助文档,API
精通Java EE:精通Java EE 整合应用案例\源代码第五章
Develop professional applications in Java EE 7 with this essential reference guide
《轻量级Java EE企业应用实战:Struts2+Spring4+Hibernate整合开发(第4版)》是《轻量级Java EE企业应用实战》的第4版,第4版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级Java EE企业...