9.基于struts2 防止表单重复提交
方案一:使用struts2中的token拦截器或者tokenSession
第一步:在表单中加入<s:token />(当然啦!要首先导入struts2的标签库 <%@taglib uri="/struts-tags" prefix="s" %>)
<s:form action="helloworld_other" method="post" namespace="/test">
<s:textfield name="person.name"/><s:token/><s:submit/>
</s:form>
第二步:在struts.xml配置文件中相应的action上配置token拦截器或者tokenSession拦截器。此拦截器只能用在有form的提交请求上。
<action name="helloworld_*" class="com.jim.action.HelloWorldAction" method="{1}"> <interceptor-ref name="defaultStack"/> <interceptor-ref name="token" /> <result name="invalid.token">/WEB-INF/page/message.jsp</result> <result>/WEB-INF/page/result.jsp</result> </action>
以上配置加入了“token”拦截器和“invalid.token”结果,因为“token”拦截器在会话的token与请求的token不一致时,将会直接返回“invalid.token”结果。
方案二:基于第二种重复提交表单的原因,服务器内部使用重定向
配置方法如下:
<action name="add" class="com.action.AddAction"> <result name="success" type="redirectAction"> <param name="actionName">show_show</param> </result> </action>
10.Oracle和mysql区别
地址:http://blog.sina.com.cn/s/blog_a7a5bfd90102w7xt.html
11.多线程是什么?
什么是线程:即程序的执行路径,
再回答多线程:多线程就是一个程序中有多条不同的执行路径; 多线程优点一句话;一种提升效率的技术
为什么不用Mybatis 逻辑分页?
Mybatis 自带的分页使用的是内存分页,如果数据量大,那么必定会发生内存溢出。
是MappingJacksonHttpMessageConverter解析JSON字符串的时候,如果遇到空格就认为这个字符串结束