引入struts-spring-plugin.jar包,从而完成struts和spring的整合
在struts2的action中注入service,保证service的名字和配置文件中的一致,并生成get,set方法
Dao层继承于hibernateDaoSupport
在dao层的配置文件中注入sessionFactory
二十二、防止表单重复提交
针对于重复提交的整体解决方案:
1.用redirect来解决重复提交的问题
2.点击一次之后,按钮失效
3.通过loading
4.自定义重复提交过滤器
5.解决struts2重复提交
可以结合s:token标签来解决重复提交问题
利用token的原理:
1.在前端的jsp页面中加入s:token标签,在访问该页面时就会生成
隐藏域,该隐藏域中包含一个随机生成的字符串,并把该字符串
存入session中
2.在struts2的配置文件中加入token后,当正常访问action
的时候,会从session中取出该字符串,然后和页面隐藏域中提交
字符串做对比,如果一致则正常执行并删除session中存储的字符串。
二十三、JSP标签:
1.JSP include动作
jsp:include 动作
以“<jsp: 动作名 ” 开始,以“</jsp:动作名> ” 结束
比如:<jsp:include page=" Filename" />
2.JSP指令:<%@ include%><%@ %>
以“<%@ ” 开始,以“%> ” 结束。比如:
<%@ include file = " Filename" %>
3.JSP输出表达式:<%= %><%=Java表达式 %>
输出变量的值,后边不能加<%= ; %>
4.JSP Scriptlet【脚本】:<% ;%> <% Java 代码 %>
例子:
<% Calendar now = Calendar.getInstance(); %>
5.JSP声明:<%! %> <%! 函数或者方法 %>
例子:
<%!
String getHello(String name) {
return "Hi," + name + "!";
}
%>
6.迭代标签:<c:foreach>
Jstl中的核心标签(core)
7.JSP注释:
<!-- 这是注释,但客户端可以查看到 -->
<%-- 这也是注释,但客户端不能查看到 --%>
8.el表达式:${}
9.jsp:include动作是在运行时动态包含。
@include指令是在编译时包含。
它们两个都只能包含本项目的相关文件,不能包含其他项目的。
如果要包含其他项目的文件可以使用c:import
二十四、过滤器
filter的概述:
filter是一个过滤器,用来在请求前和响应后进行数据的处理。
filter的生命周期是:
实例化--->初始化(init)-->进行过滤(doFilter)--->销毁(destroy)-->释放资源
一个Filter必须实现javax.servlet.Filter接口
在项目中我们通常通过filter进行编码转换,
进行安全验证,进行重复提交的判断。
了解(不需要主动说)
filter 相当于 相当于Spring AOP
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-65658-6.html
这么惨