2015-01-16 6 views
-2

Есть ли какой-нибудь код, который я мог бы добавить в своем веб-приложении, чтобы реализовать куки? Это именно то, что я могу сделать в web.xml и jsp, возможно? Я хочу реализовать файлы cookie для входа в систему, но я понятия не имею, как это сделать. Может ли кто-нибудь дать мне точные инструкции о том, как его реализовать?Как я могу добавить код печенья в своем веб-приложении

Большое спасибо за помощь и поддержку.

/* 

* Чтобы изменить заголовок этой лицензии, выберите «Заголовки лицензий» в «Свойства проекта». * Чтобы изменить этот шаблонный файл, выберите «Инструменты» | Шаблоны * и откройте шаблон в редакторе. */

package my_servlets;

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

import connect_with_my_sql_database.LoginDao; 

импорт javax.servlet.http.Cookie;

public class Login extends HttpServlet{ 

    private static final long serialVersionUID = 1L; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response)  
      throws ServletException, IOException { 


    } 

    @Override protected void doPost(HttpServletRequest request, HttpServletResponse response)  
      throws ServletException, IOException {  

     response.setContentType("text/html");  
     PrintWriter out = response.getWriter(); 

     String n=request.getParameter("j_Username");  
     String p=request.getParameter("j_Password"); 

     HttpSession session = request.getSession(false); 
     if(session!=null) { 
      session.setAttribute("Username", n); 
      session.setAttribute("Password", p); 
     } 

     if(LoginDao.validate(n, p)){ 

      Cookie c1=new Cookie("j_Username",encrypt(n));//the username and passwrd are //encrypted 
      Cookie c2=new Cookie("j_Password",encrypt(p)); 
      c1.setMaxAge(20000); 
      c2.setMaxAge(20000); 
      response.addCookie(c1); 
      response.addCookie(c2); 

      RequestDispatcher rd=request.getRequestDispatcher("style/success.jsp"); 
      rd.forward(request,response);  
     }  
     else{ 
      //out.print("<p style=\"color:red\">Sorry "+n+" or "+p+" error</p>"); 
      RequestDispatcher rd=request.getRequestDispatcher("style/loginError.jsp");  
      rd.forward(request,response);  
     }  


     out.close();  
    }  
} 
+0

Почему вы отмечаете это с помощью 'javascript', если хотите сделать систему входа? Вы пишете приложение Node.js? Если это так, то ваш HTTP API, вероятно, имеет методы обработки файлов cookie. – Quentin

+0

Да, извините, вы правы. Возможно, лучше пометить это куки или что-то в этом роде. Я не пишу приложение node.js –

ответ

0

Давайте предположим, что есть login.jsp, имеющий поля для uname и пароль, и, когда мы попали в представить управление переходит к LoginCheck сервлета. LoginCheck проверяет правильность имени пользователя и пароля. Если да, это создает два куки-файла и отправляет их в браузер.

Login.jsp

<form action="LoginCheck" method="post"> 
<input type="text" name="uname"> 
<input type="pasword" name="password"> 
<input type="submit"> 
</form> 

LoginCheck-- Servlet

public void doPost(HttpServletRequest request,HttpServletResponse response) 
{ 
String uname=request.getParameter("uname"); 
String password=request.getParameter("password"); 
if(checkLogin(uname,password))//checkLogin going to check with database if the user is logged in 
{ 
Cookie c1=new Cookie("uname",encrypt(uname));//the username and passwrd are //encrypted 
Cookie c2=new Cookie("password',encrypt(password)); 
c1.setMaxAge(20000); 
c2.setMaxAge(20000); 
response.addCookie(c1); 
response.addCookie(c2);//sends cookies to the browser 
} 

Надеется, что это помогает.

+0

Как я могу видеть на практике, однако, что cookie работает правильно? Что должно появиться при входе в мое приложение? Я начинаю работать в веб-приложениях, и мои вопросы могут быть немного тривиальными или глупыми –

+0

После настройки файлов cookie через код, указанный в LoginCheck, вы можете проверить, были ли установлены файлы cookie. Для проверки вы можете использовать Cookie arr [] = request.getCookies(); то вы можете перебирать массив Cookie. for (int i = 0; i

+0

Я добавил код сервлета выше, правильно? где я могу добавить итерацию массива? в моем сервлете или в новом jsp? –

Смежные вопросы