三大框架整合有很多种我只说一种
来源:互联网 发布:反对陈矩阵 编辑:程序博客网 时间:2024/04/30 03:26
==================== 开发环境 ====================
1. Eclipse + Aptana + SpringIde + mysql + tomcat
==================== 搭建 ssh 环境 ====================
1. 加入 struts.
1). 导入 jar 包: struts-1.3.8/apps/struts-blank-1.3.8/WEB-INF/lib/*.jar, 额外导入 struts-1.3.8/lib/struts-extras-1.3.8.jar 包
2). 加入 struts-config.xml, validator.xml 配置文件到 conf 目录下.
3). 复制 struts-1.3.8/apps/struts-blank-1.3.8/WEB-INF/classes/MessageResources.properties 到 conf 目录下
4). 在 web.xml 文件中加入如下内容:
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/classes/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2. 加入 spring:
1). 导入 jar 包:
--> spring-framework-2.5.6.SEC01/dist/spring.jar: 核心
--> spring-framework-2.5.6.SEC01/dist/modules/spring-webmvc-struts.jar: 集成 struts
--> spring-framework-2.5.6.SEC01/lib/aspectj/*.jar: 基于接口面向切面
--> spring-framework-2.5.6.SEC01/lib/cglib/*.jar: 没有接口面向切面
--> spring-framework-2.5.6.SEC01/lib/jakarta-commons/commons-logging.jar: 日志
--> ******: spring-framework-2.5.6.SEC01/lib/jakarta-commons/commons-logging.jar 和 struts 导入的 commons-logging-1.0.4.jar 冲突,
删除版本较低的 -- commons-logging-1.0.4.jar.
2). 加入 spring 的配置文件: 在 conf 目录下新建 applicationContext.xml 文件.
3). 在 web.xml 文件中加入如下内容:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
4). spring 集成 struts, 在 struts-config.xml 文件中添加如下内容:
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
3. 加入 hibernate:
1). 导入 jar 包:
--> hibernate-distribution-3.3.2.GA/lib/required/*.jar
--> /hibernate-distribution-3.3.2.GA/hibernate3.jar
--> slf4j-1.5.8/slf4j-nop-1.5.8.jar
--> ******: struts 导入的 antlr-2.7.2.jar 和 hibernate 导入的antlr-2.7.6.jar 冲突,
删除版本较低的 -- antlr-2.7.2.jar
2). spring 集成 hibernate
①. 创建 applicationContext-hibernate.xml 配置文件. 在该配置文件中需要完成如下配置: 配置数据库连接池; 配置 hibernate; 配置 spring 的声明式事务
②. 配置数据库连接池:
--> 导入 jar 包: c3p0-0.9.1.2/lib/c3p0-0.9.1.2.jar, mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar
--> 把数据库连接池的基本信息(user, password, url, driver) 和 hibernate 的基本信息(dialect) 外置到一个属性文件中: applicationContext.properties
4. 在 web.xml 中加入 spring 提供的字符编码过滤器: 使用 org.springframework.web.filter.CharacterEncodingFilter 类.
==================== 登录 ====================
1. 把 jsp 放置到 WEB-INF/pages/ 目录下
2. struts 前端开发的两个基本原则:
1). 尽可能的在一个模块使用一个 ActionForm 类. 因为服务器端的简单验证需要使用 struts 的 validator 验证框架, 所以需要使用
org.apache.struts.validator.ValidatorForm 作为 form 的父类
2). Action 的父类选用 org.apache.struts.actions.MappingDispatchAction. 若选用 org.apache.struts.actions.DispatchAction, 则多个请求只能对应一个
action 节点, 这也意味着 多个请求只能使用一个 ActionForm, 进而多个请求只能使用一种验证规则, 但这在很多时候不能满足实际需要. 例如: 注册时要求 email
不能为空, 但在登录时不需要使用 email 字段
3. 登录要求:
1). 前台验证
①: loginname 和 loginpassword 字段除去前后空格不能为空
②: loginname 和 loginpassword 字段除去前后空格, 不能少于 6 个字符
③: loginname 中不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_
解决方案:
①. 因为前两条要求对于 loginname 字段和 loginpassword 字段时一样的, 所以一起完成
②. 第三条验证只针对于 loginname, 所以可以单独完成, 需要使用正则表达式: var reg = /^[a-zA-Z]/w+/w$/ig;
2). 服务器端的简单验证, 由 struts 的 validator 框架完成, 要求同 1)
使用 struts 的 validator 框架验证时, validator 框架不能自动的去除字段的前后空格. 解决方案:
①. 在要验证的字段的 set 方法中手工去除空格
public void setLoginpassword(String loginpassword) {
if(loginpassword != null)
loginpassword = loginpassword.trim();
this.loginpassword = loginpassword;
}
②. 修改 struts validator 框架的源代码: 在本地提供 FieldChecks 类, 修改 validateMinLength 方法.
③. 在页面上实现 loginname, loginpassword 错误提示的分开显示, 可以通过 打印
request.getAttribute("org.apache.struts.action.ERROR")
得知 validator 框架在 ActionMessages 中的错误信息的 key 为当前字段的名字
3). 若上述两种验证都通过, 则请求到达 Action 的 execute 方法, 查询数据库, 匹配用户的输入信息, 返回页面
①: 用户名不存在, 提示信息为: "用户名不存在"
②: 用户名存在, 但用户名和密码不匹配, 提示信息为: "用户名和密码不匹配"
③: 匹配, 返回请求页面
解决方案: 使用 struts 提供的声明式异常处理机制完成页面的转发
- 三大框架整合有很多种我只说一种
- 三大框架整合
- 三大框架整合
- 三大框架整合
- 三大框架的整合
- eclipse 整合三大框架
- 三大框架的整合
- Java_SSH三大框架整合
- s2sh三大框架整合
- 三大框架整合说明
- SSH2三大框架整合
- 三大框架整合详解
- java 三大框架整合
- 三大框架整合步骤
- SSM 三大框架整合
- SSM三大框架整合
- SSH三大框架整合
- SSH 三大框架整合
- Oracle建表空间 建用户 授权
- 云存储的种类和适用的范围
- poj/pku 1607
- Setence Patterns to Learn Oral Speaking-3
- JDBC连接8种数据库的写法
- 三大框架整合有很多种我只说一种
- 各种开发工具的格式化代码
- JBOSS5.0 Beta4 配置详解
- 让查询结果按in(1,2,3,4)查询顺序排列
- 在windows 7下安装和设置IIS 发布Silverlight站点
- SCOM 简单安装指南 [SCOM中文系列之二]
- 数据库设计中的14个技巧
- C语言编译过程
- web.xml中的三种写法