Skip to content

分页与文件上传

407字约1分钟

javajspservlet

2024-10-24

1.分页的实现

1.在表格中显示合理的数据

2.在表格下方维护每一页的跳转链接

分类

1.服务端分页

1.使用结果集分页

2.使用SQL语句分页(limit(MySQL)rownum子查询(Oracle))

3.第三方框架(Mybatis plus,hihernate,Spring管理的hihernate)

2.客户端分页

1.js数组

2.Ajax分页

MySQL的SQL语句分页

limit (page-1)*pageSize,pageSize;

2.图片上传

客户端:

1.post表单提交

2.设置enctype参数

<form enctype="enctype="application/x-www-form-urlencoded""></form>//普通数据
<form enctype="multipart/form-data"></form>// 混合数据,可提交文件

3.需要文件域

type=file

在服务端解析二进制数据流获取文本域参数和文件域

获取方式:

1.第三方类库

1.1SmartUpload.jar

1.2commons-fileupload.jar

1.3cos.jar

2.Servler3.0自己支持文件上传

注解:

@MultipartConfig()
// 创建part对性能		
Part coverpath = request.getPart(requestParam);
// 获取文件提交的文件名
            String fileName = getFileName(coverpath.getSubmittedFileName());
// 获取文件所在物理路径
            String filePath = request.getServletContext().getRealPath(request.getContextPath())+request.getServletContext().getInitParameter("uploadPath");
            File file = new File(filePath);
            if (!file.exists()){
                file.mkdirs();
            }
// 写入文件
            coverpath.write(filePath+fileName);
// 获取文件大小
coverpath.getSize();
// 获取文件名(表单提交的value值)
coverpath.getName();
// 获取输入流
coverpath.getInputStream();
// 获取提交的文件名
coverpath.getSubmittedFileName();
// 获取文件类型
coverpath.getContentType();
// 写入磁盘
coverpath.write("文件路径");

3.登录与权限验证

session保存登录状态

// 保存登录状态
session.setAttribute("key",value);
// 清除登陆状态
session.remove("key");

Fillter过滤器验证登录状态

使用Cooike保存用户名