AMcoder - javascript, python, java, html, php, sql

Java սերվիլետ՝ օգտագործելով JSON - տվյալների բազայի միացում և մուտքի վավերացում

Ես այժմ գտնվում եմ «Գերի պորտալի» ստեղծման գործընթացում: Հենց հիմա ես բախվում եմ խնդրի հետ, և հուսով եմ, որ դուք, մարդիկ, կարող եք ինձ օգնել: Ես ուզում եմ Java Servlet ստեղծել JSON-ի օգտագործմամբ (տվյալների բազայի միացում), բայց չգիտեմ, թե ինչպես համատեղել JSON-ը java-ի հետ: Ես համացանցում փնտրել եմ իմ խնդրի պատասխանները, բայց անհաջող: Ես չգիտեմ, թե ինչպես սկսել դրանով:

Լրացուցիչ տեղեկություն:

  • արտաքին սերվերը հասանելի է url-ով
  • Ես օգտագործում եմ Eclipse-ը java սերվիլետը պատրաստելու համար

Արդյո՞ք ես նույնպես պետք է օգտագործեմ SQL, երբ ես մոտենում եմ իմ տվյալների բազայի (սերվերին)

Նախապես շնորհակալություն!

Ես ունեմ հետևյալ 3 Java սերվերները: Սրանք ամբողջական չեն.

Երևի պետք է առաջին սերվլետի հետ կապը հաստատեմ։ Երկրորդ 2-ը նույնականացման համար են: Բայց ես վստահ չեմ: Կարո՞ղ եք ինձ բացատրել, թե ինչ են անում այս սերվերները: կամ կարող է անել?

package BL;

import java.io.IOException;

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;

/**
 * Servlet implementation class BLServlet
 */
@WebServlet("/BLServlet/*")
public class BLServlet extends HttpServlet {

	enum BLServlet_Request {
		Unknown,
		User
	};

	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BLServlet() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	dispatchRequest(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

	
    private int dispatchRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        int rc = 0;
        
        HttpSession _HttpSession = request.getSession();
        
        String s_RequestURL = request.getRequestURL().toString();
        String s_RequestURI = request.getRequestURI();
        String s_ContextPath = request.getContextPath();

        String s_Request_Prefix = s_ContextPath;
        String s_Request = s_RequestURI.substring(s_Request_Prefix.length(), s_RequestURI.length());
        if (!s_Request.startsWith("/")) {
            s_Request = "/" + s_Request;
        }
        
        BLServlet_Request _CurrentRequest = requestFromURI(s_Request);
        
        System.out.println("BL servlet Context: " + s_ContextPath + " request URL: " + s_RequestURL + " URI: " + s_RequestURI + " Request: " + s_Request);
        
    	switch (_CurrentRequest) {
			case User:
				rc = new BLRequestUser().handle(request, response);
				break;
			case Unknown:
		        System.out.println("BL servlet Context: received unknown request [" + s_Request + "]");
				break;
    	}
    	
    	return rc;
    }
	

    static BLServlet_Request requestFromURI(final String _uri) {
    	if (_uri.equals("/BLServlet/User")) {
    		return BLServlet_Request.User;
    	}    		
		return BLServlet_Request.Unknown;
    }

    
    static String requestAsString(final BLServlet_Request _request) {
    	switch (_request) {
    		case User:
    			return "User";
    		case Unknown:
    			return "Unknown";
    	}
		return "Unknown";
    }
        	
	
}

package BL;

import java.io.IOException;

import javax.json.Json;
import javax.json.stream.JsonGenerator;
import javax.servlet.http.HttpServletResponse;

public class BLUser {
	
	private String Id = "";
	private String Surname = "";

	public BLUser(String s_Id) {
		Id = s_Id;
		if (s_Id.equals("1")) {
			Surname = "Doe";
		}
	}
	
	public void toJson(HttpServletResponse response) throws IOException {
		JsonGenerator _JsonGenerator = Json.createGenerator(response.getWriter());
		
		_JsonGenerator
			.writeStartObject()
				.write("id", Id)
				.write("surname", Surname)
			.writeEnd();
		_JsonGenerator.close();
	}
}

package BL;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BLRequestUser {

	public BLRequestUser() {
	}
	
	public int handle(HttpServletRequest request, HttpServletResponse response) throws IOException {
		String s_UserId = request.getParameter("id");
		if (s_UserId == null) {
			response.setStatus(400);
		}
		else {
			response.setStatus(200);
			response.setContentType("application/json");
			BLUser _BLUser = new BLUser(s_UserId);
			_BLUser.toJson(response);
		}
		
		return 0;
	}
}

09.01.2015

Պատասխանները:


1

Կարծում եմ, միգուցե այստեղ դուք կարող եք շփոթել մի քանի բան: JSON (Javascript Object Notatation) օբյեկտների սերիականացման միջոց է: Սովորաբար սա կօգտագործվի, երբ դուք ունեք Javascript-ն աշխատում է դիտարկիչում, և դուք զանգահարում եք սերվեր՝ որոշակի տվյալներ ստանալու համար: Տվյալները կհայտնվեն JSON ձևաչափով: (Նիհար ձևաչափ, ավելի թեթև, քան XML)

Երբ ձեր սերվերի կողմից Java-ն ցանկանում է շփվել տվյալների բազայի հետ (Ենթադրելով SQL տվյալների բազա), դուք պետք է օգտագործեք JDBC: (Java DataBase Connectivity): Սա API է:

Նույնականացումը այլ խնդիր է: Դուք կարող եք «կոշտ կոդ» որոշ հավատարմագրեր կատարել Servlet-ում, եթե դա բավարար է, բայց կախված ձեր կարիքներից, ձեզ կարող է անհրաժեշտ լինել օգտվողին հավատարմագրեր պահանջել և օգտագործել դրանք ձեր տվյալների բազա մուտք գործելու համար:

09.01.2015
  • Ես գտել եմ հետևյալը, բայց չգիտեմ, թե ինչպես կիրառել այն, կարո՞ղ եք օգնել ինձ կամ որևէ խորհուրդ տալ: - Հ.Գ. Ես բավականին նոր եմ ծրագրավորման մեջ. տե՛ս հետևյալ հղումը՝ restsql.org/examples/java /example-restsql.properties 12.01.2015

  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..