Lab1
This commit is contained in:
parent
e4d075f7f9
commit
6ffff5b55b
71
Front/index.html
Normal file
71
Front/index.html
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>App</title>
|
||||||
|
<script src="/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="/node_modules/bootstrap/dist/css/bootstrap.min.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container-sm p-3">
|
||||||
|
Выберите тип данных
|
||||||
|
<div>
|
||||||
|
<select id="type" class="form-select" >
|
||||||
|
<option value="int">Число</option>
|
||||||
|
<option value="string">Строка</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<form id="ToUpperCase">
|
||||||
|
<h2 class="text-center mb-3">To Upper</h2>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div class="input-group mb-1">
|
||||||
|
<input type="text" id="input1" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
<button type="button" class="btn btn-primary" id="btn_tuc" onclick="TUC()">Применить</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control result" id="tuc_result" readonly>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form id="toLowerCase">
|
||||||
|
<h2 class="text-center mb-3">To Lower</h2>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div class="input-group mb-1">
|
||||||
|
<input type="text" id="input2" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
<button type="button" class="btn btn-primary" id="btn_tlc" onclick="TLC()">Применить</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control result" id="tlc_result" readonly>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form id="charAt">
|
||||||
|
<h2 class="text-center mb-3">Sum</h2>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div class="input-group mb-1">
|
||||||
|
<input type="text" id="input3" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
<input type="text" id="input4" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-primary" onclick="CHAR()"id="btn_chAt">Применить</button>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control result" id="chAt_result" readonly>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form id="substring">
|
||||||
|
<h2 class="text-center mb-3">Sum /2</h2>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div class="input-group mb-1">
|
||||||
|
<input type="text" id="input5" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
<input type="text" id="input6" class="form-control" placeholder="Введите строчку" aria-label="Your String" name="value" autocomplete="off">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-primary" onclick="SUB()"id="btn_sub">Применить </button>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control result" id="sub_result" readonly>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script src="index.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
48
Front/index.js
Normal file
48
Front/index.js
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
let num1 = document.getElementById("input1")
|
||||||
|
let num2 = document.getElementById("input2")
|
||||||
|
let num3 = document.getElementById("input3")
|
||||||
|
let num4 = document.getElementById("input4")
|
||||||
|
let num5 = document.getElementById("input5")
|
||||||
|
let num6 = document.getElementById("input6")
|
||||||
|
let tucrez = document.getElementById("tuc_result")
|
||||||
|
let tlcrez = document.getElementById("tlc_result")
|
||||||
|
let chAtrez = document.getElementById("chAt_result")
|
||||||
|
let subrez = document.getElementById("sub_result")
|
||||||
|
let typeInput = document.getElementById("type");
|
||||||
|
|
||||||
|
function TUC(){
|
||||||
|
let val1 = num1.value
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/toUpperCase/${val1}`)
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(data =>{tucrez.value=data});
|
||||||
|
}
|
||||||
|
|
||||||
|
function TLC(){
|
||||||
|
let val1 = num2.value
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/toLowerCase/${val1}`)
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(data =>{tlcrez.value=data});
|
||||||
|
}
|
||||||
|
|
||||||
|
function CHAR(){
|
||||||
|
let val1 = num3.value
|
||||||
|
let val2 = num4.value
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/charAt/${val1}/${val2}`)
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(data =>{chAtrez.value=data});
|
||||||
|
}
|
||||||
|
|
||||||
|
function SUB(){
|
||||||
|
let val1 = num5.value
|
||||||
|
let val2 = num6.value
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/substring/${val1}/${val2}`)
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(data =>{subrez.value=data});
|
||||||
|
}
|
||||||
|
|
41
src/main/java/ru/ulstu/is/sbapp/Controllers.java
Normal file
41
src/main/java/ru/ulstu/is/sbapp/Controllers.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package ru.ulstu.is.sbapp;
|
||||||
|
|
||||||
|
import ru.ulstu.is.sbapp.MethodService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class Controllers {
|
||||||
|
private final MethodService speakerService;
|
||||||
|
|
||||||
|
public Controllers(MethodService speakerService) {
|
||||||
|
this.speakerService = speakerService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/toUpper")
|
||||||
|
public String toUpper(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.toUpper(first, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/toLower")
|
||||||
|
public String toLower(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.toLower(first, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/sum")
|
||||||
|
public String sum(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.sum(first, second, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/sum1")
|
||||||
|
public String sum1(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.sum1(first, second, type);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package ru.ulstu.is.sbapp.Interfaces;
|
||||||
|
|
||||||
|
public interface ITypeInterface<T> {
|
||||||
|
T Method1(T value1);
|
||||||
|
T Method2(T value1);
|
||||||
|
T Method3(T value1, T value2);
|
||||||
|
T Method4(T value1, T value2);
|
||||||
|
}
|
23
src/main/java/ru/ulstu/is/sbapp/Interfaces/IntegerType.java
Normal file
23
src/main/java/ru/ulstu/is/sbapp/Interfaces/IntegerType.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package ru.ulstu.is.sbapp.Interfaces;
|
||||||
|
|
||||||
|
public class IntegerType implements ITypeInterface<Integer> {
|
||||||
|
@Override
|
||||||
|
public Integer Method1(Integer value1) {
|
||||||
|
return value1 + value1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer Method2(Integer value1) {
|
||||||
|
return value1 - value1/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer Method3(Integer value1, Integer value2) {
|
||||||
|
return value1 + value2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer Method4(Integer value1, Integer value2) {
|
||||||
|
return value1/2 + value2/2;
|
||||||
|
}
|
||||||
|
}
|
24
src/main/java/ru/ulstu/is/sbapp/Interfaces/StringType.java
Normal file
24
src/main/java/ru/ulstu/is/sbapp/Interfaces/StringType.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package ru.ulstu.is.sbapp.Interfaces;
|
||||||
|
|
||||||
|
public class StringType implements ITypeInterface<String> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Method1(String value1) {
|
||||||
|
return value1.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Method2(String value1) {
|
||||||
|
return value1.toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Method3(String value1, String value2) {
|
||||||
|
return value1.toLowerCase() + value2.toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Method4(String value1, String value2) {
|
||||||
|
return value1.toUpperCase() + value2.toUpperCase();
|
||||||
|
}
|
||||||
|
}
|
52
src/main/java/ru/ulstu/is/sbapp/MethodService.java
Normal file
52
src/main/java/ru/ulstu/is/sbapp/MethodService.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package ru.ulstu.is.sbapp;
|
||||||
|
|
||||||
|
import ru.ulstu.is.sbapp.Interfaces.ITypeInterface;
|
||||||
|
import ru.ulstu.is.sbapp.Interfaces.StringType;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class MethodService {
|
||||||
|
private final ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
public MethodService(ApplicationContext applicationContext) {
|
||||||
|
this.applicationContext = applicationContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toUpper(Object first, String type) {
|
||||||
|
final ITypeInterface speaker = (ITypeInterface) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof StringType){
|
||||||
|
return String.format("%s", speaker.Method1(first));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Method1(Integer.parseInt(first.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toLower(Object first, String type) {
|
||||||
|
final ITypeInterface speaker = (ITypeInterface) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof StringType){
|
||||||
|
return String.format("%s", speaker.Method2(first));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Method2(Integer.parseInt(first.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String sum(Object first, Object second, String type) {
|
||||||
|
final ITypeInterface speaker = (ITypeInterface) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof StringType){
|
||||||
|
return String.format("%s", speaker.Method3(first,second));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Method3(Integer.parseInt(first.toString()),Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String sum1(Object first, Object second, String type) {
|
||||||
|
final ITypeInterface speaker = (ITypeInterface) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof StringType){
|
||||||
|
return String.format("%s", speaker.Method4(first,second));
|
||||||
|
}else {
|
||||||
|
return String.format("%s", speaker.Method4(Integer.parseInt(first.toString()), Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,12 +2,33 @@ package ru.ulstu.is.sbapp;
|
|||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
@RestController
|
||||||
|
@CrossOrigin
|
||||||
public class SbappApplication {
|
public class SbappApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(SbappApplication.class, args);
|
SpringApplication.run(SbappApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/toUpperCase/{value}")
|
||||||
|
public @ResponseBody String toUpperCase(@PathVariable String value) {
|
||||||
|
return value.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/toLowerCase/{value}")
|
||||||
|
public @ResponseBody String toLowerCase(@PathVariable String value) {
|
||||||
|
return value.toLowerCase();
|
||||||
|
}
|
||||||
|
@GetMapping("/charAt/{v1}/{v2}")
|
||||||
|
public Character charAt(@PathVariable String v1, @PathVariable Integer v2) {
|
||||||
|
Character c = v1.charAt(v2-1);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
@GetMapping("/substring/{v1}/{v2}")
|
||||||
|
public String substring(@PathVariable String v1, @PathVariable Integer v2) {
|
||||||
|
String str = v1.substring(v2);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
14
src/main/java/ru/ulstu/is/sbapp/WebConfiguration.java
Normal file
14
src/main/java/ru/ulstu/is/sbapp/WebConfiguration.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package ru.ulstu.is.sbapp;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.CorsRegistration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class WebConfiguration implements WebMvcConfigurer {
|
||||||
|
@Override
|
||||||
|
public void addCorsMappings(CorsRegistry registry){
|
||||||
|
registry.addMapping("/**").allowedMethods("*");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user