smbms
作者:互联网
1、JavaWeb项目准备步骤
1.创建mysql数据库,创建表,编写添加数据脚本
2.idea创建maven的web工程,配置tomcat
3.测试运行环境能否跑通
4.导入必备依赖,servlet,jsp,jstl,taglib,mysql...
5.创建包结构,controller,service,dao,filter,utils,pojo...
6.对照mysql,编写实体类pojo,配置mysql连接驱动的util,编写设置字符集的filter
7.导入静态资源,img,css,js...
2、smbms
登录
1.获取前端账号密码
2.验证转到主页
3.把数据放入session当中
退出
1.把数据从session中删除
2.转到登录界面
权限
1.使用filter判断session是否有用户的数据
2.有就转到主页,没有就让他登录
修改密码
1.根据旧密码来做,使用ajax发送的服务器验证
2.新密码和确认新密码使用前端的js来做就行
分页展示
1.web的小高潮点
先理解分页:
当前页 初始值 单页容量
1 0 5
2 5 5
3 10 5
初始值 = (当前页-1)* 单页容量
//分页的重点就在于初始值,因为就是根据初始值去做MySQL的物理分页,最终在页面展示一页的数据
================================================================
public void setCurrentPage(Integer currentPage) {
//当前页小于1就显示第一页,大于总页数就显示最后一页,否则就显示当前页
if (currentPage<1){
this.currentPage = 1;
}else if (currentPage>this.totalPage){
this.currentPage = this.totalPage;
}else{
this.currentPage = currentPage;
}
//获取组件是第几组
int groupNum = this.currentPage%10==0?this.currentPage/10:this.currentPage/10+1;
//第一组: (1-1)*10+1 = 1 从1开始
// 1*10 = 10 到10结束
//以此类推,如果页数号码大于最大页数就不要了
for (int i = (groupNum-1)*10+1; i <= groupNum*10 ; i++) {
if (i<=totalPage){
group.add(i);
}else {
break;
}
}
}
================================================================
把分页的相关数据配成一个java类
当前页,单页容量,总页数,总记录数,数据集合,bootstrap组件显示
2.具体步骤
1》把原始的数据集合封装,
2》规定单页容量
3》查到有多少条记录
4》就可以计算有多少页
**5》当前页
6》组件控制
分页组件
package pojo.page;
import java.util.ArrayList;
import java.util.List;
public class Page<T> {
private List<T> dataList;
private Integer currentPage;
private Integer pageSize;
private Integer totalSize;
private Integer totalPage;
private List<Integer> group = new ArrayList<>();
public Page(Integer pageSize){
this.pageSize = pageSize;
}
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
//当前页小于1就显示第一页,大于总页数就显示最后一页,否则就显示当前页
if (currentPage<1){
this.currentPage = 1;
}else if (currentPage>this.totalPage){
this.currentPage = this.totalPage;
}else{
this.currentPage = currentPage;
}
//获取组件是第几组
int groupNum = this.currentPage%10==0?this.currentPage/10:this.currentPage/10+1;
//第一组: (1-1)*10+1 = 1 从1开始
// 1*10 = 10 到10结束
//以此类推,如果页数号码大于最大页数就不要了
for (int i = (groupNum-1)*10+1; i <= groupNum*10 ; i++) {
if (i<=totalPage){
group.add(i);
}else {
break;
}
}
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalSize() {
return totalSize;
}
public void setTotalSize(Integer totalSize) {
this.totalSize = totalSize;
//能整除就总记录数/单页容量,否则就加1来放多余的数据
if (this.totalSize%this.pageSize==0){
this.totalPage = this.totalSize/this.pageSize;
}else {
this.totalPage = this.totalSize/this.pageSize+1;
}
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List<Integer> getGroup() {
return group;
}
public void setGroup(List<Integer> group) {
this.group = group;
}
}
增删改
3、文件上传
-
导入依赖
commons-io commons-fileupload
-
创建目录,判断是不是文件上传表单
//判断是不是上传文件的表单请求 if(!ServletFileUpload.isMultipartContent(request)){ return; } //WEB-INF下创建上传文件存放目录 String uploadPath = this.getServletContext().getRealPath("/WEB-INF/upload"); File upload = new File(uploadPath); if (!upload.exists()){ upload.mkdirs(); } //WEB-INF下创建临时目录 String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp"); File temp = new File(tempPath); if (!temp.exists()){ temp.mkdirs(); }
-
磁盘文件工厂《缓冲区》
DiskFileItemFactory
//设置工厂参数 //临时目录设置 factory.setRepository(temp); //设置临界值,单位是byte factory.setSizeThreshold(1024*1024);
-
文件解析器
ServletFileUpload
//设置解析器参数 //设置上传文件最大值 fileParse.setFileSizeMax(1024*1024*100); //设置请求最大值 fileParse.setSizeMax(1024*1024*110); //设置编码集 fileParse.setHeaderEncoding("utf-8");
-
遍历表单请求项,下载文件
List<FileItem> fileItemList = fileParse.parseRequest(request); for (FileItem fileItem : fileItemList) { //true表示是普通项,false表示是文件项 if (fileItem.isFormField()){ String name = fileItem.getFieldName(); String value = fileItem.getString("utf-8"); System.out.println(name+"==="+value); }else { //完整路径名 String name = fileItem.getName(); //如果上传的名字不合法就继续遍历下一项 if (name==null || "".equals(name.trim())){ continue; } //拿到文件名 String fileName = name.substring(name.lastIndexOf("\\") + 1); //uuid,时间戳....目的在于解决重名覆盖问题 String uuidPath = UUID.randomUUID().toString(); File file = new File(this.getServletContext().getRealPath("/WEB-INF/upload/")+uuidPath); if (!file.exists()){ file.mkdirs(); } //创建流,写出文件 InputStream is = fileItem.getInputStream(); FileOutputStream os = new FileOutputStream(uploadPath + "\\" +uuidPath+"\\"+ fileName); int size = 0; byte[] buffer = new byte[1024]; while ((size = is.read(buffer))>0){ os.write(buffer,0,size); } os.close(); is.close(); //临时目录内容删除 fileItem.delete();
4、邮件发送
-
代码展示
public static void main(String[] args) throws Exception { //邮箱设置参数,key值固定,value可修改 Properties properties = new Properties(); properties.put("mail.host","smtp.qq.com"); properties.put("mail.transport.protocol","smtp"); properties.put("mail.smtp.auth","true"); //1,创建session对象配置环境信息 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //xxx是授权码,填自己的 return new PasswordAuthentication("87691684@qq.com", "xxx"); } }); session.setDebug(true); // 2,通过session获取transport发送对象 Transport transport = session.getTransport(); // 3,连接服务器 transport.connect("smtp.qq.com","87691684@qq.com","xxx"); // 4,创建邮件 MimeMessage message = new MimeMessage(session); //发件人 message.setFrom(new InternetAddress("87691684@qq.com")); //收件人 message.setRecipients(Message.RecipientType.TO,"87691684@qq.com"); //主题 message.setSubject("java发送QQ邮件"); //邮件内容 // message.setContent("你好啊,java到QQ","text/html;charset=utf-8"); //新邮件内容,带附件 //利用Mime去把内容分区,然后组合 //内容的附件部分 MimeBodyPart image = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource("src/main/resources/bg_login.webp")); image.setDataHandler(dh); //这就是cid image.setContentID("db"); image.setFileName(MimeUtility.encodeText("a.webp")); //内容的正文部分 MimeBodyPart text = new MimeBodyPart(); //这种不使用cid的方式就把文件作为附件 text.setContent("你好啊,java到QQ","text/html;charset=utf-8"); //这种使用cid的方式就把文件作为正文内容 图片插入了 text.setContent("你好啊,java到QQ<img src='cid:db'/>","text/html;charset=utf-8"); //组合内容 MimeMultipart multipart = new MimeMultipart(); multipart.addBodyPart(image); multipart.addBodyPart(text); multipart.setSubType("mixed"); //把Mime添加到message,并保存 message.setContent(multipart); message.saveChanges(); //5,发送邮件 transport.sendMessage(message,message.getAllRecipients()); //6,关闭资源 transport.close(); }
标签:session,10,smbms,new,currentPage,message,public 来源: https://www.cnblogs.com/xiaocaobao/p/15940348.html