JAVAEE——SSH项目实战05:用户注册、登陆校验拦截器、员工拜访客户功能和MD5加密

作者: kent鹏  

转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7170519.html 

一、用户注册

   

   显示错误信息到页面上的另一种方法:

    public String regist() throws Exception {
        // 1 调用Service保存注册用户
        try {
            userService.saveUser(user);
        } catch (Exception e) {
            e.printStackTrace();
            ActionContext.getContext().put("error", e.getMessage());
            return "regist";
        }
        // 2 重定向到登陆页面
        return "toLogin";
    }

   jsp:

<font color="red" ><s:property value="#error" /> </font>

 

二、登陆校验拦截器

  1.拦截器

public class PrivilegeInterceptor extends MethodFilterInterceptor {

    @Override
    //不校验登陆和注册方法
    protected String doIntercept(ActionInvocation invocation) throws Exception {
        //1 获得Session
            Map<String, Object> session = ActionContext.getContext().getSession();
        //2 获得登陆标识
            User user = (User) session.get("user");
        //3 判断标识是否存在
            if(user != null){
                //存在=> 放行
                return invocation.invoke();
            }else{
                //不存在=> 重定向到登陆页面
                return "toLogin";
            }    
    }
}

  2.struts.xml

        <interceptors>
        <!-- 注册拦截器 -->
            <interceptor name="privilegeInterceptor" class="cn.itcast.web.interceptor.PrivilegeInterceptor"></interceptor>
                
        <!-- 配置拦截器栈 -->
            <interceptor-stack name="myStack">
                <interceptor-ref name="privilegeInterceptor">
                    <param name="excludeMethods">login,regist</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <!-- 指定默认拦截器栈 -->
        <default-interceptor-ref name="myStack"></default-interceptor-ref>
        
        <!-- 全局结果集配置 -->
        <global-results>
            <result name="toLogin" type="redirect" >/login.jsp</result>
        </global-results>

 

三、员工拜访客户功能

  1.表|实体设计

   

 

   

  2.客户拜访记录添加

   

   时间控件在jsp的运用:

<!-- 使用日期控件步骤1: 导入js和css -->
        <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
        <link rel="stylesheet" href="${pageContext.request.contextPath }/js/datepicker/jquery.datepick.css" type="text/css">
        <script type="text/javascript" src="${pageContext.request.contextPath }/js/datepicker/jquery.datepick.js"></script>
        <script type="text/javascript" src="${pageContext.request.contextPath }/js/datepicker/jquery.datepick-zh-CN.js"></script>
<script type="text/javascript">
    
<!-- 使用日期控件步骤2: 当页面加载完成时,调用 datepick方法指定需要应用的文本框 -->
    $(document).ready(function(){
            // yy 已经代表了4位的年份
            // mm 代表月份
            // dd 代表日期
        $('#visit_time').datepick({dateFormat: 'yy-mm-dd'}); 
        $('#visit_nexttime').datepick({dateFormat: 'yy-mm-dd'}); 
    });
</script>

  3.客户拜访记录列表

   作业:再增加一个查询条件,就是根据业务员来查询

  4.客户拜访记录修改

   

 

四、MD5加密

   

public class MD5Utils {
    /**
     * 使用md5的算法进行加密
     */
    public static String md5(String plainText) {
        byte[] secretBytes = null;
        try {
            secretBytes = MessageDigest.getInstance("md5").digest(
                    plainText.getBytes());
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有md5这个算法!");
        }
        String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
        // 如果生成数字未满32位,需要前面补0
        for (int i = 0; i < 32 - md5code.length(); i++) {
            md5code = "0" + md5code;
        }
        return md5code;
    }

    public static void main(String[] args) {
        System.out.println(md5("1234"));
    }
}

 

posted @ 2017-07-14 15:44  kent鹏  阅读(797)  评论(0编辑  收藏  举报