作者:Jarvis 邮箱:xinwei.hu@pan-support.com
这里我们将使用一个 UnauthenticatedServlet(无认证)的方
式来实现和前端页面的简单交互;关于环境搭建和配置这里不再赘
述——详细步骤和环境配置可以参考下面文档:
https://download.csdn.net/download/cw136/10911145
一. 新建一个 Niagara module
打开 Niagara 软件—>tools—>New Module
Next-> Next-> Finish.
二.代码及服务配置
接下来使用 IDEA 打开,刚刚新建的 mod:
添加需要用到的依赖:
compile "Tridium:web-rt:4.7"
compile "libraries:javax.servlet-api-3.1.0:"
刷新:
在目录下新建一个类:
代码如下:
package com.mypackage.Unauthenticated;
import javax.baja.naming.BOrd;
import javax.baja.nre.util.TextUtil;
import javax.baja.status.BStatusNumeric;
import javax.baja.sys.BComponent;
import javax.baja.web.servlets.UnauthenticatedServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class BUnValueServlet extends UnauthenticatedServlet {
public BUnValueServlet() {
}
public void init() throws ServletException {
System.out.println("hello, dataServlet");
}
protected void service(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
String method = TextUtil.toLowerCase(req.getMethod());
req.setCharacterEncoding("utf-8");
if (method.equals("get")) {
this.doGet(req, resp);
} else if (method.equals("post")) {
this.doPost(req, resp);
} else {
System.out.println("not get or post method detect");
resp.sendError(405, method);
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
resp.setHeader("Access-Control-Allow-Origin", "*");
String qeryStr = req.getQueryString();
System.err.println(qeryStr);
if (req.getParameter("addr") != null) {
BOrd ordFlag = BOrd.make(req.getParameter("addr"));
BComponent bComponent = ordFlag.resolve().getComponent();
if (req.getQueryString().indexOf("writevalue") > -1) {
bComponent.set("in10", new
BStatusNumeric((double)Float.parseFloat(req.getParameter("writevalue"))));
} else {
bComponent.subscribed();
String string = bComponent.get("out").toString();
resp.getWriter().write(string);
resp.flushBuffer();
}
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
System.out.println("post request received");
}
}
然后,在目录下添加一个 WEB-INF 文件和 web.xml 文件:
加入内容:
UnServlet
com.mypackage.Unauthenticated.BUnValueServlet
UnServlet
/UnServlet/*
把它加入 gradle 文件中:
jar {
from('src') {
include 'WEB-INF/*.xml'
}
}
打开如图文件:
UNAUTHENTICATED_ACCESS
response html access for dataServlet server
NETWORK_COMMUNICATION
Outside access for UnServlet
最后编译:
这样服务就添加到了 Niagara 里了。重启 Niagara 站点,使用
浏览器访问: