opret cookie, så bruger bliver ved med at være logget ind
Hejsa.Jeg har fået lavet mit login, så det virker. Nu vil jeg så gerne have at der oprettes en cookie, så en bruger bliver ved med at være logget ind på de sider jeg har oprettet. Jeg har læst mig til en smule om HttpSession og hvad der sker når der oprettes en cookie. Det er nu også fint nok, men jeg er lidt i tvivl om selve cookien skal have en servlet i sig selv, eller om den skal implementeres i servletten når bruger bliver succesfuldt logget ind? Jeg har prøvet at lave noget kode.. Er jeg helt forkert på den, eller på rette vej? Mvh Mads
package ExamplePackage;
import java.io.IOException;
import java.sql.Date;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CookieUsageServlet")
public class CookieUsageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public CookieUsageServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = getCookie(request, response);
printResponse(response, cookie);
}
private Cookie getCookie(HttpServletRequest request, HttpServletResponse response) {
Cookie cookie = null;
Cookie[] cookieArray = request.getCookies();
if(cookieArray != null) {
for(int x = 0; x < cookieArray.length; x++) {
if(cookieArray[x].getName().equals("za_cookie")) cookie = cookieArray[x];
}
}
if(cookie != null) {
System.out.println("cookie retrieved");
} else {
int timeToExpireCookie = new Integer(getServletContext().getInitParameter("time-to-expire-cookie")).intValue();
cookie = new Cookie("za_cookie", Long.toString(new Date(timeToExpireCookie).getTime()));
cookie.setMaxAge(timeToExpireCookie);
cookie.setPath(request.getContextPath()); // Stil til login??
System.out.println("Cookie created...");
response.addCookie(cookie);
}
return cookie;
}
private void printResponse(HttpServletResponse response, Cookie cookie) throws IOException {
PrintWriter printWriter = response.getWriter();
response.setContentType("text/html");
printWriter.println("<html>");
printWriter.println("<head><title>Cookie In JAVA servlet</title></head>");
printWriter.println("<body>");
printWriter.println("<cookie name: " + cookie.getName() + "<br>");
printWriter.println("<cookie value: " + cookie.getValue() + "<br>");
printWriter.println("<time to expire cookie in seconds: " + cookie.getMaxAge() + "<br>");
printWriter.println("</body>");
printWriter.println("</html>");
}
}