java上传图片裁剪_JavaWeb实现裁剪图片上传完整代码

本文实例为大家分享了JavaWeb实现裁剪图片上传完整案例,供大家参考,具体内容如下

实现思路

•使用jcrop插件手机要裁剪图片的坐标

•将收集到的参数传递到后台,在后台使用java图形对象绘制图像进行裁剪

◦后台处理流程:

1、将上传的图片按按照比例进行压缩后上传到文件服务器,并且将压缩后的图片保存在本地临时目录中。

2、将压缩后的图片回显到页面,使用jcrop进行裁剪,手机裁剪坐标(x,y,width,height)

■@paramx 目标切片起点坐标X

■@param y 目标切片起点坐标Y

■@param width 目标切片宽度

■@param height 目标切片高度

3、后台处理裁剪裁剪,重新上传

jsp页面

上传用户头像

支持jpg、png格式

图片小于2M

重新上传

4-3.jpg

400 x 300像素

4-3.jpg

80 x 80像素

拖拽或缩放,生成自己满意的头像

--%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是JavaWeb中的简单分页完整代码,使用JSP和Servlet实现: 1. 在JSP页面中,使用表格展示数据并添加分页导航: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>分页示例</title> </head> <body> <h1>分页示例</h1> <table border="1"> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> </tr> <c:forEach items="${list}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> </tr> </c:forEach> </table> <br> <c:if test="${page > 1}"> <a href="list?page=${page - 1}">上一页</a> </c:if> <c:if test="${page < pageCount}"> <a href="list?page=${page + 1}">下一页</a> </c:if> </body> </html> ``` 2. 在Servlet中查询数据库并设置分页相关参数: ```java package com.example.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.example.dao.UserDao; import com.example.entity.User; @WebServlet("/list") public class UserListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int pageSize = 10; // 每页显示的记录数 int page = Integer.parseInt(request.getParameter("page")); // 当前页码 int offset = (page - 1) * pageSize; // 当前页第一条记录的偏移量 UserDao dao = new UserDao(); List<User> list = dao.list(offset, pageSize); // 查询当前页的数据 int totalCount = dao.count(); // 总记录数 int pageCount = (int) Math.ceil(totalCount * 1.0 / pageSize); // 总页数 request.setAttribute("list", list); request.setAttribute("page", page); request.setAttribute("pageCount", pageCount); request.getRequestDispatcher("list.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` 3. 在DAO中查询数据库并返回数据: ```java package com.example.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.example.entity.User; public class UserDao { private String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; private String username = "root"; private String password = "123456"; public List<User> list(int offset, int pageSize) { List<User> list = new ArrayList<>(); try (Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT * FROM user LIMIT ?, ?"; try (PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, offset); stmt.setInt(2, pageSize); try (ResultSet rs = stmt.executeQuery()) { while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); list.add(user); } } } } catch (Exception e) { e.printStackTrace(); } return list; } public int count() { int count = 0; try (Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT COUNT(*) FROM user"; try (PreparedStatement stmt = conn.prepareStatement(sql)) { try (ResultSet rs = stmt.executeQuery()) { if (rs.next()) { count = rs.getInt(1); } } } } catch (Exception e) { e.printStackTrace(); } return count; } } ``` 可以根据需求自行修改代码,例如更改每页显示的记录数、更改查询语句等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值