【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:
【JAVAWEB学习笔记】网上商城实战:环境搭建和完成用户模块的更多相关文章
- ESP32学习笔记(一) 环境搭建与下载
ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- Java学习笔记【一、环境搭建】
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...
- 【JAVAWEB学习笔记】网上商城实战1:环境搭建和完成用户模块
今日任务 完成用户模块的功能 1.1 网上商城的实战: 1.1.1 演示网上商城的功能: 1.1.2 制作目的: 灵活运用所学知识完成商城实战. 1.1.3 数据库分析和设 ...
- 【JAVAWEB学习笔记】网上商城实战5:后台的功能模块
今日任务 完成后台的功能模块 1.1 网上商城的后台功能的实现: 1.1.1 后台的功能的需求: 1.1.1.1 分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】
Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...
- Cocos2d-x 3.2 学习笔记(一)环境搭建
目前项目无事,时间比较充裕,因此来学习下cocos2dx,当然本人也是新手一个, 写此笔记做备忘和脚步. 最近3.2版本更新出來了!官方说这是自2.x分支以来修复了超过450个bug,3.2版本是目前 ...
- Lua 学习笔记(一)环境搭建
Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具: 1.Sublime Text 2 ...
随机推荐
- 对quartz定时任务的初步认识
已经好久没有写技术博文了,今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看 ...
- contos 7/redhat 7 安装mysql
1.给网卡配置ip.掩码.网关 2.添加dns,编辑文件:/etc/resolve.conf nameserver 202.96.209.133 //上海本地dns nameserve ...
- 记录参加QCon的心得
如有侵权,请告知作者删除.scottzg@126.com 很荣幸参加QCon全球软件开发大会,这里特别感谢我们部门的总经理,也是<互联网广告算法和系统实践>此书的作者王勇睿.因为他我才有这 ...
- xmlplus 组件设计系列之四 - 列表
列表组件是极其常用的一类组件,是许多视图组件系统的必须包含的.列表可以做的很简单,只显示简洁的内容.列表也可以做的很复杂,用于展示非常丰富的内容. 组成元素 列表离不开列表项以及包含列表项的容器.下面 ...
- C语言结构体中字符数组的问题
第一个程序 #include <stdio.h> #include <string.h> typedef struct student { char name[10]; int ...
- JQuery 通过方向键控制div上下左右移动
在CSS中当DOM元素的position属性为absolute或relative时,我们可以通过改变这个元素的left和top属性的具体值来控制元素在页面中显现的位置. 利用上述属性,我们可以简单实现 ...
- mui开发app之自定义事件以更新其他页内容
我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...
- WebGIS开源解决方案之开发环境搭建(一)
工欲善其事,必先利其器,本文主要讲述WebGIS开源解决方案之环境搭建--geoserver的安装 安装方式一:tomcat环境下安装 从tomcat官网下载tomcat环境,下载链接:http:// ...
- springboot(十):邮件服务
springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...
- C# Webclient 和 Httpclient如何通过iis authentication 身份验证。
前言: 该博客产生的背景是客户那边有部署网站的方法是iis windows authentication身份验证,而系统中使用Webclient来调用别的系统的方法.在此情况下,原本可以使用的功能,都 ...