2010-08-15要找工作,总结了一些东西

1.       struts有几种action

3action,一种是普通的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,配置DynaActionFormproperty中的type必需是全路径的,使用dynaactionform的好处是不用创建很多的form

 

ValidateActionForm 只有访问特定action的时候才进行验证

ValidateForm只要用到指定form就进行验证。Struts源码中2formform各个字段名字作为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/>

 

validatorActionFormvalidatorForm不同的地方时:validatorActionFormvalidator.xmlform的名字是action标签的path的名字,也就是说跟actionpath相同,用validatorFormvalitor.xmlformnameaction标签的name也就是form的名字保持一致。

Dynaactionform对应的可验证的formDynavalidatorForm

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 functionnameform{}

]]>

</javascript>

</validator>

2.       Jsp页面的2种跳转方式

   控制转发:

   重定向:

1   RequestDispatcher.forward() 属于控制转发,为相对路径

2  response.sendRedirect()  重定向,url为绝对路径
3  <jsp:forward page="" /> 

4  修改HTTP headerLocation属性来重定向 request.setHeader(“location”,url)

5        pageContext.forward()

6        jsp中可以使用out.closereturn终止后续代码的执行,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中删除时会触发httpsessionbindingeventHttpsessionbindinglistenerbindvaleunbindvalue2个方法分别在绑定对象到session与从session删除对象时触发调用

12    Httpsessionactivationlistener可以使代码支持分布式环境及负载均衡fail-over(通路冗余)等,

13    对于javabean组件来说,有2个概念需要理解清楚。1是属性,getset后面接的名字是javabean的属性,2是实例变量也就是javabean的类的变量,这2个概念不是一一对应关系。一个javabean可以在有很多属性的情况而没有内部变量。如:

Public Class TestBean{

        Public  setName(String name){

}

Public getName(){

       Return joke;

}

}

对于这样一个javabean,虽然不好看,但它的确是一个有name属性的javabean,它没有内部变量。

所以,属性是实例变量更高层次的抽象。

 

14     Javabean4种属性:简单属性,索引属性,约束属性,绑定属性,jsp主要用到简单属性与索引属性

15   JSP动作包括:

     jsp:include:在页面被请求的时候引入一个文件。

       jsp:useBean:寻找或者实例化一个JavaBean

       jsp:setProperty:设置JavaBean的属性。

       jsp:getProperty:输出某个JavaBean的属性。

       jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECTEMBED标记。

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同时支持hqlsqlqbc3种方式查询数据

Opensessionview模式,是创建一个filterfilter中关闭session,而在程序中不做session关闭操作

Casecade 级联操作,可选值为save-updatenoneinverse翻转外键关系的维护,一般将一对多一边的字段设置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表达式.

Bodycontent3个可选值jspemptytagdependent

7.       mysql

delimiter 设置分隔符,用以代替;,在定义存储过程的过程中,会需要用到分号作为语句的分割,所以将执行sql的分割符替换成别的,比如// 比如 |都是可以的

创建存储过程 create procedure procedurenamein param

                    Begin

                             …..

                    End//

定义好了之后用call命令调用

修改用 alter procedure procedurename

删除用 drop procedure procedurename

创建索引: create index on tablenamecolnamelength)) 如果列是字符类型的可以指定按前面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 开发套件),包括javacjavajavahjarjavapjconsole等等,它的版本包括j2sej2mej2ee

12.  jre的概念Java Runtime EnvironmentJava运行环境。包括jvm标准实现及标准类库

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值