الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب مساعدة في الربط سيرفلت بقاعدة البيانات

بدأه الظاهر بيبرس في 27 يونيو 2012 · 3 رد · 1,141 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

ارجوا حل مشكلتي في كود السرفلت الذي يقوم بالربط بقاعدة بيانات Mysql المخزنه علي Apache server والمطلوب من هذه السرفلت اخذ قيم من المدلت والتاكد من وجود هذه القيم في قاعدة البيانات لعمل Login المشكله تظهر عند تنفيذ السرفلت.

هذه رسالة الخطأ التي تظهر عند تنفيذ السرفلت :

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.io.EOFException
	java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
	java.io.DataInputStream.readUTF(DataInputStream.java:589)
	java.io.DataInputStream.readUTF(DataInputStream.java:564)
	NewServlet2.processRequest(NewServlet2.java:33)
	NewServlet2.doGet(NewServlet2.java:80)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.14 logs.

هذا كود السرفلت :

 
[code]import javax.servlet.annotation.WebServlet;
import java.io.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.ServletException;

/**
 *
 */
@WebServlet(name = "NewServlet2", urlPatterns = {"/NewServlet2"})
public class NewServlet2 extends HttpServlet {

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
          DataInputStream in = new DataInputStream((InputStream)request.getInputStream());

            String username = in.readUTF();
            String password = in.readUTF();


            Statement st;
            Connection con=null;
            try {/* connects to MYSQL database*/
                  Class.forName("com.mysql.jdbc.Driver").newInstance();

                  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user1","root","diabetes");

                  st=conn.createStatement();
                  ResultSet rs=st.executeQuery("select username, password from patint");
                  while(rs.next()){
                          if(rs.getObject(1).toString().equals(username.trim())){

                                if(rs.getObject(2).toString().equals(password.trim())){
                                          response.sendError(HttpServletResponse.SC_OK);
                                }



            }}
            }catch (Throwable t) {
               response.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE);
                                }



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

            in.close();
            out.close();
            out.flush();
      }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}

وهذا كود المدلت المطالب بارسال القيم الي السرفلت :

package loginscreenexample;

import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.*;
import org.netbeans.microedition.lcdui.LoginScreen;
import org.netbeans.microedition.lcdui.SplashScreen;
import org.netbeans.microedition.lcdui.WaitScreen;
import org.netbeans.microedition.util.SimpleCancellableTask;


/**
 * @author devil
 */
public class LoginScreenExample extends MIDlet implements CommandListener {

    private boolean midletPaused = false;
    private boolean login = false;
    private String username;
        private String url = 
                "http://localhost:8084/FirstProject/NewServlet2";
//<editor-fold defaultstate="collapsed" desc=" Generated Fields ">                      
private WaitScreen waitScreen;
private SplashScreen splashScreen;
private LoginScreen loginScreen;
private Alert alertSuccess;
private Alert alertFailure;
private Command exitCommand;
private SimpleCancellableTask task;
//</editor-fold>                    

    /**
     * The LoginScreenExample constructor.
     */
    public LoginScreenExample() {
    }
//<editor-fold defaultstate="collapsed" desc=" Generated Methods ">                       
//</editor-fold>                     

//<editor-fold defaultstate="collapsed" desc=" Generated Method: initialize ">                                           
/**
 * Initializes the application.
 * It is called only once when the MIDlet is started. The method is called before the <code>startMIDlet</code> method.
 */
private void initialize () {                                         
        // write pre-initialize user code here

        // write post-initialize user code here
}                            
//</editor-fold>                          

//<editor-fold defaultstate="collapsed" desc=" Generated Method: startMIDlet ">                                        
/**
 * Performs an action assigned to the Mobile Device - MIDlet Started point.
 */
public void startMIDlet () {                                      
        // write pre-action user code here
switchDisplayable (null, getSplashScreen ());                                        
        // write post-action user code here
}                             
//</editor-fold>                           

//<editor-fold defaultstate="collapsed" desc=" Generated Method: resumeMIDlet ">                                         
/**
 * Performs an action assigned to the Mobile Device - MIDlet Resumed point.
 */
public void resumeMIDlet () {                                       
        // write pre-action user code here

        // write post-action user code here
}                              
//</editor-fold>                            

//<editor-fold defaultstate="collapsed" desc=" Generated Method: switchDisplayable ">                                              
/**
 * Switches a current displayable in a display. The <code>display</code> instance is taken from <code>getDisplay</code> method. This method is used by all actions in the design for switching displayable.
 * @param alert the Alert which is temporarily set to the display; if <code>null</code>, then <code>nextDisplayable</code> is set immediately
 * @param nextDisplayable the Displayable to be set
 */
public void switchDisplayable (Alert alert, Displayable nextDisplayable) {                                            
        // write pre-switch user code here
Display display = getDisplay ();                                               
if (alert == null) {
display.setCurrent (nextDisplayable);
} else {
display.setCurrent (alert, nextDisplayable);
}                                             
        // write post-switch user code here
}                                   
//</editor-fold>                                 

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: task ">                                   
/**
 * Returns an initiliazed instance of task component.
 * @return the initialized component instance
 */
public SimpleCancellableTask getTask () {
if (task == null) {                                 
            // write pre-init user code here
task = new SimpleCancellableTask ();                                   
task.setExecutable (new org.netbeans.microedition.util.Executable() {
public void execute () throws Exception {                                 
                    login();
}                                    
});                                  
            // write post-init user code here
}                         
return task;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Method: commandAction for Displayables ">                                                 
/**
 * Called by a system to indicated that a command has been invoked on a particular displayable.
 * @param command the Command that was invoked
 * @param displayable the Displayable where the command was invoked
 */
public void commandAction (Command command, Displayable displayable) {                                               
        // write pre-action user code here
if (displayable == loginScreen) {                                           
if (command == LoginScreen.LOGIN_COMMAND) {                                         
                // write pre-action user code here
switchDisplayable (null, getWaitScreen ());                                           
                // write post-action user code here
} else if (command == exitCommand) {                                          
                // write pre-action user code here
exitMIDlet ();                                           
                // write post-action user code here
}                                           
} else if (displayable == splashScreen) {
if (command == SplashScreen.DISMISS_COMMAND) {                                         
                // write pre-action user code here
switchDisplayable (null, getLoginScreen ());                                           
                // write post-action user code here
}                                           
} else if (displayable == waitScreen) {
if (command == WaitScreen.FAILURE_COMMAND) {                                         
                // write pre-action user code here
switchDisplayable (getAlertFailure (), getLoginScreen ());                                           
} else if (command == WaitScreen.SUCCESS_COMMAND) {                                          
                // write pre-action user code here
switchDisplayable (getAlertSuccess (), getLoginScreen ());                                            
}                                                   
}                                                 
        // write post-action user code here
}                                
//</editor-fold>                              

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: waitScreen ">                                   
/**
 * Returns an initiliazed instance of waitScreen component.
 * @return the initialized component instance
 */
public WaitScreen getWaitScreen () {
if (waitScreen == null) {                                 
            // write pre-init user code here
waitScreen = new WaitScreen (getDisplay ());                                    
waitScreen.setTitle ("waitScreen");
waitScreen.setCommandListener (this);
waitScreen.setText ("Please Wait ...");
waitScreen.setTask (getTask ());                                  
            // write post-init user code here
}                         
return waitScreen;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: splashScreen ">                                   
/**
 * Returns an initiliazed instance of splashScreen component.
 * @return the initialized component instance
 */
public SplashScreen getSplashScreen () {
if (splashScreen == null) {                                 
            // write pre-init user code here
splashScreen = new SplashScreen (getDisplay ());                                    
splashScreen.setTitle ("splashScreen");
splashScreen.setCommandListener (this);
splashScreen.setText ("Patient Services");                                  
            // write post-init user code here
}                         
return splashScreen;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: exitCommand ">                                   
/**
 * Returns an initiliazed instance of exitCommand component.
 * @return the initialized component instance
 */
public Command getExitCommand () {
if (exitCommand == null) {                                 
            // write pre-init user code here
exitCommand = new Command ("Exit", Command.EXIT, 0);                                   
            // write post-init user code here
}                         
return exitCommand;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: loginScreen ">                                   
/**
 * Returns an initiliazed instance of loginScreen component.
 * @return the initialized component instance
 */
public LoginScreen getLoginScreen () {
if (loginScreen == null) {                                 
            // write pre-init user code here
loginScreen = new LoginScreen (getDisplay ());                                    
loginScreen.setLabelTexts ("Username:", "Password:");
loginScreen.setTitle ("Welcome");
loginScreen.addCommand (LoginScreen.LOGIN_COMMAND);
loginScreen.addCommand (getExitCommand ());
loginScreen.setCommandListener (this);
loginScreen.setBGColor (-10027009);
loginScreen.setFGColor (0);
loginScreen.setLoginTitle ("please Enter UserName & Password");
loginScreen.setUseLoginButton (false);                                  
            // write post-init user code here
}                         
return loginScreen;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: alertFailure ">                                   
/**
 * Returns an initiliazed instance of alertFailure component.
 * @return the initialized component instance
 */
public Alert getAlertFailure () {
if (alertFailure == null) {                                 
            // write pre-init user code here
alertFailure = new Alert ("alert", "Error", null, null);                                    
alertFailure.setTimeout (Alert.FOREVER);                                  
            // write post-init user code here
}                         
return alertFailure;
}
//</editor-fold>                       

//<editor-fold defaultstate="collapsed" desc=" Generated Getter: alertSuccess ">                                   
/**
 * Returns an initiliazed instance of alertSuccess component.
 * @return the initialized component instance
 */
public Alert getAlertSuccess () {
if (alertSuccess == null) {                                 
            // write pre-init user code here
alertSuccess = new Alert ("alert1");                                    
alertSuccess.setTimeout (Alert.FOREVER);                                  
            // write post-init user code here
}                         
return alertSuccess;
}
//</editor-fold>                       



    /**
     * Returns a display instance.
     * @return the display instance.
     */


    public Display getDisplay() {
        return Display.getDisplay(this);
    }

    /**
     * Exits MIDlet.
     */
    public void exitMIDlet() {
        switchDisplayable(null, null);
        destroyApp(true);
        notifyDestroyed();
    }

    /**
     * Called when MIDlet is started.
     * Checks whether the MIDlet have been already started and initialize/starts or resumes the MIDlet.
     */
    public void startApp() {
        if (midletPaused) {
            resumeMIDlet();
        } else {
            initialize();
            startMIDlet();
        }
        midletPaused = false;
    }

    /**
     * Called when MIDlet is paused.
     */
    public void pauseApp() {
        midletPaused = true;
    }

    /**
     * Called to signal the MIDlet to terminate.
     * @param unconditional if true, then the MIDlet has to be unconditionally terminated and all resources has to be released.
     */
    public void destroyApp(boolean unconditional) {
    }

    private void login() throws IOException {
        //URL
        String url = "http://localhost:8084/conn/login" + "?username=" + getLoginScreen().getUsername() + "&password=" + getLoginScreen().getPassword();
        //Clean up alertSuccess
        getAlertSuccess().setString("");
        //Connect to the server
        HttpConnection hc = (HttpConnection) Connector.open(url);
        //Authentication
        if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
            login = true;
        }
        //Closing time...
        hc.close();
        //Take action based on login value
        if (login) {
            getAlertSuccess().setString("Login Succesfull");
        } else {
            getAlertSuccess().setString("Wrong Username or Password");
        }
        login = false;
    }
}

تم تعديل هذه المشاركة بواسطة الظاهر بيبرس في 28 يونيو 2012 في 22:36

#2

تم تعديل الموضوع وتنسيقه ...

#3

اخي ضع كود داخل

try{} catch(Exeption e){ e.getMessage();} c

وضع هنا الخطا او ارفع المشروع + قاعدة بيانات

#4

أخي الأسطر التي وضعتها للخطأ لا تتوافق مع الكود المرسل

غلى كل سأفترض من عندي وابني على الخطأ لديك

عندما تستخدم الدالة sendError فإنك تقوم بإرسال الرد للمستخدم

لذا لا يمكنك أن تكتب مرة أخرى أو ترسل خطأ آخر

لذا عند إرسال خطأ تأكد من عدم إرسال أي شيء آخر بعده

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…