[RUBY] Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP

Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP

Rails Java Servlet + JSP
Model XXX.rb XXX.java
View XXX.erb XXX.jsp
Controller XXXController.rb XXXServlet.java
Routing routes.Spezifiziert durch rb XXXServlet.Wird durch Java-Annotation angegeben

So legen Sie das Routing fest

Rails Angegeben in route.rb

routes.rb


Rails.application.routes.draw do
 get '/sample' => 'Controller-Name#Aktionsname' 
 post '/sample' => 'Controller-Name#Aktionsname' 
end 

Java Servlet + JSP Wird in der Anmerkung von XXXServlet.java angegeben

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("Übergangszieldatei");
		dispatcher.forward(request, response);
	}


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

		RequestDispatcher dispatcher = request.getRequestDispatcher("Übergangszieldatei");
		dispatcher.forward(request, response);

	}

}

WEB-Anwendungsentwicklung mit Java Servlet + JSP

Beispiel: Anmelde- / Abmeldefunktion

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

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

Hauptseite スクリーンショット 2019-11-17 13.42.30.png

Entwicklungsumgebung

Artikel Wert Bemerkungen
PC MacBook Air
OS MacOS Catalina
Sprache Java * Verwenden Sie Java EE
IDE Eclipse ※Eclipse 2019_09《Plejaden in einer Finsternis herunterladen》Herunterladen von

Codebeispiel

Modell zur Speicherung von Benutzerinformationen

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;
	}
}

Klasse, die Anmeldeinformationen verarbeitet

LoginLogic.java


package model;

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

Controller für die Anmeldung

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");
		}
	}
}

Controller für die Abmeldung

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");
	}
}

Ansicht zur Anzeige ** INDEX-Seite **

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>

Zur Anzeige anzeigen ** LOGIN-Seite **

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>

Ansicht zur Anzeige ** MAIN Seite **

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>

Referenzmaterial

Recommended Posts

Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP
Etwa der Ablauf der Entwicklung von Webanwendungen mit Rails.
Memo zur Entwicklung von Webanwendungen mit MVN, Tomcat, JSP / Servlet mit VScode
Rolle von JSP in Webanwendungen [Java]
[Wahrscheinlich die einfachste] WEB-Anwendungsentwicklung mit Apache Tomcat + Java Servlet
Hallo Welt mit Java Servlet und JSP (Einfacher Start des Webservers mit Maven + Jetty)
Rails-Webserver und Anwendungsserver
Erstellung einer Java-Webanwendungsentwicklungsumgebung mit VS-Code (struts2)
Bis Sie eine Webanwendung mit Servlet / JSP erstellen (Teil 1)
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
[Java / Swift] Vergleich von Java-Schnittstelle und Swift-Protokoll
Erstellen einer Entwicklungsumgebung für Java-Webanwendungen mit Docker für Mac Teil1
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
[Java / Eclipse / Servlet / JSP / PostgreSQL] Framework der WEB-Anwendung mit Funktionen zum Posten / Speichern / Bearbeiten / Aktualisieren / Löschen von Daten
Erstellen Sie mit Docker CE für Windows eine Webanwendungsentwicklungsumgebung, die Java, MySQL und Redis verwendet
Grundlegende Erstellung von Webanwendungen Servlet / JSP (Anmeldefunktion)
Grundlegende Erstellung von Webanwendungen Servlet / JSP (Buchungsbildschirm)
Dies und das der bedingten Verzweigung der Schienenentwicklung
Grundlegende Erstellung von Webanwendungen Servlet / JSP (Abmeldefunktion)
[Rails] Implementierung der Drag & Drop-Funktion (mit Wirkung)
Zusammenfassung des ToString-Verhaltens mit Java- und Groovy-Annotationen
Der Vergleich von enum ist == und gleich ist gut [Java]
Erfahrene Java-Benutzer beginnen mit der Entwicklung von Android-Apps
[Java] Vergleich von Zeichenketten und && und ||
[Tutorial] Eclipse herunterladen → Webanwendung mit Java ausführen (Plejaden)
[Rails] Entwicklung mit MySQL
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
[Entwicklung] Java Framework Vergleich
Erstellen Sie eine JAVA WEB App und probieren Sie OMC APM aus
Äquivalenter Vergleich von Java-Wrapper-Klasse und primitivem Typ
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Erstellung einer Webanwendungsentwicklungsumgebung in Java (für unerfahrene Personen)
Fensteraggregation von Sensordaten mit Apache Flink und Java 8
[Java] Vergleichsmethode für Zeichenketten und Vergleichsmethode mit regulären Ausdrücken
Kotlin Post- und Pre-Inkrement und Operatorüberladung (Vergleich mit C, Java, C ++)
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit
Domänengesteuerte Entwicklung mit Java und Spring Boot-Layer und Modulabteilung
Ein einfaches CRUD-Beispiel mit Java Servlet / JSP und MySQL
[Java] Anfängerverständnis von Servlet-②
[Java] Anfängerverständnis von Servlet-①
Zusammenfassung des Artikels zur Entwicklung von Webanwendungen
Zeichnen einer Java-Servlet / JSP-Ansicht
Erste Schritte mit JSP & Servlet
Mit Docker erstellte Webanwendung (1)
Vor- und Nachteile von Java
Welcher der drei in Java eingebetteten Webserver Tomcat, Jetty und Undertow arbeitete an GraalVM?
Entwicklung von Spring5 MVC-Webanwendungen mit Visual Studio Code Environment-Konstruktion (Installation von JDK11 / Maven / Tomcat / Visual Studio Code)
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~
Spannende persönliche Entwicklung mit Rails Teil 1: Versuchen Sie, Spezifikationen und DB zu entwerfen
Vergleich der Verarbeitungszeit basierend auf awk, Shell-Befehl und Java