jsp+mybatis+mysql+servlet

在做用户头像上传的时候 ,从JSP页面获取到的头像保存到数据库 ,不重新编译,JSP页面不能显示
上传图片到服务器并保存到数据库;该怎么设置,该怎么写servlet
下列是我写的代码:


package cn.com.sczkjy.Second_handPlatformOnCmpus.manager.CheckServlet;

import cn.com.sczkjy.Second_handPlatformOnCmpus.dao.UserDao;
import cn.com.sczkjy.Second_handPlatformOnCmpus.model.User;
import org.apache.commons.io.IOUtils;

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;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

@WebServlet(urlPatterns = "/checkProfile")
@MultipartConfig
public class checkProfile extends HttpServlet {
    UserDao userDao = new UserDao();
    User user;
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id = req.getParameter("id");
        user = userDao.findById(id);
        System.out.println(user.getLoginid());
        if (user != null){
            boolean result = uFileUpload(req);
            if(result){
                userDao.updateByPrimaryKey(user);
                req.getSession().setAttribute("lsgUfile","个人信息更新成功!");
                req.getSession().setAttribute("lsgUPhoto",user.getPhoto());
                System.out.println(req.getSession().getAttribute("lsgUPhoto"));
                resp.sendRedirect("profile");
            }
        }
    }
    public boolean uFileUpload(HttpServletRequest req){
        /* 获取普通的上传组件 */
        String nickName= req.getParameter("nickName");
        String name= req.getParameter("name");
        //获取文件上传组件
        Part part;
        try {
            part = req.getPart("file");
            //获取文件的名称
            String header = part.getHeader("content-disposition");
            //截取字符串获取文件名称
            String headername = header.substring(header.indexOf("filename")+10, header.length()-1);
            //获取文件流
            InputStream put = part.getInputStream();
            //获取文件的真实路径
            UUID uuid = UUID.randomUUID();
            String filename ="/avatar/" + uuid + "@" + headername;
            //建立对拷流
            FileOutputStream fos = new FileOutputStream(new File("E:\\Second-handPlatformOnCmpus\\src\\main\\webapp", filename));
            IOUtils.copy(put, fos);
            put.close();
            fos.close();
            //删除临时文件
            part.delete();

//            user.setPhoto(filename);
            user.setNickname(nickName);
            user.setName(name);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ServletException e) {
            e.printStackTrace();
        }
        return true;
    }
}

存在问题是 不能图片地址可以保存到数据库 而前端不能正常显示,

上传图片最好上传到文件服务器,上传后拿到返回的文件服务器地址,将地址保存到数据库。