1. struts有几种action
有3种action,一种是普通的action,一种是dispach Action 一种是lookup dispach Action
Look up dispach action主要用于一个表单多个提交按钮的情况
ForwardActon: 该类用来整合Struts 和其他业务逻辑组件,通常只对请求作有效
性检查。
• IncludeAction: 用于引入其他的资源和页面。
• MappingDispatchAction: DispatchAction 的子类,一个action 可映射出多个Action
地址。
• SwitchAction: 用于从一个模块转换至另一个模块,如果应用分成多个模块时,
就可以使用SwitchAction 完成模块之间的切换。多个initparam 配置多个配置文件,每个配置文件是以模块,如config/otherModel otherModel为一个新的模块,访问时需要加上/otherModel/xxx.do
<forward name="success" contextRelative="true"
path="/newModule/index.do" redirect="true"/>
contextRelative=true的意思是path是相对于应用上下文的路径,contextRelative=false则是指path是相对于模块上下文的路径。
Actionform,配置DynaActionForm时property中的type必需是全路径的,使用dynaactionform的好处是不用创建很多的form
ValidateActionForm 只有访问特定action的时候才进行验证
ValidateForm只要用到指定form就进行验证。Struts源码中2种form将form各个字段名字作为key,将path作为key,可见将form各个字段名字作为key是指定一个form,用path作为key是指定一个action的
Struts普通form的验证,在action中可以配置是否验证,validate=true,默认为true
Struts验证框架验证时,form必须直接或间接继承validateForm,配置validator.xml,validator-rules.xml,并在struts-config.xml中引入验证框架
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validation.xml,/WEB-INF/validator-rules.xml"/>
</plug-in>
验证框架产生的错误消息都是从资源文件中读取的,页面上显示错误消息的方法为<html:errors/>
validatorActionForm跟validatorForm不同的地方时:validatorActionForm在validator.xml中form的名字是action标签的path的名字,也就是说跟action的path相同,用validatorForm时valitor.xml中form的name与action标签的name也就是form的名字保持一致。
Dynaactionform对应的可验证的form为DynavalidatorForm
Js验证需要在页面中添加<html:javascript forName=”formName” />,(这里的form那么是validator.xml中定义的那么一致)然后再需要验证的form标签中添加onsubmit事件,事件处理函数名称为:validate$formName() ;(这里的$formname是跟strutsconfig中定义的formname一致)。
客户端的验证对日期好像是有问题的:解决方案,date验证需要一个pattern参数就ok
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
自定义规则也非常简单,在validator-rules.xml中添加规则,然后参照fielCheck编写自己的验证规则的代码就可以了。在需要js验证的情况,要在validator-rules.xml中配置自己的js函数具体如下:
<validator ……>
<javascript>
<![cdata[
Function functionname(form){}
]]>
</javascript>
</validator>
2. Jsp页面的2种跳转方式
控制转发:
重定向:
1 RequestDispatcher.forward() 属于控制转发,为相对路径
2 response.sendRedirect() 重定向,url为绝对路径
3 <jsp:forward page="" />
4 修改HTTP header的Location属性来重定向 request.setHeader(“location”,url)
5 pageContext.forward()
6 jsp中可以使用out.close或return终止后续代码的执行,return不会产生异常。流关闭后后面的内容将没办法写入流,所以out.close会报以个异常stream closed
7 对于cookie 有效期,1表示永久有效,负数表示不设有效时间,浏览器关闭cookie即失效,0表示失效。
8 Jsp多行注释 <%-- --%> 注释不能嵌套在其他的 <% %>之间。单行注释有 //,/* */,/** */
9 Jsp可以设置为一个servlet 只要将web.xml中的servlet标签下的classname 换成jsp-file就行,然后就可以实现jsp文件的url映射了
10 Load-on-startup 设置servlet启动的先后顺序,用于以个servlet的启动依赖其他servlet的情况。当值设置为负数或不设置的时候将在用到此servlet的时候初始化,当值大于0时在应用程序部署时加载和启动此servlet,按数值从小到大的顺序依次启动
11 实现Httpsessionbindinglistener可以实现对自身对象在session中状态的监控。放入session或从session中删除时会触发httpsessionbindingevent。Httpsessionbindinglistener有bindvale跟unbindvalue2个方法分别在绑定对象到session与从session删除对象时触发调用
12 Httpsessionactivationlistener可以使代码支持分布式环境及负载均衡fail-over(通路冗余)等,
13 对于javabean组件来说,有2个概念需要理解清楚。1是属性,get、set后面接的名字是javabean的属性,2是实例变量也就是javabean的类的变量,这2个概念不是一一对应关系。一个javabean可以在有很多属性的情况而没有内部变量。如:
Public Class TestBean{
Public setName(String name){
}
Public getName(){
Return “joke”;
}
}
对于这样一个javabean,虽然不好看,但它的确是一个有name属性的javabean,它没有内部变量。
所以,属性是实例变量更高层次的抽象。
14 Javabean有4种属性:简单属性,索引属性,约束属性,绑定属性,jsp主要用到简单属性与索引属性
15 JSP动作包括:
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
16 <jsp:useBean id=”id” class=”” type=”” scope=””/>
17 <jsp:setProperty name=”javabeanId ” property=”propertyName | *” value=”” param=”” /> param 跟value只能存在一个,param表示http请求的参数的名字,property=*表示http请求参数名字与属性名相同的‘对应赋值’
18 自定义标签的tag library descritor (tld)文件如果是打包成jar文件的话必须放在META-INF目录或其子目录下,如果是直接发布的则必须放在WEB-INF目录或其子目录下
19 引用标签库的方式有3种,一是在web.xml中设置taglib元素;二是将页面引入taglib的地址设置为tld文件的路径;三是在tld文件中设置uri元素,页面可以通过引用uri引用到tld文件
20 标签处理器的实例是会被缓存的,如果标签处理类定义了类属性,那么多次运行自定义标签的结果可能是不一样的
21 简单标签(simple tag)的bodycontent不能是jsp。实现简单标签只要继承simpletagsupport然后实现dotag方法即可
22 自定义标签还可以设置属性为动态的,只要在tld文件中设置<dynamic-attributes>true</dynamic-attributes>然后标签处理函数实现dynamicattributes接口,实现该接口必须要实现以个叫setdynamicattribute的方法
3. hibernate
load 与 get的区别,load会假设要加载的对象一定存在,它会首先查找缓存,如果没找到则创建代理,当用到的时候再去访问数据库,如果数据库中也不存在,则抛出objectnotfound异常。Get不会创建代理,它先查缓存,没有则查数据库,如果依然没有则返回null。
Hibernate同时支持hql,sql,qbc3种方式查询数据
Opensessionview模式,是创建一个filter在filter中关闭session,而在程序中不做session关闭操作
Casecade 级联操作,可选值为save-update,none,inverse翻转外键关系的维护,一般将一对多一边的字段设置inverse=true,由多对一的一边维护外键关系更合理,性能更好。
dynamic-insert="false" dynamic-update="false"
只修改有改变的列,提高性能的一种好的方式
4. spring配置文件详解
5. struts 配置文件详解
action不是线程安全的,因为有共享变量
6. 自定义标签。
1. 创建标签的处理类(Tag Handler Class)
2.创建标签库描述文件(Tag Library Descrptor File), 描述文件可以引用一个官方的dtd约束文件,具体引用方法可参照struts框架中自定义标签tld文档头
3.在web.xml文件中配置<tag>元素 <jsp:config></jsp:config>
4.在JSP文件中引人标签库
rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式.
Bodycontent有3个可选值jsp,empty,tagdependent
7. mysql
delimiter 设置分隔符,用以代替;,在定义存储过程的过程中,会需要用到分号作为语句的分割,所以将执行sql的分割符替换成别的,比如// 比如 |都是可以的
创建存储过程 create procedure procedurename(in param)
Begin
…..
End//
定义好了之后用call命令调用
修改用 alter procedure procedurename
删除用 drop procedure procedurename
创建索引: create index on tablename(colname(length)) 如果列是字符类型的可以指定按前面length
个字符建立索引
添加索引alter table structs add index e_count_1 (e_count DESC);
删除索引alter table structs drop index e_count_1
drop index e_count_2 on structs;
索引还可以指定type,具体支持情况如下表
存储引擎
|
允许的索引类型
|
MyISAM
|
BTREE
|
InnoDB
|
BTREE
|
MEMORY/HEAP
|
HASH, BTREE
|
8. linux下的命令
pwd 查看当前系统路径
开机自动启动
在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start
9. url重写技术,是seo优化的一种重要方式,在不支持cookie的浏览器中还是保持会话的有效方式(其实是需要将所有请求的url通过服务器端去设置一个jsessionId的参数)这真是以件十分繁重的劳动,再加上很少有用户禁用cookie,所以各大网站都没有使用url重写技术来保持会话
10. http协议相关:
以post提交表单时,表单数据是放在request body(请求实体)中传输的
以get提交时,表单数据会改变请求的url,然后把参数附加在请求url上
Post提交表单只保证在地址栏看不到参数,数据本省并没有加密,通过ssl实现https协议可以实现加密的连接
11. Jdk的概念 java development kit( java 开发套件),包括javac,java,javah,jar,javap,jconsole等等,它的版本包括j2se,j2me,j2ee
12. jre的概念Java Runtime Environment,Java运行环境。包括jvm标准实现及标准类库
分享到:
相关推荐
04年毕业,还没有单干的资本,我分析我自己也不适合单干,一直在打工,也倾向于一辈子打工。我工作快两年了,回顾一下自己的经历,写了点东西。大家也一起来说说经验吧,共同交流一下,互相促进,增长一点本领
例如,作者认为,在现代企业中,虽然能力很重要,但最终决定一个人能否成功的关键因素是那些非能力层面的东西,比如心态和习惯。 ### 知识点四:个人习惯的养成 #### 核心观点: - 培养良好的工作习惯对于提高工作...
【九年级知识点总结Unit-1】 本单元主要涵盖了英语词汇、短语以及重要句子,旨在帮助学生巩固和拓展他们的语言知识。以下是对这些知识点的详细解释: **词汇部分:** 1. **Volunteer** - 意为“志愿者”,指那些...
这部分需要深入探讨,找出规律性的东西,使个人或团队的认识提升到理性层面,以便在未来的工作中避免重蹈覆辙,更好地规划和执行。 4. **今后打算**:对未来的工作提出明确的方向和计划,包括如何巩固和扩大现有...
【标题】中的“考试类精品”暗示了这是一个关于考试复习和准备的资源集合,而“秋招没准备被虐得太惨了”则反映出这可能是针对求职面试,特别是技术面试的复习资料。作者在寒假期间进行了知识整理,说明这份资料包含...
从这段描述来看,面试官主要关注的是应聘者对于单片机的基本了解以及实际操作能力。...对于求职者而言,除了记忆这些基本信息外,更重要的是能够灵活运用所学知识解决实际问题,展现出自己的综合能力。
小学教师聘期工作计划总结 本资源为小学教师聘期工作计划总结,涵盖课程教学工作、教学建设工作、科研工作、加强学习、教学...数学教学中有特色、有创意的东西还不够多,今后还要努力找出一些自己在数学教学的特色点。
这是一个模拟紧急生存环境的题目,要求应聘者在有限的时间内,从15个物品中挑选最重要的5个,以确保在沙漠环境中尽可能地存活下去。这个题目考察的是应聘者的逻辑分析、优先级判断和团队合作能力。 **知识点1:生存...
### 阿里面试题知识点总结 #### 1. 自我介绍 - **知识点概述**:自我介绍是面试中常见的开场环节,旨在让面试官快速了解求职者的背景、经历及能力。 - **注意事项**: - 准备一份简洁而全面的自我介绍,突出自己的...
### 软件公司工作实习总结关键知识点 #### 一、背景与动机 - **背景**: 刚从学校毕业,缺乏实践经验和技术能力。 - **动机**: 想要在IT行业中找到一份工作,意识到自己需要提升技能。 #### 二、求职初期的挑战与...
6. 教学技能比赛:此类比赛有助于实习生评估自己的教学水平,找出不足并明确改进方向,为未来的教学工作做好准备。这种竞争环境也促进了实习生的专业成长。 7. 自我反思与成长:实习生在实习过程中不断进行自我反思...
### C和C++编程心得—前人的经验总结 #### 一、开始之前 **FAQ那是什么** FAQ(Frequently Asked Questions)是指常见问题解答。它通常由社区中的专家或者有经验的人整理出来,目的是为了方便解答新手们经常会问...
15. **任何不寻常的东西**:"anything unusual" 用于寻找可能与犯罪相关的异常事物。 16. **联系…/拨打…**:"contact sb. on + 号码" 指通过电话或其他方式联系某人。 17. **被用一把刀伤害**:"be wounded with...
"2017年电子商务工作总结" 在电子商务领域中,2017年是我步入社会最艰难的一年,但公司对我始终不放弃,而是给予更多的鼓励与支持,让我自己学会前进。下面是对我这一年的工作总结: 一、熟悉企业文化和产品知识 ...
- 对待遗忘和疏忽,如东西丢三落四,应通过建立良好的习惯和系统来改正,以提高工作效能。 6. **团队建设**: - 开展批评与自我批评的会议能增强团队凝聚力,大家共同找问题、解决问题,形成互相支持、共同进步的...
标题“文件夹中快速查找你想要的东西并可以替换”以及描述中的内容,暗示了这个话题主要涉及文件搜索与内容替换功能,这对于开发者、系统管理员和日常用户来说都是极其实用的技能。这种功能在代码迁移、项目更新或...
### 高中英语完形填空常见固定搭配与书面表达高级句型总结 #### 固定搭配概述 本文档旨在帮助高中生掌握英语完形填空中常见的固定搭配,并提供一些书面表达中的高级句型,以此提高学生的英语综合运用能力。完形...
总结,构建一个成功的酒店管理信息系统,需要从问题定义到需求分析,再到系统设计的每个环节都精细入微。这个过程不仅要求对酒店业务有深入理解,还需掌握软件工程的理论与实践,以打造出满足用户需求、适应行业发展...
以下是软件测试面试中的一些问题总结和答案。 问题 1:为什么选择做测试人员? 答案:我选择做测试人员是因为我认为这个工作能带给我成就感,每一次找到 bug,会带给我极大的满足感。此外,市场需要这个职位缺口很...
以下是基于提供的信息总结的主要知识点: 1. **问题定义**: - 开发目标:明确构建酒店管理信息系统的意图,可能包括提升效率、优化服务流程、自动化管理等。 - 应用目标:系统实际在酒店运营中的应用,如预订...