თქვენი პირველი საგაზაფხულო ჩექმის შექმნა - ვებ MVC პროგრამა


ამ სახელმძღვანელოში ჩვენ ვნახავთ თუ როგორ უნდა შექმნათ მარტივი Spring Boot Web MVC პროგრამა. ჩვენ გამოვიყენებთ შემდეგ ინსტრუმენტებს და ტექნოლოგიებს:

  • საგაზაფხულო ჩექმა - 2.1.3. გამოშვება
  • Java 8
  • Maven
  • დაბნელება STS

ჩვენ გამოვიყენებთ JSP- ს, როგორც ჩვენი განაცხადის ხედი.

პაკეტის სტრუქტურა

ქვემოთ მოცემულია Spring MVC ვებ – პროგრამის პროექტის სტრუქტურა:

პროექტის სტრუქტურა

მიმართეთ შემდეგ ბმულს Maven– ის მარტივი საგაზაფხულო ჩატვირთვის პროგრამის შესაქმნელად: Simple Spring Boot პროგრამის შექმნა

მარტივი საგაზაფხულო ჩატვირთვის აპლიკაციის დაყენების შემდეგ, ეს მოქმედებს როგორც ჩონჩხი, რათა შექმნათ ჩვენი პირველი Spring Boot Web MVC პროგრამა, როგორც ნაჩვენებია შემდეგ სექციებში.

პროექტის დამოკიდებულებები

იმისათვის, რომ ჩვენს აპლიკაციაში დაამატოთ Spring web MVC მხარდაჭერა, დაამატეთ შემდეგი დამოკიდებულება pom.xml- ში

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

აქ იხილეთ სრული pom.xml თქვენი მითითებისთვის:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <description>Demo project for Spring Boot</description>
  <properties>
    <java.version>1.8</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- Tomcat for JSP rendering -->
    <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
    </dependency>
    
    <!-- JSTL tag lib -->
    <dependency>
     		<groupId>jstl</groupId>
    	    <artifactId>jstl</artifactId>
     		<version>1.2</version>
     		<scope>provided</scope>
 		</dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

განაცხადის მთავარი კლასი

ძირითადი კლასი გამოიყენება Spring Boot MVC ვებ პროგრამის ჩატვირთვისას. აქ მოცემულია მარტივი აპლიკაციის კლასი, რომელიც გამოიყენება ამ ნიმუშის პროექტისთვის:

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SampleApp{
  public static void main(String[] args) {
    SpringApplication.run(SampleApp.class, args);
  }
}

კონტროლერის კლასი

კონტროლერის კლასი გამოიყენება ვებ – მოთხოვნების სამართავად. აქ მოცემულია კონტროლერის ნიმუში ამ პროექტის მიზნებისათვის.

განაცხადში თხოვნის გაგზავნისას მონაწილეობს 4 ღონისძიება:

  • HTTP მოთხოვნის მიღების შემდეგ, DispatcherServlet კონსულტაციებს HandlerMapping შესაბამისს რომ დაურეკოს Controller.
  • ის Controller იღებს თხოვნას და ურეკავს მომსახურების შესაბამის მეთოდებს, გამოყენებული GET ან POST მეთოდის საფუძველზე. მომსახურების მეთოდი დაადგენს მოდელის მონაცემებს განსაზღვრული ბიზნეს ლოგიკის საფუძველზე და დააბრუნებს ხედვის სახელს DispatcherServlet.
  • ის DispatcherServlet მიიღებს დახმარებას ViewResolver მოთხოვნისთვის განსაზღვრული ხედვის (JSP გვერდი) აღსადგენად.
  • ხედის საბოლოო დასრულებისთანავე DispatcherServlet მოდელის მონაცემებს გადასცემს ხედს (JSP გვერდი), რომელიც საბოლოოდ გადმოცემულია ბრაუზერის მიერ.

მაგალითად, კოდის მითითება პროექტში გამოყენებულ კონტროლერში:

package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloWebController {
  @RequestMapping("/")
  public String hello() {
    return "login";
  }
  /*
   * Accepts the request param named 'name" and passes it to the next view i.e.,
   * welcome.jsp
   */
  @PostMapping("/welcome")
  public String welcome(@RequestParam("name") String name, Model model) {
    model.addAttribute("name", name); // Setting the model data in the view
    return "welcome"; // Returns the view name to be rendered by the browser, i.e., welcome.jsp
  }
}

სტატიკური რესურსები

ყველა სტატიკური შინაარსი, როგორიცაა CSS, JS და პროგრამასთან დაკავშირებული სურათები ინახება აქ /static საქაღალდე classpath– ის რესურსებში (ჩვეულებრივ classpath– ის ადგილმდებარეობაა: src/main/resources)

ამ მაგალითში, ჩვენ ყველა JavaScript ფაილს ჩავსვამთ /static/js საქაღალდე.

ყველა CSS (სტილის ფურცლები) მოთავსებულია ქვეშ /static/css საქაღალდე.

//JS function to validate whether user entered the Name or not
function validate() {
  var name = document.getElementById("name").value;
  if (name == '') {
    alert('Please enter a valid name.');
    return false;
  } else {
    return true;
  }
}

აქ მოცემულია CSS ფაილი, რომელიც გამოიყენება ამ პროექტში:

/*Style for User Form*/
.form {
  background-color: #2adef6;
  width: 400px;
  height: 100px;
  border-radius: 15px;
  padding: 20px;
}
/*Style for Table column*/
td {
  padding-top:20px;
  padding-bottom:20px;
  padding-right:20px;   
}

პროგრამა

შექმნა application.properties ფაილი ქვეშ src/main/resources საქაღალდე და დაამატეთ შემდეგი თვისებები:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
# Path pattern used for static resources.
spring.mvc.static-path-pattern=/resources/**  

Შენიშვნა - spring.mvc.static-path-pattern=/resources/** იქნება რუკაზე classpath:/static/css/style.css to /resources/css/style.css. ანალოგიურად, classpath:/static/js/int.js  იქნება აღბეჭდილი /resources/js/app.js.

შეგიძლიათ გამოიყენოთ ეს სტატიკური რესურსები jsp- ში შემდეგნაირად.

<link rel="stylesheet" href="/ka/resources/css/style.css">
<script type="text/javascript" src="/resources/js/app.js"></script>

JSP ნახვები

შექმნა login.jsp და welcome.jsp  ფაილი ქვეშ src / main / webapp / WEB-INF / jsp საქაღალდე, როგორც ნაჩვენებია პროექტის სტრუქტურაში.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<!-- Static content -->
<link rel="stylesheet" href="/ka/resources/css/style.css">
<script type="text/javascript" src="/resources/js/int.js"></script>
<title>Spring Boot Web MVC Application</title>
</head>
<body>
  <h1>A sample Spring Boot - MVC web application</h1>
  <hr>
  <div class="form">
    <form action="welcome" method="post" onsubmit="return validate()">
      <table>
        <tr>
          <td>Please specify Your name</td>
          <td><input id="name" name="name"></td>
    </tr>
        <tr>
        <td></td>
        <td><input type="submit" value="Submit"></td>
        <td></td>
        </tr>
      </table>
    </form>
  </div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring Boot</title>
</head>
<body>
  <h1>Spring Boot - MVC web application example</h1>
  <hr>
  <h2>Welcome back, ${name}</h2>
</body>
</html>

განაცხადის გაშვება

გაუშვით SampleApp.java კლასი, როგორც Java პროგრამა, ანუ გადადით Run → Run as → Java Application

შედეგი უნდა ნახოთ შემდეგნაირად:

ახლა ბრაუზერში შეიყვანეთ შემდეგი URL: https: // localhost: 8080 /

ახლა, შეიყვანეთ თქვენი სახელი და დააჭირეთ გაგზავნას, თქვენ გამოჩნდება შემდეგი მისასალმებელი გვერდი

დასკვნა

ამ სახელმძღვანელოში ჩვენ ვნახეთ, თუ როგორ უნდა შექმნათ მარტივი Spring Boot MVC ვებ პროგრამა, Maven build ინსტრუმენტისა და JSP- ის გამოყენებით.

ლიტერატურა

https://spring.io/guides/gs/serving-web-content/