【javaWeb】第49天—— WEB实战项目
回顾: 注解: 格式: @interface 注解名{} jdk中三个注解 自定义注解: 注解属性: 接口中的方法 类型: 基本类型 String Class Annotation Enum 以上类型的一维数组 若一个注解有属性,使用的时候的必须有值 元注解 @Retention 保留到那个阶段 source class runtime @Target 作用在那个部分上 type method filed 文件上传: servlet3.0 没有web.xml 内嵌文件上传功能 支持注解开发 ….
注解开发:
@WebServlet(urlPatterns={"/demo1","/demo2"})
@WebListener
@WebFilter(urlPatterns={"/demo1","/demo2"})
文件上传要求
浏览器要求
1.提交方式post
2.提供文件上传组件 input type="file"
3.表单enctype属性的值 multipart/form-data
servlet3.0服务器要求
在servlet上添加注解 @MultipartConfig
普通上传组件:
request.getParameter()
文件上传组件
Part part=request.getPart(name值)
获取文件的名称
part.getHeader("content-disposition");然后截取就可以
获取文件的流
part.getInputStream()
对拷流
删除临时文件
part.delete()
文件上传注意问题:
文件重名:随机名称
文件安全:
文件目录:
用户
时间
数量
随机
/
动态代理: jdk中Proxy 前提:要求代理对象和被代理对象要实现接口
Object Proxy.newProxyInstance(ClassLoader loader,Class[] interfaces,InvoctaionHandler h);
参数:
ClassLoader loader:一般使用的被代理对象使用的loader 被代理对象.getClass().getClassLoader()
Class[] interfaces:一般使用的被代理对象实现的所有接口 被代理对象.getClass().getInterfaces()
InvoctaionHandler:接口 执行处理类
里面有一个方法需要实现
Object invoke(Object proxy,Method method,Object... args)
参数:
proxy:代理对象,不要使用
method:当前执行的方法
args:当前方法所需要的参数
商城的实体: 用户 订单 商品 分类 / 准备工作: 数据库和表 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;
项目
包结构
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
前台页面
将页面拷贝到项目中
// 用户模块: 注册 发送邮件的方式发送激活码 激活 登录 退出
通用servlet设计
扩展: 使用算法加密密码 md5加密 不对称的加密,不可逆 在数据库中可以使用 md5(字段|值) java中api
电子邮箱:就是在邮件服务器上开启的一块空间 服务器:提供邮件服务 协议:规定数据的格式
发送邮件的协议:smtp 接受邮件的协议:pop / pop3 imap
/ 本地的服务器 : 邮件服务器 设置域名 store.com 新增几个账户 (普通用户) jack tom 新增一个管理员账户 service
.///
