Servlet ou um servidor web?

Pessoal, eu estou desenvolvendo uma aplicação android, onde eu preciso gravar e acessar dados através de um servidor.
Fiz um simples exemplo de comunicação entre cliente (Android) e o servidor (Servlet), porém para a aplicação mesmo, eu gostaria de saber o que é mais interessante, utilizar um servlet ou criar um servidor java mesmo? Se por acaso vocês acharem melhor eu utilizar um servlet, qual arquitetura eu deveria utilizar? E se houver algum material interessante que vocês conheçam para criar esta arquitetura eu agradeço. Att, Paulo R.

O que seria servidor web para você?

Se servlet já te bastou, pq não utilizar? O.o

Eu pensei em um servidor web como um servidor remoto que precisa tratar requisições do meu aplicativo android, porém dependendo da requisição a classe principal do servidor deveria encaminhar para outras classes (Classe A, classe B…).
Para a minha aplicação eu só fiz a comunicação. Acesso a banco de dados e outras funcionalidades devem ser implementadas, caso eu faça com servlet ou com o servidor, eu preciso montar uma arquitetura melhor, pois da maneira que está o servidor tem apenas uma classe principal. Não sei se esclareci todos os questionamentos.

ps: Sou iniciante em java.

Quando você fala servidor, você tá querendo dizer comunicação via Socket?

Pq se tu escrever uma servlet, também usa um servidor pra rodar ela. Tua dúvida tá meio confusa.

A comunicação é feita através de JSON. Abaixo segue o código do método doPost, não sei se ajuda muito.

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HashMap<String, Object> hm = new HashMap<String, Object>();
		hm.put("message", "Estah funcionando o JSON");
		if (request.getParameter("var") != null) {
			System.out.println(request.getParameter("var"));
		}

		JSONObject json = JSONObject.fromObject(hm);


		response.setContentType("application/json");

		PrintWriter out = response.getWriter();

		out.println(json);
//		out.flush();
	}

[quote=paulo.roberto]Pessoal, eu estou desenvolvendo uma aplicação android, onde eu preciso gravar e acessar dados através de um servidor.
Fiz um simples exemplo de comunicação entre cliente (Android) e o servidor (Servlet), porém para a aplicação mesmo, eu gostaria de saber o que é mais interessante, utilizar um servlet ou criar um servidor java mesmo? Se por acaso vocês acharem melhor eu utilizar um servlet, qual arquitetura eu deveria utilizar? E se houver algum material interessante que vocês conheçam para criar esta arquitetura eu agradeço. Att, Paulo R.[/quote]

A sua pergunta não faz muito sentido. Um servlet corre dentro de um servidor web. Portanto vc já está usando um servidor web e um servlet ( os dois)
Não é claro qual é a sua dúvida.

Minha dúvida é a seguinte, trabalhando com um Servlet, como eu estruturaria ele para atender diferentes tipos de requisições ( Por exemplo, eu ter vários controllers para que cada um deles seja chamado dependendo da requisição)? Ou se para fazer isso eu deveria criar um projeto em spring MVC por exemplo.

Tecnicamente você pode ter várias servlets atendendo requisições diferentes, ou uma que processa várias requisições e distribui o trabalho entre diversas classes, o que é justamente o que muitos frameworks mvc fazem. No caso do SpringMVC, a grosso modo, ele registra uma servlet (DispatcherServlet) que processa as requisições e delega pros controllers adequados.

A decisão de usar um framework ou não, cabe a você. Se o seu projeto for bem simples e você for iniciante, pode começar com servlets direto. Mas se perceber que está “perdendo” seu tempo fazendo o que um framework mvc já lhe traz pronto, use o framework.

Como aparentemente você ainda não tem muita familiaridade com frameworks e coisas assim, comece com servlets diretamente. Depois você entenderá as coisas de um modo melhor. :wink:

Muito obrigado a todos pela ajuda. Wagner, farei isso que você me disse começando pelos servlets mesmo. Valeu galera.