栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA项目:用户界面——修改密码+上传图片头像(mysql)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA项目:用户界面——修改密码+上传图片头像(mysql)

此DEMO包含一下功能

  1. 用户界面(显示头像、学号、电话号码、性别)
  2. 修改密码(密码检验+两次密码是否一致的检验)
  3. 上传头像(这里采用的是先用io流将图片传到工程文件下,把图片路径保存到数据库中)
用户界面


用户界面
customerUI.jsp

<%@ page contentType="text/html;charset=UTF-8" %>


    
    用户界面
    


    

本功能和JAVA项目:登录注册+表单检验是联动的,具体传值过程是由里面的CheckLogin实现的。

修改密码

修改密码界面


修改密码界面代码
upPwd.jsp

<%@ page contentType="text/html;charset=UTF-8" %>



    
    修改密码
    
    
    //表单检验
    


修改密码功能代码
UpdatePassword.jsp

<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*"%>


    CheckRegister


<%
    String username=request.getParameter("name");
    String pwd= request.getParameter("repwd");

    String sDBDriver = "com.mysql.jdbc.Driver";
    String conStr = "jdbc:mysql://localhost:3306/webdb?useSSL=false";
    String dbname = "root";
    String password = "root";
    Connection conn=null;

    try {
        Class.forName(sDBDriver);
        conn = DriverManager.getConnection(conStr, dbname, password);
    } catch (ClassNotFoundException | SQLException cnfe) {
        cnfe.printStackTrace();
    }
    try{
        assert conn != null;
        Statement stmt=conn.createStatement();
        String updatePassword="UPDATE peo19082203 SET pwd = '"+pwd+"' WHERe name = '"+username+"'";
        stmt.executeUpdate(updatePassword);
        out.println("");
    }catch(SQLException e){
        out.println("");        //处理SQLException异常
    }


%>


上传图片

上传图片页面

ps:这里其实是可以做一个异步刷新来实现头像预览的,但是博主我忘记了orz。
原理讲解

  1. 首先是使用IO流将图片存放到工程文件下,这里为了避免图片命名重复,我统一使用的是时间戳的形式来保存

  2. 然后在数据库里,我们只存放图片的路径,这样不仅能提高读取速率,还能减少数据压力。

  3. 这里采用Servlet来实现这个功能

上传页面
loadHeadimgUI.jsp
同样的这里的图片、学号也是由customerUI传过来的

<%@ page contentType="text/html;charset=UTF-8" %>


    
    修改头像
    
    



上传图片功能
uploadServlet.java
ps:注意我这里采用的是tomcat8.5,servlet3.0以上的版本,所以直接使用注解就能实现配置,若你的servlet版本在3.0一下,需要手动配置xml文件。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;



@MultipartConfig
@WebServlet("/uploadServlet")
public class uploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    
    public uploadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String name=request.getParameter("name");
        Part f = request.getPart("imgName");
		//设置IO流
        InputStream is = f.getInputStream();
        Date d = new Date();
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
        //图片重命名为时间戳
        String fname = sf.format(d)+".jpg";
        //这个路径就是你工程文件下的存放照片的路径
        String path = "C:/Users/misten/IdeaProjects/untitled2/web/image/"+fname;
        fname="image/"+fname;
        FileOutputStream fos = new FileOutputStream(path);
        byte []b=new byte[1024*3];
        int n = is.read(b,0,b.length);
        while(n!=-1) {
            fos.write(b,0,n);
            n=is.read(b,0,b.length);
        }
        is.close();
        fos.close();
        //至此图片输入结束,开始数据库的连接
        Connection conn;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/webdb","root","root");
            Statement st;
            st=conn.createStatement();
            String sql="update peo19082203 set photo='"+fname+"' where name='"+name+"'";
            int r;
            r=st.executeUpdate(sql);
            if(r==1){
                response.sendRedirect("loginUI.jsp");
            }else{
                response.sendRedirect("indexUI.jsp");
            }
        }  catch (SQLException | ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

本页面所用到的css样式涉及到圆形头像处理,样式资源已经放到资源库中(如果已经审核成功的话),可0积分免费下载

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号