目录
一、商城的实体
1-1 准备工作
1-1-1 数据库和表
1-1-2 项目
二、用户模块
2-1 通用servlet设计
2-1-1 添加用户的时候
2-1-2 修改用户的时候
2-1-3 在userservlet中doget方法中
2-1-4 我们可以直接重写service方法即可
2-1-5 BaseServlet extends HttpServlet{}(编写父类)
2-1-6 在baseservlet中重写service方法
2-1-7 完善请求转发
2-1-8 BaseServlet实现
三、案例1-用户注册
3-1 步骤实现
3-1-1 在index.jsp上点击 注册页面 跳转到register.jsp
3-1-2 点击注册
3-1-3 在userservlet中编写一个registUI 方法
3-2 完成注册
3-2-0 jsp页面
3-2-1 regist
3-2-2 userservice中的service
3-2-3 userdao dao 添加一条数据
3-3 解决-BeanUtils不支持字符串装成时间
3-4 扩展-使用算法加密密码
3-5 电子邮箱:就是在邮件服务器上开启的一块空间
3-6 本地的服务器
3-6-1 邮件服务器—-安装 易邮软件
3-6-2 新增几个账户
3-7 收件箱安装 Foxmail 并创建用户—接受邮件的服务器为本机
3-8 邮件工具类
3-9 服务器发送邮件(在 service中实现)
四、案例2-用户激活
4-1 邮箱的连接点击
4-2 需要在UserServlet编写一个active
4-3 userService中
五、案例3-用户登录
5-1 步骤分析
5-1-1 在index.jsp上登录连接 点击 跳转到login.jsp
5-1-2 修改页面上的form表单 action method 每个标签添加name属性
5-1-3 login操作
5-1-4 页面重定向到首页上
六、案例4-用户退出
6-1 步骤分析
6-1-1 点击用户退出
6-1-2 编写logout方法
-
一、商城的实体
用户
订单
商品
分类
-
1-1 准备工作
-
1-1-1 数据库和表
create database store28;
use store28;
CREATE TABLE `user` (
`uid` varchar(32) NOT NULL,
`username` varchar(20) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`telephone` varchar(20) DEFAULT NULL,
`birthday` date 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-1-2 项目
包结构
com.itheima.web.servlet
com.itheima.web.filter
com.itheima.service —service 的接口
com.itheima.service.impl —service 的实现类
com.itheima.dao —dao的接口
com.itheima.dao.impl —dao 的实现类
com.itheima.domain
com.itheima.utils
com.itheima.constant
jar包
驱动
c3p0
dbuitls
beanutils
jstl
邮件
工具类和配置文件
datasourceutils 和 c3p0配置文件
uuidutils
uploadutils
md5uitls
mailutils
前台页面
将页面拷贝到项目中
-
二、用户模块
注册
发送邮件的方式发送激活码
激活
登录
退出
-
2-1 通用servlet设计
只定义一个Userservlet
重写doget和dopost
-
2-1-1 添加用户的时候
以前: /store/addUser
现在: /store/userethod=add
-
2-1-2 修改用户的时候
以前: /store/updateUser
现在: /store/userspan style=”color:#f33b45;”>method=update
-
2-1-3 在userservlet中doget方法中
Stirng m=request.getParameter(“method”);
if(“add”.equals(m)){
add(HttpServletRequest,HttpServletResponse)
}else if(“update”.equals(m)){
update(HttpServletRequest,HttpServletResponse)
}else if(){
}
-
2-1-4 我们可以直接重写service方法即可
在service方法中写上面的判断代码即可
但对于每个servlet都要写 重复的 判断代码——结构一样
-
2-1-5 BaseServlet extends HttpServlet{}(编写父类)
其他的servlet继承baseServlet
-
2-1-6 在baseservlet中重写service方法
1.获取请求的方法
2.找到相应的子类 父类中的this代表的是子类
Class clazz=this.getClass()
3.子类调用方法 ——所有都 if else,不能全包含,太麻烦,反射——可以获取所有方法
通过方法名称 获取一个指定的方法
Method m=clazz.getMethod(方法名,HttpServletRequest.class,HttpServletResponse.class)
方法执行
m.invoke(this,HttpServletRequest,HttpServletResponse);
-
2-1-7 完善请求转发
以前在servlet中 我们执行方法之后无非 请求转发 重定向 打印数据
请求转发 reuqest.getRequestDispatcher().forward()
继续完善我们baseservlet中service
在第3步,方法执行返回值,
现在我让所有的方法都返回一个字符串 add update
字符串代表的是请求转发的路径
若该方法不转发只需要返回一个null
String s=(String)m.invoke(this,HttpServletRequest,HttpServletResponse);
if(s!=null){
reuqest.getRequestDispatcher(s).forward(…);
}
-
2-1-8 BaseServlet实现
-
三、案例1-用户注册
-
3-1 步骤实现
-
3-1-1 在index.jsp上点击 注册页面 跳转到register.jsp
-
3-1-2 点击注册
-
3-1-3 在userservlet中编写一个registUI 方法
请求转发到 register.jsp即可.
-
3-2 完成注册
-
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!