json 基础demo

1.

package oapi.com.service;


import oapi.com.IService;


public class TestService implements IService{


public String execute(String data) {
String test = "这是一个测试的数据";
return test;
}

}


2.

package oapi.com.util;


import java.io.PrintWriter;


import javax.servlet.http.HttpServletResponse;


public class HttpUtil {
public static void writeResponse(HttpServletResponse response, String str) {
if(str==null || str.length()==0)
return;
if(str.length() < 300)
//log.info("writeResponse:" + str);
response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        response.setHeader("Access-Control-Allow-Origin","*");
        PrintWriter writer = null;
        try {
response.setContentLength(str.getBytes("utf-8").length);
writer = response.getWriter();
       writer.print(str);
       writer.flush();
} catch (Exception e) {

} finally {
if(writer != null) {
writer.close();
}
}
    }
}


3.

package oapi.com.util;


import java.io.PrintWriter;


import javax.servlet.http.HttpServletResponse;


public class StringUtil {
public static boolean isEmpty(String str)
    {
        return str == null || str.length() == 0;
    }


    public static boolean isNotEmpty(String str)
    {
         return !isEmpty(str);
    }
}

4.

package oapi.com;


import org.json.JSONObject;


public interface IService {
public String execute(String data);
}


5.

package oapi.com;


import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import oapi.com.util.HttpUtil;
import oapi.com.util.StringUtil;




public class LoginServlet extends HttpServlet{



/**

*/
private static final long serialVersionUID = 4028644947121632639L;


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");

// 校验参数是否为空
if(StringUtil.isEmpty(name) || StringUtil.isEmpty(pwd)){
HttpUtil.writeResponse(response, getResponseJson(1001, "缺少参数", ""));
return ;
}
// 如果用户名不等于lisi或者密码不等于123456,则校验失败
if(!name.equals("fish") || !pwd.equals("fish")){
HttpUtil.writeResponse(response, getResponseJson(1002, "用户名或密码错误", ""));
return ;
}
// 验证通过
HttpUtil.writeResponse(response, getResponseJson(1000, "登录成功", ""));
}



private String getResponseJson(int return_code,String return_msg,String data){
if(StringUtil.isEmpty(data)){
return "{\"return_code\":"+return_code+",\"return_msg\":\""+return_msg+"\"}";
}else{
return "{\"return_code\":"+return_code+",\"return_msg\":\""+return_msg+"\",\"data\":"+data+"}";
}
}
}


6.

package oapi.com;


import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.json.JSONException;
import org.json.JSONObject;


import oapi.com.util.HttpUtil;
import oapi.com.util.StringUtil;




public class MainServlet extends HttpServlet{

/**

*/
private static final long serialVersionUID = 4558261663730128486L;
public static Map<String,IService> serviceMaps = new HashMap<String, IService>();


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");              //API业务处理接口名称

if(StringUtil.isEmpty(method)){
HttpUtil.writeResponse(response, getResponseJson(1003, "缺少参数", ""));
}else{
String className = getServiceClassName(method);
IService service = getServiceInstance(className);
if(service == null){
HttpUtil.writeResponse(response, getResponseJson(1006, "未找到接口处理类", ""));
return ;
}
try {
String data = service.execute("");
HttpUtil.writeResponse(response, getResponseJson(0, "请求成功", data));
} catch (Exception e) {
HttpUtil.writeResponse(response, getResponseJson(1005, "参数格式有误", ""));
}
}
}



private String getServiceClassName(String method){

method = method.substring(0,1).toUpperCase()+method.substring(1); //第一个字母转大写

Pattern pattern = Pattern.compile("\\.([a-z]{1})"); //点后面的第一字母转大写并去掉小数点
Matcher matcher = pattern.matcher(method);
while(matcher.find()){
method = method.replace(matcher.group(), matcher.group(1).toUpperCase());
}
return "oapi.com.service."+method+"Service";
}

private IService getServiceInstance(String className){
IService service = serviceMaps.get(className);
if(service == null){
try {
service = (IService)(Class.forName(className).newInstance());
serviceMaps.put(className, service);
} catch (Exception e) {
//log.error("开放接口-请求接口的方法名不正确,serviceClassName=" + className);
}
}
return service;
}

private String getResponseJson(int return_code,String return_msg,String data){
if(StringUtil.isEmpty(data)){
return "{\"return_code\":"+return_code+",\"return_msg\":\""+return_msg+"\"}";
}else{
return "{\"return_code\":"+return_code+",\"return_msg\":\""+return_msg+"\",\"data\":"+data+"}";
}
}
}

7

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >


<web-app>
<display-name>oapi</display-name>
    
    <servlet>
<servlet-name>OpenApiServlet</servlet-name>
<servlet-class>oapi.com.MainServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>OpenApi2Servlet</servlet-name>
<servlet-class>oapi.com.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>OpenApi3Servlet</servlet-name>
<servlet-class>oapi.com.TicketServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>OpenApiServlet</servlet-name>
<url-pattern>/openapi</url-pattern>
</servlet-mapping>
    <servlet-mapping>
<servlet-name>OpenApi2Servlet</servlet-name>
<url-pattern>/openapi2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>OpenApi3Servlet</servlet-name>
<url-pattern>/openapi3</url-pattern>
</servlet-mapping>
</web-app>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue.js中使用FFmpeg进行视频处理通常涉及到前端调用后端提供的API或者使用一些Node.js库(如`fluent-ffmpeg`)来处理视频操作,因为直接在浏览器中运行FFmpeg是受限的,出于安全和性能考虑。以下是一个简单的步骤和一个基础的示例: 1. 安装依赖:首先在项目中安装Node.js,然后安装处理视频的库,比如`fluent-ffmpeg`。在项目目录下运行: ```bash npm install fluent-ffmpeg --save ``` 2. 创建后端API:在Node.js或类似的后端框架(如Express)中,创建一个API来接收视频文件和执行FFmpeg命令。例如,你可以创建一个POST请求接收视频文件,并执行转换操作: ```javascript // server.js 或 backend/api/videoProcessor.js const express = require('express'); const ffmpeg = require('fluent-ffmpeg'); const app = express(); app.use(express.json()); app.post('/convert', async (req, res) => { try { const videoFile = req.files.video; const outputFilePath = `./temp/${videoFile.name}`; // 使用FFmpeg转换视频 const command = ffmpeg(videoFile.path) .setOutputOptions('-c:v libx264 -preset veryfast') .save(outputFilePath); await command.on('end', () => { res.status(200).json({ message: 'Video processed successfully', resultPath: outputFilePath }); }) .on('error', (err) => { console.error(err); res.status(500).json({ error: 'Error processing video' }); }); } catch (error) { res.status(500).json({ error: 'Internal server error' }); } }); app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 3. Vue组件调用API:在Vue组件中,你需要使用axios或其他HTTP库来发送POST请求到后端: ```html <!-- video-processing.vue --> <template> <div> <input type="file" @change="uploadVideo" /> <button @click="convertVideo">Convert Video</button> <div v-if="convertedVideo"> <video :src="convertedVideoUrl" controls></video> </div> <div v-if="error">{{ error }}</div> </div> </template> <script> import axios from 'axios'; export default { data() { return { file: null, convertedVideo: false, convertedVideoUrl: '', error: '' }; }, methods: { uploadVideo(e) { this.file = e.target.files; }, convertVideo() { if (!this.file) return; this.$axios.post('/api/convert', { video: this.file }).then(response => { this.convertedVideo = true; this.convertedVideoUrl = response.data.resultPath; }).catch(error => { this.error = error.message; }); } } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值