1
首先感謝您對我的問題花時間返回servlet的一個值,jsp頁面。用ajax
這裏我想做的事:當我的jsp頁面加載,我想從我的servlet的值設置我的按鈕的實際狀態和我的滑塊值的實際狀態。之後在我的網頁上更新,我想改變它的價值。我已經可以將JSP頁面值傳遞給我的servlet,但是我仍然堅持將值從servlet傳遞到jsp頁面。
下面是一些代碼,以幫助
問候
JSP文件
<!--<!--DOCTYPE html -->
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="./resources/css/jquery.mobile-1.4.2.css">
<script src="./resources/script/jquery-1.11.0.js"></script>
<script src="./resources/script/myJquery.js"></script>
<script src="./resources/script/jquery.mobile-1.4.2.js"></script>
</head>
<body>
<!-- RDC SUB WINDOW LIVING -->
<div data-role="page" ID="LIVING">
<div data-role="header">
<a href="#RDC"
class="ui-btn ui-corner-all ui-shadow ui-icon-home ui-btn-icon-left">HOME</a>
<h1>LIVING ROOM</h1>
</div>
<div data-role="main" class="ui-content">
<div data-role="collapsible">
<h1>CELLING: LIGHT</h1>
<div class="containing-element">
<img src="./resources/images/light-on.png" alt="LIGHT-ON"
class="ui-li-icon"> <br> <select id="tLight"
name="tLight" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select> <input type="range" name="tDimmer" id="tDimmer" value="0" min="0"
max="100" data-popup-enabled="true">
</div>
</div>
</div>
<div data-role="footer">
<h1></h1>
</div>
</div>
Ajax代碼
//Living room Server $POST
$(document).ready(function() {
$(function Dimmer() {
$("#tDimmer").change(function() {
$.post("MyServlet", {
mLivingDimmer : $("#tDimmer").val()
});
});
});
$(function Light() {
$("#tLight").change(function() {
$.post("MyServlet", {
mLivingLight : $("#tLight").val()
});
});
});
});
servlet代碼:
package com.linux;
import java.io.IOException;
import java.io.PrintWriter;
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//GpioController gpio;
//GpioPinDigitalOutput mLight;
String LightState = "on";
String DimmerValue = "25";
public MyServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("LivingLight = "+request.getParameter("mLivingLight"));
System.out.println("LivingDimmer = "+request.getParameter("mLivingDimmer"));
}
}
頁
的System.out的。我的servlet中使用的println()只是爲了看到我的servlet正在從網頁接收POST。正如我所說的即時通訊尋求做,它的時候,我的網頁是準備去拿LightState和DimmerValue字符串返回到該網頁,所以我可以更改它之前刷新按鈕,sldier欄值。 – Mav3r1ck
在任何情況下,將它們寫出來作爲響應是您將它們從servlet傳回客戶端的方式。 – developerwjk
所以我在我的servlet中添加了一個響應PrintWriter out = response.getWriter(); \t \t out.write(LightState);但我不知道如何發送POST來獲得這個響應,當我的頁面第一次加載。 – Mav3r1ck