我在尝试将变量传递给JSP时遇到了问题。这是我的servlet代码:
public class TwilioServlet extends HttpServlet {
private static final long serialVersionUID = 3645708904327108592L;
public static final String ACCOUNT_SID = "account_sid";
public static final String AUTH_TOKEN = "auth_token";
public static final String APP_SID = "app_sid";
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
TwilioCapability capability = new TwilioCapability(ACCOUNT_SID, AUTH_TOKEN);
capability.allowClientOutgoing(APP_SID);
String token = null;
try {
token = capability.generateToken();
} catch (DomainException e) {
e.printStackTrace();
}
// Forward the token information to a JSP view
response.setContentType("text/html");
request.setAttribute("token", token);
System.out.println("Capability toke is " + token);
RequestDispatcher view = request.getRequestDispatcher("client.jsp");
view.forward(request, response);
}
}
而且,这是我的client.jsp
文件:
<!DOCTYPE html>
<html>
<head>
<title>Hello Client Monkey 1</title>
<script type="text/javascript"
src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<link href="//static0.twilio.com/resources/quickstart/client.css"
type="text/css" rel="stylesheet" />
<script type="text/javascript">
/* Create the Client with a Capability Token */
Twilio.Device.setup("${token}", {debug: true});
/* Let us know when the client is ready. */
Twilio.Device.ready(function (device) {
$("#log").text("Ready");
});
/* Report any errors on the screen */
Twilio.Device.error(function (error) {
$("#log").text("Error: " + error.message);
});
Twilio.Device.connect(function (conn) {
$("#log").text("Successfully established call");
});
/* Connect to Twilio when we call this function. */
function call() {
Twilio.Device.connect();
}
</script>
</head>
<body>
<button class="call" onclick="call();">Call</button>
<div id="log">Loading pigeons...</div>
</body>
</html>
我通过以下网址访问我的网页:
http://localhost:8080/TwillioTest1/TwilioServlet
为什么${token}
没有被替换?
答案 0 :(得分:1)
您问题的可能答案 - click。不要害怕使用谷歌的力量。
<强>更新强>
根据@dur的建议,我在此处链接部分答案:
从web.xml中删除该DOCTYPE,一切都很好。一个有效的Servlet 3.0(Tomcat 7,JBoss AS 6/7,GlassFish 3等)兼容的web.xml完全如下所示,没有任何DOCTYPE:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
</web-app>
答案 1 :(得分:0)
EL表达式可能被禁用;您可能必须在web.xml中激活它们。 Can you try this?