[RUBY] Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP

Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP

Rails Java Servlet + JSP
Model XXX.rb XXX.java
View XXX.erb XXX.jsp
Controller XXXController.rb XXXServlet.java
routage routes.Spécifié par rb XXXServlet.Spécifié par l'annotation java

Comment spécifier le routage

Rails Spécifié dans routes.rb

routes.rb


Rails.application.routes.draw do
 get '/sample' => 'Nom du contrôleur#Nom de l'action' 
 post '/sample' => 'Nom du contrôleur#Nom de l'action' 
end 

Java Servlet + JSP Spécifié dans l'annotation de XXXServlet.java

XXXSerblet.java


package src;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
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;


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


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		RequestDispatcher dispatcher = request.getRequestDispatcher("Fichier de destination de la transition");
		dispatcher.forward(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");

		RequestDispatcher dispatcher = request.getRequestDispatcher("Fichier de destination de la transition");
		dispatcher.forward(request, response);

	}

}

Développement d'applications WEB avec Java Servlet + JSP

Exemple: fonction de connexion / déconnexion

Sommaire スクリーンショット 2019-11-17 13.41.34.png

Page de connexion スクリーンショット 2019-11-17 13.42.12.png

Page d'accueil スクリーンショット 2019-11-17 13.42.30.png

Environnement de développement

article valeur Remarques
PC MacBook Air
OS MacOS Catalina
Langue Java * Utilisez Java EE
IDE Eclipse ※Eclipse 2019_09《Pléiades All in One Eclipse Télécharger》Télécharger à partir de

Exemple de code

Modèle pour conserver les informations utilisateur

User.java


package model;
import java.io.Serializable;

public class User implements Serializable {
	private String name;
	private String password;

	public User() {};

	public User(String name,String password){
		this.name = name;
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public String getPassword() {
		return password;
	}
}

Classe qui traite les informations de connexion

LoginLogic.java


package model;

public class LoginLogic {
	public boolean execute(User user) {
		if(user.getPassword().equals("1234")){
			return true;
		}
		return false;
	}
}

Contrôleur pour gérer la connexion

Login.java


package src;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
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;

import model.LoginLogic;
import model.User;



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


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/login.jsp");
		dispatcher.forward(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");

		String userName = request.getParameter("name");
		String password = request.getParameter("password");
		User user = new User(userName,password);
		LoginLogic loginLogic = new LoginLogic();

		boolean isLogin = loginLogic.execute(user);

		if(isLogin==true) {
			HttpSession session = request.getSession();
			session.setAttribute("loginUser",user);
			response.sendRedirect("/SampleApp/Main");
		} else {
			response.sendRedirect("/SampleApp/Login");
		}
	}
}

Contrôleur pour gérer la déconnexion

Logout.java


package src;

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;

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

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		session.invalidate();
		response.sendRedirect("/SampleApp/Login");
	}
}

Afficher pour afficher ** Page INDEX **

index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>INDEX PAGE | SAMPLE APP</title>
</head>
<body>
<h1>SAMPLE APP</h1>
<h2>INDEX PAGE</h2>
<a href="/SampleApp/Login">to LOGIN PAGE</a>
</body>
</html>

Afficher pour afficher ** Page de CONNEXION **

login.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>LOGIN FORM | SAMPLE APP</title>
</head>
<body>
<h1>SAMPLE APP</h1>
<h2>LOGIN FORM</h2>
<form action="/SampleApp/Login" method="post">
<p>Name:</p>
<input type="text" name="name">
<p>PassWord:</p>
<input type="password" name="password"><br>
<input type="submit" value="submit"><br>
<br>
</form>
<br>
<a href="/SampleApp/">to INDEX PAGE</a>
</body>
</html>

Afficher pour afficher ** Page PRINCIPALE **

main.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model.User" %>
<%
User loginUser = (User)session.getAttribute("loginUser");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><%= loginUser.getName() %> | SAMPLE APP</title>
</head>
<body>
<h1>SAMPLE APP</h1>
<p>Hello,<%= loginUser.getName() %>!</p>
<h2>Articles posted by <%= loginUser.getName() %></h2>
<a href="/SampleApp/Logout">to LOG OUT</a>
</body>
</html>

Matériel de référence

Recommended Posts

Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP
À peu près le flux de développement d'applications Web avec Rails.
Mémo de développement d'applications Web avec MVN, Tomcat, JSP / Servlet avec VScode
Rôle de JSP dans les applications Web [Java]
[Probablement le plus simple] Développement d'applications WEB avec Apache Tomcat + Java Servlet
Hello World avec Java Servlet et JSP (démarrage facile du serveur Web avec Maven + Jetty)
Serveur Web et serveur d'applications Rails
Construction d'environnement de développement d'applications Web Java avec VS Code (struts2)
Jusqu'à ce que vous créiez une application Web avec Servlet / JSP (Partie 1)
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
Démarrez le développement d'applications Web avec Spring Boot
[Java / Swift] Comparaison de l'interface Java et du protocole Swift
Création d'un environnement de développement pour les applications Web Java avec Docker pour Mac Part1
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
[Java / Eclipse / Servlet / JSP / PostgreSQL] Framework d'application WEB avec fonctions de publication / sauvegarde / édition / mise à jour / suppression de données
Créez un environnement de développement d'applications Web qui utilise Java, MySQL et Redis avec Docker CE pour Windows
Création d'applications Web de base Servlet / JSP (fonction de connexion)
Création d'applications Web de base Servlet / JSP (écran de publication)
Ceci et celui de la dérivation conditionnelle du développement des rails
Création d'applications Web de base Servlet / JSP (fonction de déconnexion)
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Résumé du comportement de ToString avec les annotations Java et Groovy
La comparaison d'énumération est ==, et equals est bonne [Java]
Les utilisateurs Java expérimentés se lancent dans le développement d'applications Android
[Java] Comparaison des chaînes de caractères et && et ||
[Tutoriel] Télécharger Eclipse → Lancer l'application Web avec Java (Pléiades)
[Rails] Développement avec MySQL
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
[Développement] Comparaison du framework Java
Créez une application JAVA WEB et essayez OMC APM
Comparaison équivalente de la classe wrapper Java et du type primitif
[Java] Développement avec plusieurs fichiers en utilisant package et import
Histoire de créer une application de gestion de tâches avec Swing, Java
Construction d'environnement de développement d'applications Web en Java (pour les personnes inexpérimentées)
Agrégation de fenêtres de données de capteurs avec Apache Flink et Java 8
[Java] Méthode de comparaison de chaînes de caractères et méthode de comparaison utilisant des expressions régulières
Kotlin post- et pré-incrémentation et surcharge des opérateurs (comparaison avec C, Java, C ++)
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Java: démarrez WAS avec Docker et déployez votre propre application
Développement piloté par domaine avec Java et Spring Boot-Layer et division de modules
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
[Java] Compréhension débutante de Servlet-②
[Java] Compréhension débutante de Servlet-①
Résumé de l'article sur le développement d'applications Web
Dessin d'une vue Servlet / JSP Java
Premiers pas avec JSP et servlet
Application Web construite avec docker (1)
Avantages et inconvénients de Java
Parmi les trois serveurs Web embarqués Java, Tomcat, Jetty et Undertow, lequel fonctionnait sur GraalVM?
Développement d'applications Web Spring5 MVC avec construction de l'environnement de code Visual Studio (installation de JDK11 / Maven / Tomcat / Visual Studio Code)
Représentez graphiquement les informations du capteur de Raspberry Pi en Java et vérifiez-les avec un navigateur Web
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Bases du développement Java ~ Comment écrire des programmes (variables et types) ~
Développement personnel passionnant avec Rails Partie 1: Essayez de concevoir des spécifications et une base de données
Comparaison du temps de traitement basé sur awk, la commande shell et Java