• 软件接口设计怎么做?前后端分离软件接口设计思路

    [置顶]软件接口设计怎么做?前后端分离软件接口设计思路

    API接口管理 2022-09-21

    本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...

  • 接口管理如何做?接口实现版本管理的意义和最佳方法

    [置顶]接口管理如何做?接口实现版本管理的意义和最佳方法

    API接口管理 2022-10-27

    本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...

  • 实现API管理系统的关键

    [置顶]实现API管理系统的关键

    API接口管理 2023-06-16

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...

  • Spring学习笔记2之表单数据验证、文件上传实例代码

    Spring学习笔记2之表单数据验证、文件上传实例代码

    API接口管理 2023-07-11

    Spring学习笔记2之表单数据验证、文件上传实例代码在上篇文章给大家介绍了Spring学习笔记1之IOC详解尽量使用注解以及java代码,接下来本文重点给大家介绍Spring学习笔记2之表单数据验证...

  • Spring学习笔记1之IOC详解尽量使用注解以及java代码

    Spring学习笔记1之IOC详解尽量使用注解以及java代码

    API接口管理 2023-07-11

    Spring学习笔记1之IOC详解尽量使用注解以及java代码在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目。预想的基本流程如下:1、用户网站注册,填写用户名、密码、e...

  • java String的intern方法

    java String的intern方法

    API接口管理 2023-07-11

    java String的intern方法首先我们应该清楚的是JDK1.6和JDK1.7中String类的intern方法还是有差别的:JDK1.6中的intern:调用intern方法的时候首先会去常...

  • ";

    String desc = photo.getDesc();

    String delStr = "删除";

    String downStr = "下载";

    out.println("

    out.println("

    out.println("

    out.println("

    out.println("

    out.println("

    + "

    out.println("

    }

    out.println("

    out.println("

    out.println("

    out.println(" ");

    out.println("");

    out.flush();

    out.close();

    }

    }

    删除文件-DelServlet.java

    package cn.hncu.servlets;

    import java.io.IOException;

    import java.io.PrintWriter;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import cn.hncu.domain.PhotoModel;

    import cn.hncu.photoDao.Dao.PhotoDao;

    import cn.hncu.photoDao.factory.PhotoDaoFactory;

    public class DelServlet extends HttpServlet {

    //注入

    private PhotoDao dao = PhotoDaoFactory.getPhotoDao();

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    doPost(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    String uuid = request.getParameter("uuid");

    String ip = request.getRemoteAddr();

    response.setContentType("text/html;charset=utf-8");

    PrintWriter out = response.getWriter();

    PhotoModel photo = dao.getSingleByUuid(uuid);

    if(photo!=null){

    if(!photo.getIp().equals(ip)){

    out.print("

    out.print("返回上一页 ");

    return ;

    }

    //1.删除数据库中的信息

    boolean boo = dao.deleteXml(uuid);

    if(boo){

    String fileName = "photos/"+photo.getDir()+"/"+photo.getUuid()+photo.getExt();

    String pathFileName = getServletContext().getRealPath(fileName);

    if(dao.deleteFile(pathFileName)){

    //重定向到相册页面

    response.sendRedirect("/myPhoto/cloudPhoto?pwd=chx");

    }else{

    out.print("

    out.print("返回上一页 ");

    }

    }else{

    out.print("

    out.print("返回上一页 ");

    }

    }

    }

    }

    下载文件-DownServlet.java

    package cn.hncu.servlets;

    import java.io.FileInputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    import java.net.URLEncoder;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import cn.hncu.domain.PhotoModel;

    import cn.hncu.photoDao.Dao.PhotoDao;

    import cn.hncu.photoDao.factory.PhotoDaoFactory;

    public class DownServlet extends HttpServlet {

    private PhotoDao dao = PhotoDaoFactory.getPhotoDao();

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    doPost(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    String uuid = request.getParameter("uuid");

    System.out.println(uuid);

    PhotoModel photo = dao.getSingleByUuid(uuid);

    System.out.println(photo);

    if(photo!=null){

    //设置响应头--内容接收程序--浏览器看到这个响应头,就会把它认为的下载程序打开

    //(如果识别迅雷那么就会自动打开迅雷,如果没有则会打开一个“文件另存为”的对话框)

    response.setContentType("application/force-download");

    String realName = photo.getRealName();

    String agent = request.getHeader("User-Agent");

    System.out.println(agent);

    if(agent.indexOf("Mozilla")!=-1){//火狐浏览器

    response.setHeader("Content-Disposition" alt="自己动手写一个java版简单云相册" title="自己动手写一个java版简单云相册" width="200" height="150">

    自己动手写一个java版简单云相册

    API接口管理 2023-07-10

    自己动手写一个java版简单云相册动手写一个java版简单云相册,实现的功能是: 用户可以一次上传一个至多个文件。 用户可以下载其他人上传的图片。 用户可以查看其他所有人的图片。 用户只能删除通过自己...

  • 浅谈Java枚举的作用与好处

    浅谈Java枚举的作用与好处

    API接口管理 2023-07-10

    浅谈Java枚举的作用与好处枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个...

  • slf4j与log4j全面了解

    slf4j与log4j全面了解

    API接口管理 2023-07-10

    slf4j与log4j全面了解推荐使用SLF4J(Simple Logging Facade for java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应...

  • 深入理解Angular2 模板语法

    深入理解Angular2 模板语法

    API接口管理 2023-07-10

    深入理解Angular2 模板语法1. 说明Angular2的模板用来显示组件外观,作为视图所用,用法和html语法基本一致,最简单的Angular2的模板就是一段html代码。Angular模板语法...

  • Java实现表达式二叉树

    Java实现表达式二叉树

    API接口管理 2023-07-09

    Java实现表达式二叉树什么是二叉树,这里不再介绍,可以自行百度:二叉树。在这里利用java实现“表达式二叉树”。表达式二叉树的定义第一步先要搞懂表达式二叉树是个什么东东?举个栗子,表达式:(a+b(...

  • 封装的dialog插件 基于bootstrap模态对话框的简单扩展

    封装的dialog插件 基于bootstrap模态对话框的简单扩展

    API接口管理 2023-07-09

    封装的dialog插件 基于bootstrap模态对话框的简单扩展在使用bootstrap 模态对话框时需要在页面写对话框html,如果一个页面有许多地方需要对话框,那意味着需要写多个,感觉很麻烦,平...

  • Java 生成二维码的工具资料整理

    Java 生成二维码的工具资料整理

    API接口管理 2023-07-09

    Java 生成二维码的工具资料整理1.  使用SwetakeQRCode在java项目中生成二维码http://swetake.com/qr/ 下载地址或着  http://sourceforge.j...