2016-03-19 13 views
0

Sınıfı servlet denetleyicisine koymayı denedim ancak yapıcı ve ayar yöntemi erişimi ile ilgili sorun yaşıyorum. İş mantığını birbirinden ayırmak için geliştirdiği verimliliğini okudum, JavaBean'a koymaya çalıştım bile, ama denetleyiciden parametrelerin nasıl gönderileceğini henüz bilmiyorum. Hala öğrenecek çok şeyim var, sadece bir proje üzerinde çalışıyordum.MVC'nin iş mantığını Servlet'ten ayrı bir sınıfta nasıl uygularım?

+0

Spring MVC'ye bakmanızı öneriyorum. Sıhhi tesisatın tümü zaten sizin için ele alınıyor ve sadece denetleyici yöntemleri ve HTML şablonları yazmanız gerekiyor. – chrylis

+0

Teşekkür ederim, Chryslis. Ben ona bakardım. –

cevap

0

İş mantığını JavaEE platformundaki Sunum katmanı i.e (Servlet ve JSP) içinden ayırmak için EJB'yi kullanabilirsiniz. Projenizde çok fazla iş mantığı yoksa, sadece Java POJO sınıflarını kullanın. This example gives very raw idea. you can use web frameworks which have built in MVC design.

Controller: Kullanım Servlet'ler navigasyon kontrol etmek veya HTTP istekleri karşı diğer görevleri yerine getirmektir.

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


    public LoginServlet() { 
     super(); 
    } 



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     LoginManager loginManager=new LoginManager(); 
     if(loginManager.isValidUser("getUserID from request Params","password from request params")){ 
      //initialize user session and redirect to dashboard 
      //response.sendRedirect("/userhome.jsp"); 
     }else{ 
      //display failure messages. etc... 
      //response.sendRedirect("/login.jsp"); 
     } 
    } 

} 

Model : Oturum ilgili işlemler için yöntemler set içerir POJO.

public class LoginManager { 

    private Connection con; 

    public LoginManager() { 

    } 

    private void initConnection(){ 
     //register driver class and create a new connection 
     //you can create separate DBUtils class to get new connections 
     //to prevent boilerplate code. 

     //make new connection to database 
//  con=.. 
    } 

    private void closeConnection() throws SQLException{ 
     con.close(); 
    } 

    public boolean isValidUser(String user,String password) throws SQLException{ 
     initConnection(); 
     PreparedStatement pstm=con.prepareStatement("select 1 from users where userID = ? and password=?"); 

// ResultSet rs parametreler kullanıcı kimliği ve şifre set = pstm.executeQuery();

 if (rs.next()){ 
      if(checkpassword.....) 
      return true; 
     } 
     closeConnection(); 
     return false; 
    } 
} 

View: login.jsp gibi

sayfaları ve userhome.jsp sayfalar görüntülerdir;

+0

Teşekkür ederim, AsSIDe, chrylis. Murach'in Servlet ve JSP ikinci baskısını okuyorum. Okuma listeme bir web çerçevesi ekleyeceğim. –

İlgili konular