Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package solutions;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.google.gson.Gson;
- @WebServlet("/ValidateTag")
- public class ValidateTag extends HttpServlet {
- // Collects or returns data for sensorname, sensorvalue parameters
- private static final long serialVersionUID = 1L;
- // Local variables holding last values stored for each parameter
- SensorData lastSensor = new SensorData("unknown", "unknown");
- Gson gson = new Gson();
- Connection conn = null;
- Statement stmt;
- public ValidateTag() {
- super();
- }
- public void init(ServletConfig config) throws ServletException {
- super.init(config);
- System.out.println("Sensor server is up and running\n");
- System.out.println("Upload sensor data with http://localhost:8080/PhidgetServer2019/ValidateTag?sensordata=someSensorJson");
- System.out.println("View last sensor reading at http://localhost:8080/PhidgetServer2019/ValidateTag?getdata=true \n\n");
- }
- private void getConnection() {
- // This will load the driver and establish a connection
- String user = "jadczakd";
- String password = "labenTra8";
- // Note none default port used, 6306 not 3306
- String url = "jdbc:mysql://mudfoot.doc.stu.mmu.ac.uk:6306/"+user;
- // Load the database driver
- try { Class.forName("com.mysql.jdbc.Driver").newInstance();
- } catch (Exception e) {
- System.out.println(e);
- }
- // get a connection with the user/pass
- try {
- conn = DriverManager.getConnection(url, user, password);
- // System.out.println("DEBUG: Connection to database successful.");
- stmt = conn.createStatement();
- } catch (SQLException se) {
- System.out.println(se);
- System.out.println("\nDid you alter the lines to set user/password in the sensor server code?");
- }
- }
- private void closeConnection() {
- // get a connection with the user/pass
- try {
- conn.close();
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- public void destroy() {
- try { // conn.close(); // should have no need to close connection
- // add anything extra to do when servlet closes
- } catch (Exception e) {
- System.out.println(e);
- }
- } // destroy()
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- response.setStatus(HttpServletResponse.SC_OK);
- // Declare a SensorData object to hold the incoming data
- SensorData oneSensor = new SensorData("unknown", "unknown");
- // Check to see whether the client is requesting data or sending it
- String getdata = request.getParameter("getdata");
- // if no getdata parameter, client is sending data
- if (getdata == null){
- // getdata is null, therefore it is receiving data
- // Extract the parameter data holding the sensordata
- String sensorJsonString = request.getParameter("sensordata");
- // Problem if sensordata parameter not sent, or is invalid json
- if (sensorJsonString != null) {
- // Convert the json string to an object of type SensorData
- oneSensor = gson.fromJson(sensorJsonString, SensorData.class);
- // now update the table
- } // endif sensorJsonString not null
- } // end if getdata is null
- else { // Retrieve and return data (JSON format)
- // Code to retrieve data
- String tagId = request.getParameter("tagid");
- String resultsJson = retrieveSensorData(tagId);
- // Update sensor values and send back response
- PrintWriter out = response.getWriter();
- out.println(resultsJson);
- System.out.println("validated card, sending back json"+resultsJson.toString());
- out.close();
- //sendJSONString(response);
- }
- }
- /*private String updateSensorValues(SensorData oneSensor){
- // all ok, update last known values and return
- lastSensor = oneSensor;
- System.out.println("DEBUG : Last sensor tagid " + oneSensor.getTagid() + ", readerid "+oneSensor.getReaderid() +", roomid "+oneSensor.getReaderid());
- return "Sensor value updated.";
- }*/
- /*private void sendJSONString(HttpServletResponse response) throws IOException{
- response.setContentType("application/json");
- String json = gson.toJson(lastSensor);
- PrintWriter out = response.getWriter();
- System.out.println("DEBUG: sensorServer JSON: "+lastSensor.toString());
- out.println(json);
- out.close();
- }*/
- private String retrieveSensorData(String tagid ) {
- String selectSQL = "select * from validtags where tagid='" +
- tagid + "'";
- ResultSet rs;
- // Declare ArrayList of sensors to hold results
- ArrayList<SensorData> allSensors = new ArrayList<SensorData>();
- try {
- // create a result set of selected values
- getConnection();
- rs = stmt.executeQuery(selectSQL);
- // iterate over the result set
- while (rs.next()) {
- // Declare a SensorData object to hold individual values,
- // initialise to defaults
- // fill in statement
- SensorData oneSensor = new SensorData("unknown", "unknown","unknown");
- oneSensor.setTagid(rs.getString("tagid"));
- oneSensor.setReaderid(rs.getString("readerid"));
- oneSensor.setDoorid(rs.getString("roomid"));
- oneSensor.valid = true;
- // add this sensor to ArrayList of Sensors
- allSensors.add(oneSensor);
- // debug print this sensor to console
- }
- } catch (SQLException ex) {
- System.out.println("Error in SQL " + ex.getMessage());
- }
- // close connection to databse
- closeConnection();
- // Convert sensor list to json array and send back to user
- String allSensorsJson = gson.toJson(allSensors);
- // return this String from method
- return allSensorsJson;
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- doGet(request, response);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement