• 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"));
        }
    }
  • 相关阅读:
    进程状态
    VMware虚拟机的三种联网方法及原理
    关于C++迭代器失效
    头文件:limits.h、float.h
    正则表达式之一:元符号
    MYSQL之批量插入数据库
    PHP之如何判断数字(数字字符串不算)
    使用Process Monitor来得到程序运行参数
    Abusing the C preprocessor
    1+1还是1+1=2?
  • 原文地址:https://www.cnblogs.com/xieyupeng/p/7170519.html
Copyright © 2020-2023  润新知