package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

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 javax.servlet.http.HttpSession;

@WebServlet("/HelloName")
public class HelloName extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
	    throws IOException, ServletException {

	response.setContentType("text/html;charset=utf-8");
	request.setCharacterEncoding("utf8");

	PrintWriter out = response.getWriter();
	out.println("<html>");
	out.println("<head>");
	String title = "Hello + Name page";
	out.println("<title>" + title + "</title>");
	out.println("<link rel='stylesheet' type='text/css' href='round.css'>");
	out.println("</head>");
	out.println("<body bgcolor=F8F8F8>");
	out.println("<h3>" + title + "</h3>");

	// Сессия начало
	HttpSession session = request.getSession(true);
	String savedLastName = (String) session.getAttribute("savedLastName");
	if ((savedLastName != null) && (savedLastName != "")) {
	    String heading;
	    Integer accessCount = new Integer(0);
	    if (session.isNew()) {
		heading = "Welcome, Newcomer";
	    } else {
		heading = "Welcome Back";
		Integer oldAccessCount = (Integer) session
			.getAttribute("accessCount");
		if (oldAccessCount != null) {
		    accessCount = new Integer(oldAccessCount.intValue() + 1);
		}
	    }
	    session.setAttribute("accessCount", accessCount);
	    // Сессия конец

	    // Сессия отображение начало
	    out.println("<hr>");
	    out.println("<h1 align=center>" + heading + "</h1>\n");
	    out.println("<h2>Information on Your Session:</h2>\n");
	    out.println("<table cellpadding=3 cellspacing=3 align=center bgcolor=9AFF92>\n");
	    out.println("<tr bgcolor=3CE022>\n");
	    out.println("<th>Info Type<th>Value\n");
	    out.println("<tr>\n");
	    out.println("<td>Фамилия\n");
	    out.println("<td>" + session.getAttribute("savedLastName") + "\n");
	    out.println("<tr>\n");
	    out.println("<td>ID\n");
	    out.println("<td>" + session.getId() + "\n");
	    out.println("<tr>\n");
	    out.println("<td>Creation Time\n");
	    out.println("<td>" + new Date(session.getCreationTime()) + "\n");
	    out.println("<tr>\n");
	    out.println("<td>Time of Last Access\n");
	    out.println("<td>" + new Date(session.getLastAccessedTime()) + "\n");
	    out.println("<tr>\n");
	    out.println("<td>Number of Previous Accesses\n");
	    out.println("<td>" + accessCount + "\n");
	    out.println("</table>\n");
	    out.println("<hr>");
	}
	// Сессия отображение конец

	String firstName = request.getParameter("firstName");
	if (firstName == null) {
	    out.println("<p>Введите Ваше имя.");
	}

	out.println("<p>");
	out.print("<form action=HelloName method=post>");
	out.println("Имя: ");
	out.println("<input type=text size=20 name=firstName>");
	out.println("<input type=submit value=Submit>");
	out.println("<input type=reset>");
	out.println("</form>");
	out.println("</body>");
	out.println("</html>");

    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
	    throws IOException, ServletException {
	doGet(request, response);

	String firstName = request.getParameter("firstName");
	PrintWriter out = response.getWriter();
	if ((firstName == null) || (firstName == "")) {
	    out.print("Вы не ввели имя.");
	} else {
	    out.println("<div id=round>");
	    out.println("<b class=rtop><b class=r1></b><b class=r2></b><b class=r3></b><b class=r4></b></b>");
	    out.println("<h1>Hello, " + firstName + "!</h1>");
	    out.println("<b class=rbottom><b class=r4></b><b class=r3></b><b class=r2></b><b class=r1></b></b>");
	    out.println("</div>");
	}

    }

}
