【JAVAWEB学习笔记】网上商城实战:环境搭建和完成用户模块

网上商城实战

今日任务

  • 完成用户模块的功能

1.1      网上商城的实战:

1.1.1    演示网上商城的功能:

1.1.2    制作目的:

灵活运用所学知识完成商城实战。

1.1.3    数据库分析和设计:

1.1.4    代码实现:

1.1.4.1  通用的Servlet的编写:

传统的方式:

传统的方式:
* 一个请求对应一个Servlet.
* 能不能一个模块对应一个Servlet.

一个模块对应一个Servlet:
<a href=”/UserServlet?method=add”>添加</a>
<a href=”/UserServlet?method=update”>修改</a>
<a href=”/UserServlet?method=delete”>删除</a>

public class UserServlet extends HttpServlet{

   public void service(HttpServletRequest req,HttpServletResponse resp){
           String method = req.getParameter(“method”);
           if(“add”.equals(method)){
               add(req,resp);
           }else if(“update”.equals(method)){
               update(req,resp);
           }
   }

   public void add(HttpServletRequest req,HttpServletResponse resp){

   }

   public void update(HttpServletRequest req,HttpServletResponse resp){

   }

}

改进以后:
public class BaseServlet extends HttpServlet{
   public void service(HttpServletRequest req,HttpServletResponse resp){
           String methodName = req.getParameter(“method”);
           // 反射:
           Class clazz = this.getClass(); // 指代的是子类的对象.
           Method method = clazz.getMethod(methodName ,HttpServletRequest.class,HttpServletResponse,class);
           method.invoke(this,req,resp);
   }

}

public class UserServlet extends BaseServlet{

   public void add(HttpServletRequest req,HttpServletResponse resp){

   }

   public void update(HttpServletRequest req,HttpServletResponse resp){

   }

}

public class A{
   public A(){
      System.out.println(this.getClass());
   }
}

public class B extends A{
    Public B(){

    }
}

public class Test{
   Public static void main(String[] args){
       B b = new B();
   }
}

1.1.4.2  BaseServlet的代码实现:

【创建包结构】

【代码实现】

public class BaseServlet extends HttpServlet{

    @Override

    // http://loacalhost:8080/store/UserServlet?method=add

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 处理Post请求的乱码

        req.setCharacterEncoding("UTF-8");

        // 接收参数:

        String methodName = req.getParameter("method");

        // 反射获得类的字节码.

        Class clazz = this.getClass();

        // 获得正在执行的类的指定名称的方法

        try {

            Method method = clazz.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);

            // 让这个方法执行:

            String path = (String) method.invoke(this, req,resp);

            if(path != null){

                req.getRequestDispatcher(path).forward(req, resp);

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

1.1.4.3  环境的搭建:

【创建一个WEB工程】

【创建包结构】

【引入相应的jar包】

    * mysql驱动          1

    * dbutils            1

    * c3p0连接池         1

    * beanutils          2

    * JSTL               2

    * 文件上传            2

    * 发送邮件            1

【创建数据库和表】

CREATE TABLE `user` (

  `uid` varchar(32) NOT NULL,

  `username` varchar(20) DEFAULT NULL,

  `password` varchar(20) DEFAULT NULL,

  `name` varchar(20) DEFAULT NULL,

  `email` varchar(30) DEFAULT NULL,

  `telephone` varchar(20) DEFAULT NULL,

  `birthday` varchar(20) DEFAULT NULL,

  `sex` varchar(10) DEFAULT NULL,

  `state` int(11) DEFAULT NULL,

  `code` varchar(64) DEFAULT NULL,

  PRIMARY KEY (`uid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.2      前台用户模块:

1.2.1    注册

1.2.1.1  异步校验用户名是否存在

1.JS的事件触发一个函数.

2.使用AJAX异步向服务器发送请求.

3.得到返回的数据进行判断.

4.将信息写入到文本框后面span元素中.

1.2.1.2  完成用户注册

1.在注册页面中输入信息.

2.点击注册,提交到Servlet.

3.接收数据,封装数据.

4.在Servlet调用业务层.

5.页面跳转.

1.2.1.3  发送激活邮件

1.使用JavaMail的技术-了解.

* 了解邮件相关内容:

* 术语:

* 电子邮箱:一个邮箱服务器上的一个账号,通过账号获得到服务器上一块空间.

* 邮箱服务器:一台电脑安装一个邮箱的服务器.

* 邮件收发的协议:协议规范双方的数据的格式.

* 协议:

* 接收:POP/POP3  IMAP

* 发送:SMTP

* 邮件收发过程:

* 会配置邮箱的客户端:

【配置邮箱服务器:】

安装成功!

第一步:

点击工具→服务器设置

第二步:

第三步:

点击账号→新建账号

【配置邮箱的客户端】

* Foxmail:免费的

* 输入用户名

* 输入密码:

* 修改服务器的地址localhost.

* outlook:微软的收费的.

1.2.2    激活

在邮箱的界面点击激活链接:

提交到Servlet传递一个激活码:

根据激活码进行查询用户:

* 如果查询到该用户:修改用户的状态.

* 如果没有查询到该用户:激活失败.

1.2.3    登录

在登录页面上输入用户名和密码

点击提交:提交到Servlet.

在Servlet中接收参数

调用业务层

页面跳转

1.2.3.1  记住用户名

使用Cookie记住用户名:

* 自己完成

1.2.3.2  自动登录

使用Cookie记住用户名和密码:

使用过滤器:

* 自己完成

1.2.4    退出

* 在首页上点击退出的链接:

* 提交到Servlet:

* 销毁session:

时间: 2024-10-17 08:42:08

【JAVAWEB学习笔记】网上商城实战:环境搭建和完成用户模块的相关文章

【JAVAWEB学习笔记】网上商城实战5:后台的功能模块

今日任务 完成后台的功能模块 1.1      网上商城的后台功能的实现: 1.1.1    后台的功能的需求: 1.1.1.1  分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * 提交到Servlet: * 查询所有的分类: * 显示到页面中: [添加分类] * 在分类列表页面中点击[添加]按钮. * 提交到Servlet跳转到添加页面. * 输入信息点击[确定]按钮. * 提交到Servlet完成保存分类的功能. [修改分类] * 在分类列表页面中点击[编辑]链接: *

【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】

Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:[email protected] 前言: 最近需要学习Unity3d游戏中的热更新技术,选择ULua方案,因此准备学习一些Lua的基础知识.之前在Ubuntu上曾经写过Lua版本的"HelloWorld", 但那时的环境搭建只需要下载源码,然后 make & make install 就可以了,但一到Windows下就完全不会做了.经过网络查找对比,得到目前自认为较好

Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔记系列>.其实,早在2014年Hadoop2.x版本就已经开始流行了起来,并且已经成为了现在的主流.当然,还有一些非离线计算的框架如实时计算框架Storm,近实时计算框架Spark等等.相信了解Hadoop2.x的童鞋都应该知道2.x相较于1.x版本的更新应该不是一丁半点,最显著的体现在两点: (1)H

python学习笔记二:IDE环境搭建

工欲善其事,必先利其器.每个IDE都有自己的优点,适合的才是最好的. [伯乐在线]Python 非常易学,强大的编程语言.Python 包括高效高级的数据结构,提供简单且高效的面向对象编程.Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE).这些 Python 开发工具帮助开发者加快使用 Python 开发的速度,提高效率.高效的代码编辑器或者 IDE 应该会提供插件,工具等能帮助开发者高效开发的特性.最好的 10 款 Python IDEs,这里详细介绍前两

学习笔记2-安卓开发环境搭建、创建虚拟机

下载安装开发插件ADT 1.      http://dl.google.com/android/ADT-22.3.0.zip 后面是对应版本就可以.可以根据自己需求下载 我用的是15.0.0 百度网盘下载链接:http://pan.baidu.com/s/1nt4zsut 密码:5o2d 2.      我使用的是eclipse luna/Kepler,Help→Install New Software→Add name:ADT location:选择ADT文件 全选,把最下面的自动连接网络更

TypeScript学习笔记(一) - 环境搭建

本篇将简单介绍一下TypeScript,并记录开发环境的搭建.使用Visual Studio Code进行一个简单的Demo开发过程. 第一部分.简介 TypeScript是一种由微软开发的自由和开源的编程语言.是JavaScript的一个超集.它在保留JavaScript语言本身特性的基础上添加了大量静态语言具有的一些特性,包括但不限于以下几点: 可选的静态类型 枚举.接口和类 命名空间 模块 Lambda表达式 编译时类型检查 在2013年6月微软正式发布了0.9版.之后在不断更新的过程中逐

cocos2dx-js学习笔记(一)环境搭建

本人眼下的学习方向是cocos2dx+js的开发方式,开发调试使用webstrom和火狐浏览器,调试完毕的项目使用cocos2dx+jsb的方式编译到PC或android设备执行.主要时间用在学习,所以博客仅仅记录一些流程和关键问题的解决,不会太具体. 下载文件: 1.下载官方cocos2d-js-v3.0alpha2,眼下是这个版本号 2.下载webstrom 3.下载Firefox浏览器 搭建流程: 1.解压或安装上述三个文件. 2.打开webstrom,选择最后一项一项"Source fi

Git学习笔记1--特点及环境搭建

Git的简介: 是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git与SVN的区别: Git是分布式的,而SVN是集中式的 SVN需要有一个中央服务器用来存放版本库,在使用时需要先从中央服务器下载最新的版本,然后进行修改,修改后需要再提交到中央服务器.这样的缺点是必须联网,而且如果文件太大而网速又不是很好,使用起来会非常麻烦. Git是一个分布式版本管理系统,也就是每一台使用者的电脑都有一个完整的版本库,

Lua 学习笔记(一)环境搭建

Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 工具: 1.Sublime Text 2 2.LuaForWindows_v5.1.4-46.exe 为了方便开发,借助于Sublime Text 2来学习和运行lua文件,当然Sublime Text 2也是我最喜欢和最强大的文本编辑器,完全可以用来做开发IDE. 首先,安装LuaForWindows_v5.1.4-46.exe到本地, 下载安装Sublime Text 2后,找到安装