Dès la conclusion, il semble bon de le faire avec "Dynamic Web Project".
L'autre jour, j'ai nommé un simple projet Servlet + JSP "Projet Tomcat" sous le titre de Créer une application mémo avec Tomcat + JSP + Servlet + MySQL en utilisant Eclipse. Je l'ai créé avec Maven, mais même si je sélectionne [Projet Tomcat] -> [Créer un fichier WAR selon les paramètres du projet] dans le menu contextuel du projet, un fichier qui est un fichier solidifié dans le projet peut être créé C'était un peu subtil, alors j'ai fait des recherches.
Aussi, [Convertir en projet Maven](https://qiita.com/zaki-lknr/items/32690b071abf202281d6#tomcat%E3%83%97%E3%83%AD%E3%82%B8%E3%82% A7% E3% 82% AF% E3% 83% 88% E3% 82% 92maven% E3% 81% AB% E5% A4% 89% E6% 8F% 9B% E3% 81% 99% E3% 82% 8B) En ce qui concerne, le projet Maven a une structure de répertoires recommandée, et la fonction de conversion d'Eclipse ne sera pas effectuée avant cette conversion de structure, donc si vous prévoyez d'utiliser Maven, il semble préférable de le créer en tant que projet Maven depuis le début. ..
En plus de créer un projet Tomcat, il existe un "Projet Web dynamique" et sélectionnez-le.
Si vous souhaitez utiliser Maven pour gérer les bibliothèques et les builds, sélectionnez "Maven Project" au lieu de "Dynamic Web Project" et sélectionnez "maven-archetype-webapp" sans cocher "Skip Archetype Selection". Créez un projet en spécifiant
Ce projet sera un projet Web dynamique pouvant utiliser Maven
Vous pouvez créer un fichier war à partir de [Projet Tomcat] -> [Créer un fichier WAR selon les paramètres du projet] dans le menu contextuel du projet (* Entrez au préalable "Paramètres d'exportation WAR" dans les paramètres Tomcat des propriétés du projet.
Cependant, lors de la création de ce fichier war, les fichiers jar externes (JDBC, etc.) n'étaient pas inclus même si les paramètres d'exportation du chemin de construction étaient définis et, comme je l'ai écrit au début, le répertoire .settings
et d'autres choses inutiles n'étaient pas inclus. Inclus et très subtil. (Si vous déployez sur Tomcat, cela fonctionne)
Si le fichier jar externe est inclus dans la configuration du projet (/ WEB-INF / lib / ***. Jar
, etc.), il sera inclus dans le fichier war (mais dans ce cas, il sera géré en double comme un projet maven). je me sens comme
[Exporter] du menu normal n'est pas possible. (Non inclus dans le projet cible)
Puisqu'il ne s'agit pas d'un projet Tomcat dans Eclipse, il ne peut pas être créé à partir du menu Tomcat (il n'y a pas de menu). Cependant, vous pouvez exporter au format war depuis [Fichier (F)] -> [Exporter (O)] dans le menu normal.
Ici, définissez correctement la destination (destination de sauvegarde du fichier war) en cliquant sur le bouton [Parcourir], puis cliquez sur [Terminer] pour créer le fichier war. Dans le cas du projet spécifié par maven-archetype-webapp de Maven, il exporte vers un fichier war comprenant la bibliothèque externe telle que JDBC introduite par Maven. Dans le cas d'un projet web dynamique, il ne s'agit que d'un fichier dans la configuration du projet comme le fichier war du projet Tomcat (s'il fait référence à un fichier extérieur au projet, il n'est pas inclus dans le fichier war)
[Parce que vous ne pouvez pas utiliser la création de "Servlet" dans le nouveau menu de création, créez-le à partir de la création de "Class"](https://qiita.com/zaki-lknr/items/32690b071abf202281d6#%E3%82%B5%E3%83% BC% E3% 83% 96% E3% 83% AC% E3% 83% 83% E3% 83% 88% E3% 81% AE% E4% BD% 9C% E6% 88% 90)
Créer à partir de "Servlet" dans le nouveau menu
Spécification du mappage d'URL (correspondant à l'annotation source @ WebServlet
)
Vous pouvez également sélectionner la méthode à remplacer lors de la création du fichier source.
Source de sortie
ExampleServlet.java
package jp.example.www;
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;
/**
* Servlet implementation class MainServlet
*/
@WebServlet(description = "Écran principal", urlPatterns = { "/" })
public class MainServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MainServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Idem pour les fichiers .java et pour les projets Web dynamiques.
Dans ce projet, le mappage d'URL et les méta-informations de description sont décrits dans src / main / webapp / WEB-INF / web.xml
, et s'il provient du menu" Servlet "nouvellement créé, il sera mis à jour automatiquement. Le fera.
Recommended Posts