传智播客java学习--教育办公系统1_huangyu18_新浪博客
 

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

      

       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"> 进行显示       

 

 

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

郑重声明:资讯 【传智播客java学习--教育办公系统1_huangyu18_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——