NO.8--邮箱激活, 用户登录,

版权声明:转载需注明出处 https://blog.csdn.net/lr19941226/article/details/81208471

客户邮箱激活


流程分析:

  • 页面输入正确的邮箱
  • 点击注册提交注册信息, 保存用户信息,
  • 发送激活邮件
    • 通过JavaMail发送+邮件(加入依赖)
    • 手机号&激活码36位, 存入Redis(速度快)
  • 用户接受邮件, 点击激活链接, 激活账号
    • 根据手机号码获取Redis中的激活码, 对比激活链接地址中激活码是否一致

步骤:

  • Redis使用
    • Redis下载安装
    • Jedis 使用
    • spring data redis使用
    • 在spring的配置文件applicationContext.xml文件中添加 jedis的连接池配置, jedis的连接工厂, spring data 提供的Redis的模板
  • 客户注册时发送邮件并保存激活码到Redis
  • 通过JavaMail发送邮件
  • 完成邮箱激活功能
    • CRM服务提供WebService方法完成激活
    • 在CustomerAction 提供 activeMail方法

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <display-name>bos_fore</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

  <!-- 指定spring配置文件的位置 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <!-- 配置spring框架的监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 配置struts2框架的过滤器 -->

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

CustomerAction

@Action(value="customerAction_activeMail")
    public String activeMail(){

        ValueOperations<String, String> opsForValue = redisTemplate.opsForValue();

        if(StringUtils.isNotBlank(getModel().getTelephone())&&StringUtils.isNotBlank(activeCode)
                && activeCode.equals(opsForValue.get(getModel().getTelephone()))){
            customerService.activeByTelephone(getModel().getTelephone());
        }
         return NONE;
    }


@Action(value="customerAction_login" ,results={
            @Result(name = "success", location = "/index.html", type = "redirect"),
            @Result(name = "false", location = "/login-fail.html", type = "redirect")})
    public String login(){

        String sessionCode = (String) ServletActionContext.getRequest().getSession().getAttribute("validateCode");
        if(StringUtils.isNotBlank(getModel().getTelephone())&&
                StringUtils.isNotBlank(getModel().getPassword())
                && StringUtils.isNotBlank(sessionCode)
                && sessionCode.equals(checkcode)){
            String  falg = customerService.login(getModel().getTelephone(),getModel().getPassword());
            System.out.println(falg);
            if(falg.equals(SUCCESS)){
                return SUCCESS;
            }
        }

        return "false";
    }

2、前台系统客户登录


  • 在CRM中扩展登录方法
  • 在bos_fore中完成登录

3、省市区三级联动实现(city-picker)


  • 引入相关资源文件

  • 两种使用方式

    • HTML方式
    • JS方式

4、百度地图简介


展开阅读全文

没有更多推荐了,返回首页