新建一个tomcat服务器,spring+jersey完成上传图片的实现

万年不变开头,添加依赖

<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.19.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.19.4</version>
</dependency>

1、在添加页面中新增一个改变事件的按钮,因为是上传,所以该表单记得添加属性

enctype="multipart/form-data"
 <tr>
                <td width="20%" class="pn-flabel pn-flabel-h">
                    <span class="pn-frequired">*</span>
                    上传商品图片(90x150尺寸):
                </td>
                <td width="80%" class="pn-fcontent">
                    注:该尺寸图片必须为90x150。
                </td>
            </tr>
            <tr>
                <td width="20%" class="pn-flabel pn-flabel-h"></td>
                <td width="80%" class="pn-fcontent">
                    <img width="100" height="100" id="allImgUrl"/>            <!--图片保存路径(只是一个文件名)-->
                    <input type="hidden" name="imgUrl" id="path"/>              <!--下方添加事件-->
                    <input type="file" onchange="uploadPic()" name="pic"/>
                </td>
            </tr>

2、事件的内容为,跳转到

"/upload/uploadPic.do"
  <script type="text/javascript">
        //上传图片
        function uploadPic() {
            alert("111")
            //定义参数
            var options = {
                url: "/upload/uploadPic.do",
                dataType: "json",
                type: "post",
                success: function (data) {
                    //获得二个路径以存入数据库,下面id=path是input隐藏域,当表单提交时,会同时保存图片名称,id=allImgUrl是设置图片显示,当上传成功时,图片会显示在这里
                    //url
                    //path
                    $("#allImgUrl").attr("src", data.url);
                    $("#path").val(data.path);
                }
            };

            //jquery.form使用方式
            $("#jvForm").ajaxSubmit(options);

        }

3、编写controller

/**
 * 上传图片、商品、品牌、商品介绍
 */
@Controller
public class UploadController {
    /**
     * 图片上传
     * @param pic
     */
    @RequestMapping("/upload/uploadPic.do")
    //required=false表示不上传就报错
    public void uploadPic(@RequestParam(required = false) MultipartFile pic, HttpServletResponse response) {

        //图片名称生成策略
       DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
       //图片名称的一部分
        String format = dateFormat.format(new Date());
        //随机三位数
        Random random = new Random();
        for (int i = 0; i <3 ; i++) {
            format+=random.nextInt(10);
        }
        //获取文件扩展名的专用方法
        String extension = FilenameUtils.getExtension(pic.getOriginalFilename());

        //实例化一个jersey
        Client client = new Client();
        //保存数据库的路径和名字,要发给添加页面
        String pathSql = format + "." + extension;
        //另一个服务器的请求路径是?
        String url = IMAGE_URL+format+"."+extension;
        //设置请求路径
        WebResource resource = client.resource(url);
        // 发送开始
        try {
            resource.put(String.class, pic.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    //返回两个路径
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("url",url);
        jsonObject.put("path",pathSql);
     //写出路径完成图片的回显,因为当时图片已经保存在另外一个tomcat服务器中了
        ResponseUtils.renderJson(response,jsonObject.toString());

    }
}

关于 ResponseUtils的代码为

/**
 * 异步返回各种格式
 * json
 * xml
 * text
 * @author lx
 *
 */
public class ResponseUtils {

    //发送内容
    public static void render(HttpServletResponse response,String contentType,String text){
        response.setContentType(contentType);
        try {
            response.getWriter().write(text);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //发送的是JSON
    public static void renderJson(HttpServletResponse response,String text){
        render(response, "application/json;charset=UTF-8", text);
    }
    //发送xml
    public static void renderXml(HttpServletResponse response,String text){
        render(response, "text/xml;charset=UTF-8", text);
    }
    //发送text
    public static void renderText(HttpServletResponse response,String text){
        render(response, "text/plain;charset=UTF-8", text);
    }
}

4、新建一个webapp项目,记得切换端口,切换端口的方法1)修改tomcat文件夹的conf文件夹下的server.xml三个端口号(具体百度)2)本人用的idea,就简单修改一下如下图的配置就行了,这个服务器最好随时开着,用来当做图片服务器

5、在原项目(不是图片服务器项目)的springmvc配置支持上传图片功能

 <!--配置springmvc图片上传-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760"/>
    </bean>

6、在tomcat文件夹的conf下的web.xml把只读去掉

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>

        <!--新增部分-->
          <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
          </init-param>

        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

至此,当你在表单中点击浏览,选择好了图片之后,图片就可以成功上传并显示在表单中了,同时在input中也保存了文件名,但是如何list出来呢?

答:设置一个全路径 IMAGE_URL是

也就是你的服务器路径

!!!电商项目禁用select * from,-----allUrl属性不在数据库中

原文地址:https://www.cnblogs.com/best-lwj/p/9301034.html

时间: 2024-07-30 17:10:38

新建一个tomcat服务器,spring+jersey完成上传图片的实现的相关文章

新建一个Tomcat服务器

下载Tomcat 解压 在MyEclipse单击Window->Preferences 输入Tomcat选择Tomcat6.x单击,Browse..选择下载好的Tomcat路径 单击Window->Show view->Other..   输入搜索servers Tomcat服务器就建好了

Apache+Tomcat服务器集群配置

在实际应用中,如果网站的访问量很大,为了提高访问速度,可以与多个Tomcat服务器与Apache服务器集成,让他们共同运行servlet/jsp 组件的任务,多个Tomcat服务器构成了一个集群(Cluster)系统,共同为客户提供服务.集群系统具有以下优点: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务.   高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算

[WebServer] Windows操作系统下 Tomcat 服务器运行 PHP 的环境配置

前言: 由于本人在开发和学习过程中需要同时部署 JavaWeb 和 PHP 项目,并偶然发现 Tomcat 服务器可以运行 PHP,所以只需要运行一个 Tomcat 服务器即可完成两种Web程序的部署.于是整理了网上的一些相关资料,并结合自己的实际操作,记录于此,以供参考. 一.环境(64bit): 1.操作系统.Tomcat 和 JDK 环境: Server version: Apache Tomcat/9.0.0.M4 Server built: Mar 12 2016 11:39:59 U

eclipse 在Servers窗口创建一个Tomcat 6.0 Server失败

web项目部署到tomcat除了用eclipse插件,eclipse也有一个Servers窗口来部署. 问题背景:Servers窗口,我之前创建过一个Tomcat v6.0 Server,后来我把自动生成的工程Servers删了,又把eclipse中tomcat路径配置改了一下(因为我用配置文件server.xml部署了). 问题出现了,现在我向重新建一个tomcat 6.0 server,会发现根本建立不了,如下图. 但是我发现其他tomct 7.0 server,5.0 server总之我之

搭建一个Tomcat,作为图片服务器,异步上传图片

1.图片服务器Tomcat的设置  tomcat/conf/web.xml中内容更改,将tomcat设置为可以读写 <servlet>     <servlet-name>default</servlet-name>             <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>         <init-param>   

从零开始写一个Tomcat(贰)--建立动态服务器

上文书说道如何通过http协议建立一个静态的服务器来访问静态网页,但我们选择tomcat最主要的原因还是因为它能动态的执行servlet,这边文章将引导你实现一个能够运行servlet的服务器,这个简易的服务器符合tomcat的基本原理,但真的tomcat远不是这么简单,即使是15年前的tomcat4. 1.主程序逻辑分离 既然要实现动态的服务器,首先我们要实现模式的识别,在tomcat中,tomcat通过读取web.xml,在servlet的配置中通过url的模式来匹配servlet,我们这里

Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序

1.首先,先要去MyEclipse和Tomcat的官网去下载Linux版的压缩文件,而MyEclipse的中文官网是需要登录并有可能要付钱,大家可以去网上下载,还有就是Tomcat的linux版,这个直接上官网就可以下载了,下载后我还是通通把它们放在我E盘下的as目录底下,如果大家还没配置好jdk,即Java环境的话,可看我这篇文章:http://blog.csdn.net/u012561176/article/details/45119047 这里我就直接进行操作了! 我E盘下的as文件夹

Maven新建一个Spring MVC项目

新建一个Maven项目,选择archetypes为maven-archetype-webapp,相关的名称按个人习惯取,我这里取Group Id:moonlit-groupArtifact Id:moonlit-artifact然后一个新的maven webapp项目就见成了,你可以在Eclipse左侧的Project Explorer中看到一个项目名为moonlit-artifact,这个即是我们新间的项目的名称.新建完项目之后会发现项目有个红叉,一直追溯过去会发现是webapp目录下的ind

一个tomcat下部署多个项目或一个服务器部署多个tomcat

最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以儆效尤. 目录: 1,一个tomcat下同时部署两个项目(多个项目可以参考) 1.1项目都放在webapps内(共用一个端口) 1)把两个项目都放在webapps下. 2)处理重复jar包. 3)tomcat端口默认为8080.如果想修改可以去conf下的server.xml中进行修改 4)启动tomcat 1.2建立多个类似于webapps的文件夹,通过conf下的server.xml进行配置(每个