【Java学习】JavaWeb-06|监听器、JDBC、事务、文件上传、邮件发送

86 阅读3分钟

监听器

理论来说,就是实现一个监听器的接口。

  • 编写一个监听器,实现监听器的接口
  • web.xml中注册监听器
  • 看情况是否使用

Session销毁

  • 手动销毁 getSession().invalidate()
  • 自动销毁

过滤器、监听器常见应用

监听器:GUI(图形界面)编程中经常使用

过滤器实现:用户登录之后才能进入主页,用户注销后就不能进入主页了。

  • 用户登录之后,向Session中放入用户的数据;
  • 进入主页的时候要判断用户是否已经登录(在过滤器中实现)。

JDBC

什么是JDBC:Java连接数据库

截屏2023-03-29 12.08.10.png 需要jar包的支持:

  • java.sql
  • javax.sql
  • mysql-connecter-java...(连接驱动)

JDBC一般步骤:

1.导入数据库依赖,加载驱动

2.连接数据库

3.向数据库发送SQL的对象Statement:CRUD

4.编写SQL语句(根据业务编写)

5.执行查询SQL,返回一个ResultSet(结果集)

受影响的行数

int i = statement.executeUpsate(sql);

6.关闭连接,释放资源(先开的后关)

注意: 为防止SQL注入,添加预编译

截屏2023-03-29 12.41.13.png

JDBC事务

事务:要么都成功,要么都失败! ACID原则:保证数据的安全。

开启事务
事务提交 commit()
事务回滚 rollback()
关闭事务

Junit单元测试

依赖

截屏2023-03-29 12.47.21.png

简单使用

@Test注解只有在方法上有效,只要加了这个注解的方法,就可以直接运行。

事务例子(一定要开启事务)

截屏2023-03-29 12.58.38.png

文件上传

截屏2023-03-29 22.44.53.png

注意事项

  • 为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。
  • 为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。
  • 要限制上传文件的最大值。
  • 可以限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。

需要用到的类

ServletFileUpload负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象,使用ServletFileUpload对象解析请求时需要DiskFileItemFactory对象。所以,我们需要在解析工作前构造好DiskFileItemFactory对象,通过ServletFileUpload对象的构造方法或setFileItemFactory()方法设置ServletFileUpload对象的fileItemFactory属性。

Java跨平台的原理

截屏2023-03-30 12.02.28.png

步骤

  • 创建DiskFileItemFactory对象,处理文件上传路径或者大小限制的;
DiskFileItemFactory factory = getDiskFileItemFactory(file);
  • 获取ServletFileUpload
ServletFileUpload upload = getServletFileUpload(factory);
  • 处理上传的文件
String msg = uploadParserequest(upload, request, uploadPath);

1.处理文件

2.存放地址

3.文件传输 截屏2023-03-30 12.09.29.png

邮件发送

截屏2023-03-30 14.15.28.png

发送邮件:SMTP协议

接收邮件:POP协议

服务器内部

截屏2023-03-30 14.19.23.png

截屏2023-03-30 14.25.28.png 使用JavaMail发送邮件的5个步骤:

  • 创建定义整个应用程序所需的环境信息的Session对象
  • 通过session得到transport对象
  • 使用邮箱的用户名和授权码连上邮件服务器
  • 创建邮件
  • 发送邮件

网站--用户体验:多线程实现用户体验(异步处理)