黑马旅游网项目总结

黑马旅游网项目总结

项目启动

这里使用的是事先准备的项目模板,然后在这个基础上进行代码编写
首先导入项目模板
直接将项目文件夹放入指定的位置,然后在idea中打开,直接使用maven的tomcat7:run命令运行;
在这个过程中遇到一些问题:
1.由于项目比较老,所以遇到jar包下载不到,或者下载不全的问题首先是
在这里插入图片描述
这里显示我的maven的包出了一些问题,原来的pom文件是:

    <!--maven插件-->
    <plugins>
      <!--jdk编译插件-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>

后来改为

   <!--maven插件-->
        <plugins>
            <!--jdk编译插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>

2.经常会出现tomcat端口被占用:
问题出在这里:

 <!--tomcat插件-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <!-- tomcat7的插件, 不同tomcat版本这个也不一样 -->
                <artifactId>tomcat7-maven-plugin</artifactId>
               <version>2.1</version>
                <configuration>
                    <!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 -->
                    <port>83</port>
                    <!-- 项目访问路径  本例:localhost:9090,  如果配置的aa, 则访问路径为localhost:9090/aa-->
                    <path>/travel</path>
                </configuration>
            </plugin>

        </plugins>

这里更改一下端口号即可,如上所示,网站访问的地址为:
http://localhost:83/travel/
3.还有一个bug在这里插入图片描述
目前这个bug查了一下应该是版本的问题,但是不影响具体的使用,所以忽略了。

技术选型

1 Web层

a)Servlet:前端控制器
b)html:视图
c)Filter:过滤器
d)BeanUtils:数据封装
e)Jackson:json序列化工具

2 Service层

f)Javamail:java发送邮件工具
g)Redis:nosql内存数据库
h)Jedis:java的redis客户端

3 Dao层

i)Mysql:数据库
j)Druid:数据库连接池
k)JdbcTemplate:jdbc的工具

4 创建数据库
这里直接使用项目中准备好的sql命令创建即可

注册模块的实现

页面展示:
在这里插入图片描述

功能分析

在这里插入图片描述
首先明确的是:由于项目中使用的都是html页面,所以必须使用ajax去提交数据,如果使用表单提交,每次提交都会刷新页面。
首先在页面中利用js结合正则表达式对输入进行限制,如果不满足条件就将输入框变为红色,离开焦点的时候也同样对输入框中的内容进行判断。这里有一点需要非常注意
如果提交表单的按钮中有设定属性为submit,一定会按照提交表单的方式提交数据,而不走ajax的判断语句,解决办法是将按钮的type属性设置为button,然后设置一个点击事件。在点击事件中设置ajax的逻辑语句
在这里插入图片描述
上图中可以看到使用$("#registerForm").serialize()方法,可以将表单中的数据转换成json格式数据。

邮件激活功能模块

功能分析

在这里插入图片描述

在之前的注册功能模块中在UserService中的registerUSer方法中去设置一个激活码以及将状态码设置成‘N’,code使用UUid工具类,获得一个独一无二的激活码

 public boolean registerUser(User user) {
            //1.check user
            if(!dao.checkUser(user)){
                //2.save user
                user.setStatus("N");
                user.setCode(UuidUtil.getUuid());
                dao.saveUser(user);
                MailUtils.sendMail("XXXXXXXXXX@qq.com","请点击<a href='http://localhost:83/travel/activeUserServlet?code="+user.getCode()+"'"+">激活</a>","激活邮件");
                return true;
            }
            else return false;
        }S

用户通过点击这个超链接之后会将code数据传给activeUserServlet,在该servlet中进行判断,如果激活码为空,就不去进行后面的工作了,反正只是浪费资源,如果不为空就根据激活码去查询对象,如果有该对象,就将状态码改为‘Y’并且跳转到提示登录的界面,这里需要注意一点:
在这里插入图片描述
需要给工具类中的这两个变量赋值,第一个是发送邮件的邮箱地址,第二个是密码,但是我在实际操作过程中发现发送不出去,原来是需要去官网申请一个授权码,然后在密码一栏输入授权码即可,具体操作过程详见:
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

总结

注册模块和邮箱模块实际上实现不是很难,不过项目导入经常遇到一些奇怪的问题。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值