传智播客java学习--教育办公系统1

今天,我们开始了佟老师的教育办公系统的旅程:我做了简单的笔记:

 

       1. 搭建 SSH 环境

       1). 加入 Struts:

              ①. 加入 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

              ②. 加入配置文件: 注意: 不能直接复制 struts-1.3.8/apps/struts-blank-1.3.8/WEB-INF/web.xml 文件到 WEB-INF 下, 因为这样会导致 el 不可用

 

       2). 加入 Hibernate:

              ①. 加入 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 相比版本较低, 应该删除.    

              ③. 配置文件: 和 Spring 集成, 使用 Spring 来替代 Hibernate.cfg.xml 文件

 

       3). 加入 Spring:

              ①. 加入 jar 包: /spring-framework-2.5.6.SEC01/dist/spring.jar, spring-framework-2.5.6.SEC01/dist/modules/spring-webmvc-struts.jar,

                              /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 新导入的 commons-logging.jar 和 Struts 中的 commons-logging-1.0.4.jar 相比版本较高, 应把  commons-logging-1.0.4.jar 删除

              ③. 配置文件:

                     *在 web 应用中加入 spring

                     *集成 struts:

                     *集成 hibernate:

                            >加入 C3P0 数据源:

                            >配置 SessionFactory 对象

 

       4). 加入 Hibernate 的二级缓存:

              ①. 在 applicationContext.xml 文件的 sessionFactory 中加入相关配置.

              ②. 到 jar 文件

              ③. 加入 ehcache.xml

              ④. 在每一个       hbm 文件中配置使用缓存的策略            

 

       5). 配置 spring 提供的字符编码过滤器

              ①. 参考 spring API 的 org.springframework.web.filter.CharacterEncodingFilter

              ②. 在 web.xml 中添加过滤器

 

       6). 在 spring 的配置文件中配置 spring 的声明式事务

 

2. 复制的文件夹:

       1). common: 存放公共 jsp 文件

       2). css: 存放项目 css 文件

       3). images: 存放项目使用的图图片   

       4). script: 存放 jQuery 及其插件

 

3. 登录:

       1). ActionForm: 在一个模块中, 尽可能的使用一个 ActionForm 类. 因为需要使用 struts 的 validator 验证框架,

                  所以 FormBean 继承 org.apache.struts.validator.ValidatorForm

       2). 若使用 DispatchAction, 则意味着多个请求对应一个 <action> 节点的配置, 即多个请求对应一个 ActionForm Bean, 即多个请求使用一种验证规则,

                  则在很多时候是不合适的. 例如: 员工模块的登录和注册使用的可能就是不同的验证规则. 使用 MappingDispatchAction

 

       3). 前台 js 验证

       ①: loginname 和 loginpassword 字段除去前后空格不能为空

       ②: loginname 和 loginpassword 字段除去前后空格, 不能少于 6 个字符

       ③: loginname 中不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_  

 

       ①, ②解决方法: 使用 jQuery 的 $.trim() 方法和  length 属性.

 

       ③解决方案: 使用正则表达式验证 "以字母开头, 后边还可以包含数字和_ ":

       var reg = /^[a-zA-Z]/w+/w$/gi;

       使用 js 正则表达式的 test() 方法判断是否符合该正则表达式

 

       另外的, 使用 js 正则去除前后空格: var reg = /^/s*|/s*/g;

       str = str.replace(reg, "");

 

       4). 使用 struts 的 validation 框架进行服务器端简单验证, 验证要求同 3).

       ①. 在 struts-config.xml 文件中配置 struts 的 validation 框架

       ②. 通过在页面使用 <%= request.getAttribute("org.apache.struts.action.ERROR") %>, 得知 validation 框架验证失败时放入 ActionMessages 中的 key,

                 该 key 即为需要验证的字段的名字

       ③. 但是使用 validation 验证不能自动的去除前后空格!!

              *在 ActionForm 中对字段进行赋值时, 事先去除前后空格         

              *修改 struts 源代码: 在本地的 src 目录下新建 org.apache.struts.validator 包, 在 org.apache.struts.validator 包下新建 FieldChecks 类,

                 修改该类的 validateMinLength 方法, 在其中添加如下代码:

 

                  if(value != null)

                     value = value.trim();

               try {

                            PropertyUtils.setProperty(bean, field.getProperty(), value);

                     } catch (Exception e1) {

                            e1.printStackTrace();

                     }

 

 

       5). 若上述两种验证都通过, 则请求到达 Action 的方法, 查询数据库, 匹配用户的输入信息, 返回页面

              ①: 用户名不存在,  提示信息为: "用户名不存在"

              ②: 用户名存在, 但用户名和密码不匹配, 提示信息为: "用户名和密码不匹配"

              ③: 匹配, 返回请求页面

 

              方案:

              使用 struts 的声明式异常来转发页面和显示提示信息.

 

              解决:

              由 EmployeeService 的方法抛出异常, Action 不进行处理, 而由 struts 框架根据当前的 action 节点配置来进行相应的处理:

                  如果出现对应的异常, 会利用当前 excpeption 配置节点的 key 生成对应的 ActionMessage 对象, 再放入 ActionMessages 中,

                 把页面派发到 input 对应的页面中,  在前台页面利用 <html:errors property="key"> 进行显示       

 

 

今天学的知识就是这些了,希望明天有更好的状态学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值