服务端通过生成字节码返回客服端解析为图像
2018-01-13 16:26
127 查看
在之前做项目的时候遇到过这样的情况,用户需要上传自己的头像图片,为了能在下次登录时展示这个图片,我们会把图片保存到项目中的某一个指定的文件夹里面,以便服务程序能访问到这张图片。(因为这个图片必须放到tomcat容器里面(webapps文件夹下面)能访问到的地方,程序才能访问到)。但是有一个问题是,这不利于程序包的更新,每次发布war包,tomcat将会解析出新的项目文件夹,原有的项目文件夹将会被替换,这就会导致用户上传的图片被删除。提出一个更好的解决办法是:在浏览一个页面时,当浏览器解析到类似<image>(图片)\<embed>(多媒体资源音频视频等)等标签,以及请求静态文件的时候。浏览器会重新建立一个TCP链接,向服务器请求这些静态资源。一般地,我们的项目都会将静态资源请求转发到Servlet容器(tomcat等)中默认的Servlet上。因此我们需要打破这一点。将某些静态资源的请求,转发到我们能处理的servlet上(如springMvc的DispatcherServlet)。通过我们自己直接返回图片等资源的字节码(该字节码可以读取文件直接生成,也可以从数据库中读取,建议在用户上传头像的时候,将头像图片生成字节码存在数据库,这样数据不容易丢失,否则如果更换服务器的时候还要注意备份用户的图片信息),浏览器都可以讲这些字节码解析成为相应的静态资源。如下我将用两种方式请求图片资源:
界面显示结果:
其中第二张图片是通过DispatcherServlet处理返回字节码并由浏览器解释生成的图片。
第一张图片中表达的信息,为什么说第一个标签将会被默认的Servlet处理而第二个标签将会被DispatcherServlet处理呢?
这得取决于你web.xml中DispatcherServlet的配置。
如上图,所有请求的URI包含 /service/的请求都会被转发到 DispatcherServlet处理。
界面显示结果:
其中第二张图片是通过DispatcherServlet处理返回字节码并由浏览器解释生成的图片。
第一张图片中表达的信息,为什么说第一个标签将会被默认的Servlet处理而第二个标签将会被DispatcherServlet处理呢?
这得取决于你web.xml中DispatcherServlet的配置。
如上图,所有请求的URI包含 /service/的请求都会被转发到 DispatcherServlet处理。
相关文章推荐
- 服务端通过生成字节码返回客服端解析为图像
- 服务端通过生成字节码返回客服端解析为图像
- 服务端通过生成字节码返回客服端解析为图像
- c# 通过访问URL,获取并解析远程服务端返回的复杂Json数据
- JSON PHP中返回JSON数据(多个JSON通过一个大的数组组合成一个JSON字符串),在客户端解析JSON数据减轻服务端压力
- 基于MNIST数据集通过朴素贝叶斯学习生成随机手写体数字图像
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- asp通过json调用webservice接口,并获取返回的xml数据及解析
- Query通过Ajax向PHP服务端发送请求并返回JSON数据
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- TS通过UDP的方式传送给VLC(下面为服务端代码),客服端接收方式:udp://@:5678
- 通过soap请求webservice时,返回的数据是XML类型,有时候也需要解析本地的xml数据等,苹果自带类NSXMLParser解析xml还是很方便的,简单轻便
- 支持PhysicsEditor生成的关于box2d的pilst文件的解析文件 ,支持cocos2d-x-2.1.5 亲测通过
- 通过xml解析生成pdf(2012-11-2)
- Volley学习(二)简封Volley、为Volley请求头体添加Json参数、Gson和JsonObject生成Json数据、Gson解析返回的Json
- android 客户端无法解析php服务端返回的json
- Java生成和解析XML格式文件——重复生成多xml标记用于restful服务端插入Oracle数据库测试
- 通过服务器返回来JSON歌词数据进行解析
- Android访问网络系列之--服务端返回XML或JSON格式数据,Android 进行解析并显示
- 通过wsdl2java生成客服端代码