今日任务

  • 完成用户模块的功能

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:

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

  1. ESP32学习笔记(一) 环境搭建与下载

    ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...

  2. Solr学习笔记之1、环境搭建

    Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...

  3. Java学习笔记【一、环境搭建】

    今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...

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

    今日任务 完成用户模块的功能 1.1      网上商城的实战: 1.1.1    演示网上商城的功能: 1.1.2    制作目的: 灵活运用所学知识完成商城实战. 1.1.3    数据库分析和设 ...

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

    今日任务 完成后台的功能模块 1.1      网上商城的后台功能的实现: 1.1.1    后台的功能的需求: 1.1.1.1  分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * ...

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

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

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

    Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...

  8. Cocos2d-x 3.2 学习笔记(一)环境搭建

    目前项目无事,时间比较充裕,因此来学习下cocos2dx,当然本人也是新手一个, 写此笔记做备忘和脚步. 最近3.2版本更新出來了!官方说这是自2.x分支以来修复了超过450个bug,3.2版本是目前 ...

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

    Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具:      1.Sublime Text 2 ...

随机推荐

  1. 对quartz定时任务的初步认识

    已经好久没有写技术博文了,今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看 ...

  2. contos 7/redhat 7 安装mysql

    1.给网卡配置ip.掩码.网关   2.添加dns,编辑文件:/etc/resolve.conf nameserver 202.96.209.133       //上海本地dns nameserve ...

  3. 记录参加QCon的心得

    如有侵权,请告知作者删除.scottzg@126.com 很荣幸参加QCon全球软件开发大会,这里特别感谢我们部门的总经理,也是<互联网广告算法和系统实践>此书的作者王勇睿.因为他我才有这 ...

  4. xmlplus 组件设计系列之四 - 列表

    列表组件是极其常用的一类组件,是许多视图组件系统的必须包含的.列表可以做的很简单,只显示简洁的内容.列表也可以做的很复杂,用于展示非常丰富的内容. 组成元素 列表离不开列表项以及包含列表项的容器.下面 ...

  5. C语言结构体中字符数组的问题

    第一个程序 #include <stdio.h> #include <string.h> typedef struct student { char name[10]; int ...

  6. JQuery 通过方向键控制div上下左右移动

    在CSS中当DOM元素的position属性为absolute或relative时,我们可以通过改变这个元素的left和top属性的具体值来控制元素在页面中显现的位置. 利用上述属性,我们可以简单实现 ...

  7. mui开发app之自定义事件以更新其他页内容

    我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...

  8. WebGIS开源解决方案之开发环境搭建(一)

    工欲善其事,必先利其器,本文主要讲述WebGIS开源解决方案之环境搭建--geoserver的安装 安装方式一:tomcat环境下安装 从tomcat官网下载tomcat环境,下载链接:http:// ...

  9. springboot(十):邮件服务

    springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...

  10. C# Webclient 和 Httpclient如何通过iis authentication 身份验证。

    前言: 该博客产生的背景是客户那边有部署网站的方法是iis windows authentication身份验证,而系统中使用Webclient来调用别的系统的方法.在此情况下,原本可以使用的功能,都 ...