day01_JavaWeb企业实战项目

1.通用Servlet的编写

	数据库增删改查 需要5个Servlet
	通过 Servlet 
	目的:减少Servler的数量

**原理:** 
   从客户端向服务端发起请求,每次都要传递额外的键值对的数据method=””,
   服务端获取到method对应的内容之后,通过判断不同的内容调用不同的功能

从客户端向服务端发起请求,调用功能方式:
 1_通过表单向服务端发起请求
 2_通过链接向服务端发起请求
 3_Ajax向服务端发起请求

1. 版本1
1. 项目下建立index.html
在这里插入图片描述 2.在项目下建立cn.itcast.servlet___>ServletDemo
在这里插入图片描述在这里插入图片描述
2. 版本2
方式一如果方法比较多会出现很多的If…else语句 。简直是太多的废话
方式二根据反射的原理,来执行方法。减少代码的冗余。简单的说抽取一个工具类BaseServlet。见下图

这就是一个工具类BaseServlet在这里插入图片描述

2. 搭建环境

  1. 创建DynamicWebProject(store_v5)

  2. 创建各个包结构
    cn.itcast.store.web.servlet
    cn.itcast.store.web.fitler
    cn.itcast.store.web.base
    Cn.itcast.store.service
    cn.itcast.store.service.serviceImp
    Cn.itcast.store.dao
    cn.itcast.store.dao.daoImp
    cn.itcast.store.domain
    Cn.itcast.store.utils

  3. 导入JAR包

  4. 导入工具类

  5. 导入配置文件
    C3P0配置文件,修改参数(dbname,user,pass) JDBCUtils:设置main方法,打印方法getConnection()返回值

  6. 导入编码过滤器(EncodingFilter)
    对过滤器中的request上的3个方法进行增强
    req.getParameterValues(); req.getParameterMap(); req.getParameter();
    手动对过滤器进行配置

  7. 导入BaseServlet ,不需要配置

  8. 导入JSP页面

  9. 创建了用户模块相关程序
    UserSerlvet UserService UserServiceImp UserDao UserDaoImp User

3. 实现用户注册

1. 开发约定
为了项目管理方便,不会从客户端直接发起请求到JSP页面.
先请求到Servlet,在由Servlet转发到JSP页面.
2. 页面路径跳转
1_ /jsp/index.jsp 修改连接

```powershell
 <a href="${pageContext.request.contextPath}/UserServlet?method=registUI">注册</a>
```
	2_UserServlet__>registUI
	  return “/jsp/regist.jsp”;

3. 注册功能原理分析
在这里插入图片描述4. 步骤实现

- 1 _准备工作   /jsp/regist.jsp
			  设置表单各种属性 action method 
- 2_UserServlet__>userRegist
			接收表单参数
			调用业务层注册功能
			注册成功,向用户邮箱发送信息,跳转到提示页面
			注册失败,跳转到提示页面
- 3_依次实现service,dao
- 4_ /jsp/info.jsp获取提示信息

4 电子邮箱

  1. 概念
*_邮件服务器:

公司服务器上安装软件,管理各个邮箱账户中的邮件 接收/发送
*_电子邮箱:
各个账户在服务器上开辟一段空间
*_邮件协议: 发送SMTP 接收:pop3/pop/imap
作用:约定了邮件在网络中传输格式
*_搭建邮件服务器
获取到eyoumailserversetup.exe ,安装即可

  1. 邮件协议
  • SMTP 协议-发邮件协议
    全称为 Simple Mail Transfer Protocol(简单邮件传输协议),它定义了邮件客户端软件与 SMTP服务器之间、以及两台 SMTP 服务器之间的通讯规则。
    端口号:25.

  • POP3 协议-收邮件协议
    全称为 Post Office Protocol(邮局协议),它定义了邮件客户端软件与POP3 服务器的通讯规则。
    端口号:110.

  1. 发送邮件流程
    在这里插入图片描述
  2. 使用JavaMail发送邮件
  • 导入 jar 包:
    在这里插入图片描述
  • 编写实现
/* 邮件发送过程
* * smtp 协议:邮件发送协议,端口号:25
* * pop3 协议:邮件接收协议,端口号:110
* 使用java 程序发送邮件,采用smtp 协议。java 提供javamail 用于发送邮件的,代码固定
* 126 --> itcast@126.com //账号不存在,需要自己注册
* 163 --> itheima@163.com //账号不存在,需要自己注册
*/
public static void main(String[] args) throws Exception {
//0.1 服务器的设置
Properties props = new Properties();
props.setProperty("mail.host", "smtp.126.com");
北京市昌平区建材城西路金燕龙办公楼一层电话:400-618-9090
props.setProperty("mail.smtp.auth", "true");
//0.2 账号和密码
Authenticator authenticator = new Authenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//126 账号和密码(模拟账号,需要自己注册)
return new PasswordAuthentication("itcast","123456");
}
};
//1 与126 服务器建立连接:Session
Session session = Session.getDefaultInstance(props, authenticator);
//2 编写邮件:Message
Message message = new MimeMessage(session);
//2.1 发件人(模拟账号)
message.setFrom(new InternetAddress("itcast@126.com"));
//2.2 收件人, to:收件人, cc :抄送,bcc:暗送(密送)。(模拟账号)
message.setRecipient(RecipientType.TO, new
InternetAddress("itheima@163.com"));
//2.3 主题
message.setSubject("这是我们得第一份邮件");
//2.4 内容
message.setContent("哈哈,您到我的商城注册了。", "text/html;charset=UTF-8");
//3 将消息进行发送:Transport
Transport.send(message);
}
  1. 搭建本地环境
  • 安装邮件服务器
    在这里插入图片描述
  • 安装客户端软件
    在这里插入图片描述
  • 参考
    -在这里插入图片描述
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class TestEmail {

	public static void main(String[] args) throws Exception {
		// 0.1 服务器的设置
		Properties props = new Properties();
		//props.setProperty("mail.host", "smtp.126.com");
		//props.setProperty("mail.smtp.auth", "true");
		// 0.2 账号和密码
		Authenticator authenticator = new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				// 126账号和密码(模拟账号,需要自己注册)
				//return new PasswordAuthentication("itcast", "123456");
				return new PasswordAuthentication("admin@store.com", "admin");
			}
		};

		// 1 与126服务器建立连接:Session
		Session session = Session.getDefaultInstance(props, authenticator);

		// 2 编写邮件:Message
		Message message = new MimeMessage(session);
		// 2.1 发件人(模拟账号)
		//message.setFrom(new InternetAddress("itcast@126.com"));
		message.setFrom(new InternetAddress("admin@store.com"));
		// 2.2 收件人 , to:收件人 , cc :抄送,bcc:暗送(密送)。(模拟账号)
		message.setRecipient(RecipientType.TO, new InternetAddress("aaa@store.com"));
		// 2.3 主题
		message.setSubject("这是我们得第一份邮件");
		// 2.4 内容
		message.setContent("哈哈,您到我的商城注册了。", "text/html;charset=UTF-8");

		// 3 将消息进行发送:Transport
		Transport.send(message);

	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值