I just started to use JSP and Servlet and i am trying to make a controller for a device. A simple page with 4 buttons. Each time when one of the buttons is clicked, the user should see something displayed(according with the pressed button). I am trying to do that by using a Servlet and JSP. I am not sure if this is a good approach, but the problem is that i am not doing this well, because when i run my application, i can see the 4 buttons, but on click them nothing happens. What i am doing wrong? I would appreciate some suggestions for another approach.
MainServlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CheckTemperature
*/
@WebServlet("/CheckTemperature")
public class MainServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MainServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Check tempetaure</title></head>");
out.println("<body>");
out.println("<input type=\"submit\" value=\"Check temperature\" name=\"button\"/>");
out.println("<input type=\"submit\" value=\"Get AC state\" name=\"button\"/>");
out.println("<input type=\"submit\" value=\"Turn ON AC\" name=\"button\"/>");
out.println("<input type=\"submit\" value=\"Turn OFF AC\" name=\"button\"/>");
out.println("</body>");
out.println("</html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String button = request.getParameter("button");
if(button.equalsIgnoreCase("Check temperature")){
request.getRequestDispatcher("/WEB-INF/jsps/checkTemperature.jsp").include(request, response);
} else if(button.equalsIgnoreCase("Get AC state")){
request.getRequestDispatcher("/WEB-INF/jsps/acState.jsp").include(request, response);
} else if(button.equalsIgnoreCase("Turn ON AC")){
request.getRequestDispatcher("/WEB-INF/jsps/turnOn.jsp").include(request, response);
} else if(button.equalsIgnoreCase("Turn OFF AC")){
request.getRequestDispatcher("/WEB-INF/jsps/turnOff.jsp").include(request, response);
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>ArduinoController</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>ACController</display-name>
<servlet-name>MainServlet</servlet-name>
<servlet-class>ro.dnad.controller.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/main</url-pattern>
</servlet-mapping>
</web-app>
checkTemperature.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="ro.dnad.controller.EthernetACDriver" %>
<%EthernetACDriver driver = new EthernetACDriver("localhost",8080); %>
<%double temp = driver.getTemperature() * 5; %>
<%=temp%>
acState.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="ro.dnad.controller.EthernetACDriver" %>
<%EthernetACDriver driver = new EthernetACDriver("localhost",8080); %>
<%=driver.ACStatus()%>
turnOff.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="ro.dnad.controller.EthernetACDriver" %>
<%EthernetACDriver driver = new EthernetACDriver("localhost",8080); %>
<%driver.sendMessage(3); %>
<%=driver.ACStatus()%>
turnOfn.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="ro.dnad.controller.EthernetACDriver" %>
<%EthernetACDriver driver = new EthernetACDriver("localhost",8080); %>
<%driver.sendMessage(2); %>
<%=driver.ACStatus()%>