起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1486|回复: 4

[结贴] V3.3如何创建和配置Servlet

[复制链接]

73

主题

292

帖子

1410

积分

金牌会员

Rank: 6Rank: 6

积分
1410
QQ
发表于 2016-4-3 17:28:22 | 显示全部楼层 |阅读模式
本帖最后由 gzcyp2000 于 2016-4-4 11:50 编辑

如题
论坛查找到有个相关贴子如下,但他的情况可以用在Baas模型中的action解决,但我的要求好像不太好用action。

http://bbs.wex5.com/forum.php?mod=viewthread&tid=87163


具体场景:
其他就是上传图片文件到服务器,原来在V3.2.1中使用cordova.file-transfer插件,执行下面代码来进行上传:
    JS:
                var options      = new FileUploadOptions();
                。。。
                var url  = encodeURI("http://192.168.3.12:8080/fileTransfer?action=upLoadImage&savepath=xxxxx");   //调用命名为upLoadImage的servlet
                ft.upload(imageURI, url, success, fail, options);                     //执行上传保存



    JAVA:
                public class UploadImageServlet extends HttpServlet {
                        private static final long serialVersionUID = 1444388478431748082L;


                        public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
                                String action = request.getParameter("action");
                                if("upLoadImage".equals(action)){
                                        upLoadImage(request, response);                             
                                }

                        }
        
                        private void upLoadImage(HttpServletRequest request, HttpServletResponse response) throws IOException {
                                File file1                 = null;                                //设置保存路径

                                String needExt  = request.getParameter("needext");                //是否需要扩展名, 传参值可选项:false / true               
                                String savePath = request.getParameter("savepath");

               
                                //检测指定路径是否存在,如不存在则创建指定目录
                                File dir = new File(savePath);
                                if(!(dir.exists() && dir.isDirectory())){
                                        dir.mkdirs();
                                };
               
                                DiskFileUpload disFileUpload = new DiskFileUpload();   
                                try {
                                        List<FileItem> list = disFileUpload.parseRequest(request);
                                        for (FileItem fileItem : list) {
                                                if (fileItem.isFormField()) {  
                                                        // 处理普通表单域
                                        System.out.println("B:"+fileItem.getFieldName() + ":" + fileItem.getString());               
                                } else {

                                        //将临时文件保存到指定目录
                                        if ("fileAddPic".equals(fileItem.getFieldName())) {
                                                File remoteFile = new File(new String(fileItem.getName().getBytes(), "UTF-8"));
                                                String fileName = fileItem.getName();
                                                
                                                //如果无扩展名,则根据需要添加上.jpg
                                                System.out.println("needExt:"+needExt);
                                                if (fileName.indexOf(".") < 0){
                                                        if (needExt == null){
                                                                fileName = fileName + ".jpg";
                                                        } else
                                                        if (needExt.equals("true")){
                                                                fileName = fileName + ".jpg";
                                                        }
                                                }   
                                                
                                                file1         = new File(savePath + fileName);                        // 写入的位置
                                                InputStream ins  = fileItem.getInputStream();
                                                OutputStream ous = new FileOutputStream(file1);
                                                
                                                try {
                                                        byte[] buffer = new byte[1024];
                                                        int len = 0;
                                                        while ((len = ins.read(buffer)) > -1) {
                                                                ous.write(buffer, 0, len);
                                                        }
                                                } finally {
                                                        ous.close();
                                                        ins.close();
                                                }
                                        }
                                }               
                        }

                } catch (FileUploadException e) {
                        e.printStackTrace();
                }
         }
   }


在V3.2.1中拍照和上传到指定路径的功能均能实现。


升级到V3.3后,按之前的方法创建了servlet的java文件,配置了web.xml文件,但就是怎么编辑和配置都有问题,也调用不到servlet,
Baas中的结构和web.xml如下图,搞不清楚3.3要如何创建和配置servlet!!!  

如果使用Baas模型中的action来处理java上传图片,与原servlet对应的参数如何处理,action的java和参数该如何写啊???


求教!!!





无标题.png

73

主题

292

帖子

1410

积分

金牌会员

Rank: 6Rank: 6

积分
1410
QQ
 楼主| 发表于 2016-4-4 11:56:23 | 显示全部楼层
强烈建议:起步官方最好能对像类似上面这种“拍照上传”的通用常规应用给出官方的解决方案,可很大程度上减轻开发者的开发难度和负担,同时开发出的产品可能也会更加强壮和稳固,利于x5的推广应用。

同意的请顶一下!!!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-4-5 15:31:34 | 显示全部楼层
servlet可以参考
/Baas/justep/SimpleFileStore.java  /Baas/justep/attachment.service.m  的实现



V3.4版本中新增了随手拍,包括了图片上传下载等常用功能示例(UI2/demo/pai);

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

73

主题

292

帖子

1410

积分

金牌会员

Rank: 6Rank: 6

积分
1410
QQ
 楼主| 发表于 2016-4-10 10:45:17 | 显示全部楼层
本帖最后由 gzcyp2000 于 2016-4-10 10:51 编辑

已解决,请结贴。但如何有V3.4中配置servlet仍不得解决。
回复 支持 反对

使用道具 举报

发表于 2016-4-11 16:18:05 | 显示全部楼层
gzcyp2000 发表于 2016-4-10 10:45
已解决,请结贴。但如何有V3.4中配置servlet仍不得解决。

3.4版本可以通过访问自定义action 的方式来做!!参考外卖案例中queryAddr方法的调用!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-24 02:36 , Processed in 0.065268 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表