....
This commit is contained in:
parent
3c392310df
commit
25fcb01d23
40
.gitignore
vendored
Normal file
40
.gitignore
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
HELP.md
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Kotlin ###
|
||||
.kotlin
|
||||
5
Dockerfile
Normal file
5
Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM openjdk:17
|
||||
ARG JAR_FILE=build/libs/lun-0.0.1-SNAPSHOT.jar
|
||||
COPY ${JAR_FILE} app.jar
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["java","-jar","app.jar"]
|
||||
91
build.gradle.kts
Normal file
91
build.gradle.kts
Normal file
@ -0,0 +1,91 @@
|
||||
plugins {
|
||||
kotlin("jvm") version "1.9.25"
|
||||
kotlin("plugin.spring") version "1.9.25"
|
||||
id("org.springframework.boot") version "3.3.4"
|
||||
id("io.spring.dependency-management") version "1.1.6"
|
||||
}
|
||||
|
||||
group = "kr.lunaticbum.back"
|
||||
version = "0.0.1-SNAPSHOT"
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
configurations {
|
||||
compileOnly {
|
||||
extendsFrom(configurations.annotationProcessor.get())
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation ("jakarta.servlet:jakarta.servlet-api") //스프링부트 3.0 이상
|
||||
// implementation ("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api") //스프링부트 3.0 이상
|
||||
// implementation ("org.glassfish.web:jakarta.servlet.jsp.jstl") //스프링부트 3.0 이상
|
||||
implementation ("org.apache.tomcat.embed:tomcat-embed-jasper")
|
||||
implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive")
|
||||
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
|
||||
implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
|
||||
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
||||
compileOnly("org.projectlombok:lombok")
|
||||
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
|
||||
annotationProcessor("org.projectlombok:lombok")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
||||
testImplementation("io.projectreactor:reactor-test")
|
||||
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
freeCompilerArgs.addAll("-Xjsr305=strict")
|
||||
}
|
||||
}
|
||||
tasks.withType<org.gradle.jvm.tasks.Jar>() {
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
exclude("META-INF/BC1024KE.RSA", "META-INF/BC1024KE.SF", "META-INF/BC1024KE.DSA")
|
||||
exclude("META-INF/BC2048KE.RSA", "META-INF/BC2048KE.SF", "META-INF/BC2048KE.DSA")
|
||||
}
|
||||
tasks.withType<Test> {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
|
||||
tasks.jar {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "kr.lunaticbum.back.lun.LunApplicationKt"
|
||||
}
|
||||
configurations["compileClasspath"].forEach { file: File ->
|
||||
from(zipTree(file.absoluteFile))
|
||||
}
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
|
||||
// Otherwise you'll get a "No main manifest attribute" error
|
||||
manifest {
|
||||
attributes["Main-Class"] = "kr.lunaticbum.back.lun.LunApplicationKt"
|
||||
}
|
||||
|
||||
// To avoid the duplicate handling strategy error
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
|
||||
// To add all of the dependencies otherwise a "NoClassDefFoundError" error
|
||||
from(sourceSets.main.get().output)
|
||||
|
||||
dependsOn(configurations.runtimeClasspath)
|
||||
from({
|
||||
configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
1
settings.gradle.kts
Normal file
1
settings.gradle.kts
Normal file
@ -0,0 +1 @@
|
||||
rootProject.name = "lun"
|
||||
39
src/main/kotlin/kr/lunaticbum/back/lun/LunApplication.kt
Normal file
39
src/main/kotlin/kr/lunaticbum/back/lun/LunApplication.kt
Normal file
@ -0,0 +1,39 @@
|
||||
package kr.lunaticbum.back.lun
|
||||
|
||||
import org.springframework.boot.CommandLineRunner
|
||||
import org.springframework.boot.SpringApplication
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||
import org.springframework.boot.runApplication
|
||||
import org.springframework.context.annotation.Bean
|
||||
import java.util.*
|
||||
|
||||
|
||||
@SpringBootApplication
|
||||
class LunApplication
|
||||
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
runApplication<LunApplication>(*args)
|
||||
}
|
||||
//
|
||||
//@SpringBootApplication
|
||||
//class Application {
|
||||
// @Bean
|
||||
// fun commandLineRunner(ctx: ApplicationContext): CommandLineRunner {
|
||||
// return CommandLineRunner { args: Array<String?>? ->
|
||||
// println("Let's inspect the beans provided by Spring Boot:")
|
||||
// val beanNames: Array<String> = ctx.getBeanDefinitionNames()
|
||||
// Arrays.sort(beanNames)
|
||||
// for (beanName in beanNames) {
|
||||
// println(beanName)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// companion object {
|
||||
// @JvmStatic
|
||||
// fun main(args: Array<String>) {
|
||||
// SpringApplication.run(Application::class.java, *args)
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
31
src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt
Normal file
31
src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt
Normal file
@ -0,0 +1,31 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc
|
||||
|
||||
|
||||
@Configuration
|
||||
@EnableWebMvc
|
||||
class AppConfig {
|
||||
// @Bean
|
||||
// fun memberRepository(): MemberRepository {
|
||||
// return MemoryMemberRepository()
|
||||
// }
|
||||
//
|
||||
// @Bean
|
||||
// fun discountPolicy(): DiscountPolicy {
|
||||
// return RateDiscountPolicy()
|
||||
// }
|
||||
//
|
||||
// @Bean
|
||||
// fun memberService(): MemberService {
|
||||
// return MemberServiceImpl(memberRepository())
|
||||
// }
|
||||
//
|
||||
// @Bean
|
||||
// fun orderService(): OrderService {
|
||||
// return OrderServiceImpl(memberRepository(), discountPolicy())
|
||||
// }
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import org.springframework.context.annotation.ComponentScan
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.context.annotation.FilterType
|
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc
|
||||
|
||||
|
||||
@Configuration
|
||||
@EnableWebMvc
|
||||
@ComponentScan(excludeFilters = [ComponentScan.Filter(type = FilterType.ANNOTATION, classes = arrayOf(Configuration::class))])
|
||||
class AutoAppConfig {
|
||||
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import org.springframework.context.annotation.Configuration
|
||||
|
||||
@Configuration
|
||||
class RootAppContext {
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import org.springframework.context.annotation.ComponentScan
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
|
||||
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
|
||||
|
||||
|
||||
// Spring MVC 프로젝트에 관련된 설정을 하는 클래스
|
||||
@Configuration // Controller 어노테이션이 셋팅되어 있는 클래스를 Controller로 등록한다.
|
||||
@EnableWebMvc // 스캔할 패키지를 지정한다.
|
||||
@ComponentScan("kr.lunaticbum.back.lun.controllers")
|
||||
internal class ServletAppContext : WebMvcConfigurer {
|
||||
// Controller의 메서드가 반환하는 jsp의 이름 앞뒤에 경로와 확장자를 붙혀주도록 설정한다.
|
||||
override fun configureViewResolvers(registry: ViewResolverRegistry) {
|
||||
// TODO Auto-generated method stub
|
||||
super.configureViewResolvers(registry)
|
||||
// registry.viewResolver { viewName, locale -> }
|
||||
// registry.jsp("/WEB-INF/views/", ".jsp")
|
||||
}
|
||||
|
||||
// 정적 파일의 경로를 매핑한다.
|
||||
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
|
||||
// TODO Auto-generated method stub
|
||||
super.addResourceHandlers(registry)
|
||||
registry.addResourceHandler("/**").addResourceLocations("/resources/")
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import jakarta.servlet.ServletContext
|
||||
import org.springframework.web.WebApplicationInitializer
|
||||
import org.springframework.web.filter.CharacterEncodingFilter
|
||||
|
||||
|
||||
class SpringConfigClass : WebApplicationInitializer {
|
||||
|
||||
override fun onStartup(servletContext: ServletContext) {
|
||||
val filter = servletContext.addFilter("encodingFilter", CharacterEncodingFilter::class.java)
|
||||
filter.setInitParameter("encoding", "UTF-8")
|
||||
filter.addMappingForServletNames(null, false, "dispatcher")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
33
src/main/kotlin/kr/lunaticbum/back/lun/configs/WebConfig.kt
Normal file
33
src/main/kotlin/kr/lunaticbum/back/lun/configs/WebConfig.kt
Normal file
@ -0,0 +1,33 @@
|
||||
package kr.lunaticbum.back.lun.configs
|
||||
|
||||
import jakarta.servlet.ServletContext
|
||||
import jakarta.servlet.ServletException
|
||||
import org.springframework.web.WebApplicationInitializer
|
||||
import org.springframework.web.context.ContextLoaderListener
|
||||
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext
|
||||
import org.springframework.web.servlet.DispatcherServlet
|
||||
|
||||
|
||||
class WebConfig : WebApplicationInitializer {
|
||||
@Throws(ServletException::class)
|
||||
override fun onStartup(servletContext: ServletContext) {
|
||||
// Spring MVC 프로젝트 설정을 위해 작성하는 클래스의 객체를 생성한다.
|
||||
val servletAppContext = AnnotationConfigWebApplicationContext()
|
||||
servletAppContext.register(ServletAppContext::class.java)
|
||||
|
||||
// 요청 발생 시 요청을 처리하는 서블릿을 DispatcherServlet으로 설정해준다.
|
||||
val dispatcherServlet = DispatcherServlet(servletAppContext)
|
||||
val servlet = servletContext.addServlet("dispatcher", dispatcherServlet)
|
||||
|
||||
// 부가 설정
|
||||
servlet.setLoadOnStartup(1)
|
||||
servlet.addMapping("/")
|
||||
|
||||
// Bean을 정의하는 클래스를 지정한다.
|
||||
val rootAppContext = AnnotationConfigWebApplicationContext()
|
||||
rootAppContext.register(RootAppContext::class.java)
|
||||
|
||||
val listener = ContextLoaderListener(rootAppContext)
|
||||
servletContext.addListener(listener)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package kr.lunaticbum.back.lun.controllers
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.ResponseBody
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
|
||||
@RestController
|
||||
@RequestMapping("tlbt")
|
||||
class Telegram {
|
||||
@ResponseBody
|
||||
@GetMapping("/hello")
|
||||
fun hello(): String {
|
||||
return "hello1212"
|
||||
}
|
||||
}
|
||||
37
src/main/kotlin/kr/lunaticbum/back/lun/controllers/User.kt
Normal file
37
src/main/kotlin/kr/lunaticbum/back/lun/controllers/User.kt
Normal file
@ -0,0 +1,37 @@
|
||||
package kr.lunaticbum.back.lun.controllers
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest
|
||||
import org.springframework.web.bind.annotation.*
|
||||
import org.springframework.web.servlet.ModelAndView
|
||||
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
class User(private val viewResolver: ContentNegotiatingViewResolver) {
|
||||
|
||||
@GetMapping("join")
|
||||
fun hello(httpServletRequest: HttpServletRequest): ModelAndView {
|
||||
println("onJoin")
|
||||
val vm = ModelAndView("join")
|
||||
vm.modelMap.put("ddd","asdas")
|
||||
println("${vm.toString()}")
|
||||
return vm
|
||||
}
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@PostMapping("joinUser.api")
|
||||
fun joinUser(httpServletRequest: HttpServletRequest, @RequestBody jsonString: String) : String {
|
||||
println("${httpServletRequest.requestURI}")
|
||||
val reqString = jsonString
|
||||
println(reqString)
|
||||
return "1234"
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@GetMapping("test/{path}")
|
||||
fun test(@PathVariable path : String): String {
|
||||
println("path >>> $path")
|
||||
return "ok"
|
||||
}
|
||||
}
|
||||
66
src/main/kotlin/kr/lunaticbum/back/lun/utils/Logger.kt
Normal file
66
src/main/kotlin/kr/lunaticbum/back/lun/utils/Logger.kt
Normal file
@ -0,0 +1,66 @@
|
||||
package kr.lunaticbum.back.lun.utils
|
||||
|
||||
import jakarta.annotation.PostConstruct
|
||||
import jakarta.annotation.PreDestroy
|
||||
import jakarta.servlet.http.HttpServletRequest
|
||||
import lombok.RequiredArgsConstructor
|
||||
import org.springframework.context.annotation.Scope
|
||||
import org.springframework.context.annotation.ScopedProxyMode
|
||||
import org.springframework.stereotype.Component
|
||||
import org.springframework.stereotype.Controller
|
||||
import org.springframework.stereotype.Service
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.ResponseBody
|
||||
import java.util.*
|
||||
|
||||
|
||||
@Component
|
||||
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
|
||||
class Logger {
|
||||
private var uuid: String? = null
|
||||
private var requestURL: String? = null
|
||||
fun setRequestURL(requestURL: String?) {
|
||||
this.requestURL = requestURL
|
||||
}
|
||||
|
||||
fun log(message: String) {
|
||||
println("[$uuid] [$requestURL] $message")
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
fun init() {
|
||||
uuid = UUID.randomUUID().toString()
|
||||
println("[$uuid] request scope bean create:$this")
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
fun close() {
|
||||
println("[$uuid] request scope bean close:$this")
|
||||
}
|
||||
}
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
class LogService {
|
||||
private val myLogger: Logger? = null
|
||||
fun logic(id: String) {
|
||||
myLogger?.log("service id = $id")
|
||||
}
|
||||
}
|
||||
|
||||
@Controller
|
||||
@RequiredArgsConstructor
|
||||
class LogController {
|
||||
private val logService: LogService? = null
|
||||
private val myLogger: Logger? = null
|
||||
|
||||
@RequestMapping("log-demo")
|
||||
@ResponseBody
|
||||
fun logDemo(request: HttpServletRequest): String {
|
||||
val requestURL = request.requestURL.toString()
|
||||
myLogger?.setRequestURL(requestURL)
|
||||
myLogger?.log("controller test")
|
||||
logService!!.logic("testId")
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
3
src/main/resources/META-INF/MANIFEST.MF
Normal file
3
src/main/resources/META-INF/MANIFEST.MF
Normal file
@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: kr.lunaticbum.back.lun.LunApplicationKt
|
||||
|
||||
15
src/main/resources/application.properties
Normal file
15
src/main/resources/application.properties
Normal file
@ -0,0 +1,15 @@
|
||||
spring.application.name=lun
|
||||
spring.datasource.url=jdbc:mariadb://lunaticbum.kr:3307/lun_db
|
||||
#spring.datasource.url=jdbc:mariadb://localhost:3307/lun_db
|
||||
spring.datasource.username=lun_admin
|
||||
spring.datasource.password=VioPup*383
|
||||
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
||||
spring.data.mongodb.host=nas.lunaticbum.kr
|
||||
#spring.data.mongodb.host=localhost
|
||||
spring.data.mongodb.port=27017
|
||||
spring.data.mongodb.database=lun_db
|
||||
#spring.main.web-application-type=SERVLET
|
||||
#logging.level.org.springframework.boot.autoconfigure=ERROR
|
||||
#spring.mvc.view.prefix=/templates
|
||||
#spring.mvc.view.suffix=.html
|
||||
#server.servlet.register-default-servlet=true
|
||||
10
src/main/resources/static/error.html
Normal file
10
src/main/resources/static/error.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
10
src/main/resources/static/index.html
Normal file
10
src/main/resources/static/index.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello</h1>
|
||||
</body>
|
||||
</html>
|
||||
0
src/main/resources/templates/first.html
Normal file
0
src/main/resources/templates/first.html
Normal file
141
src/main/resources/templates/join.html
Normal file
141
src/main/resources/templates/join.html
Normal file
@ -0,0 +1,141 @@
|
||||
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Join</title>
|
||||
<style>
|
||||
table {
|
||||
width: 280px;
|
||||
height: 550px;
|
||||
margin: auto;
|
||||
|
||||
}
|
||||
.email {
|
||||
width: 127px;
|
||||
height: 32px;
|
||||
font-size: 15px;
|
||||
border: 0;
|
||||
border-color: lightgray;
|
||||
border-radius: 15px;
|
||||
outline: none;
|
||||
padding-left: 10px;
|
||||
background-color: rgb(233,233,233);
|
||||
}
|
||||
.text {
|
||||
width: 250px;
|
||||
height: 32px;
|
||||
font-size: 15px;
|
||||
border: 0;
|
||||
border-radius: 15px;
|
||||
outline: none;
|
||||
padding-left: 10px;
|
||||
background-color: rgb(233,233,233);
|
||||
}
|
||||
select {
|
||||
width: 100px;
|
||||
height: 32px;
|
||||
font-size: 15px;
|
||||
border: 1px;
|
||||
border-color: lightgray;
|
||||
border-radius: 15px;
|
||||
outline: none;
|
||||
padding-left: 10px;
|
||||
}
|
||||
.btn {
|
||||
width: 262px;
|
||||
height: 32px;
|
||||
font-size: 15px;
|
||||
border: 0;
|
||||
border-radius: 15px;
|
||||
outline: none;
|
||||
padding-left: 10px;
|
||||
background-color: rgb(164, 199, 255);
|
||||
}
|
||||
.btn:active {
|
||||
width: 262px;
|
||||
height: 32px;
|
||||
font-size: 15px;
|
||||
border: 0;
|
||||
border-radius: 15px;
|
||||
outline: none;
|
||||
padding-left: 10px;
|
||||
background-color: rgb(61, 135, 255);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
function userJoin() {
|
||||
var httpRequest;
|
||||
var user_id = document.getElementById("user_id").value;
|
||||
var user_pw = document.getElementById("user_pw").value;
|
||||
var user_pw_check = document.getElementById("user_pw_check").value;
|
||||
var user_email = document.getElementById("user_email").value;
|
||||
var user_birth = document.getElementById("user_birth").value;
|
||||
var user_name = document.getElementById("user_name").value;
|
||||
|
||||
/* 통신에 사용 될 XMLHttpRequest 객체 정의 */
|
||||
httpRequest = new XMLHttpRequest();
|
||||
/* httpRequest의 readyState가 변화했을때 함수 실행 */
|
||||
httpRequest.onreadystatechange = () => {
|
||||
/* readyState가 Done이고 응답 값이 200일 때, 받아온 response로 name과 age를 그려줌 */
|
||||
if (httpRequest.readyState === XMLHttpRequest.DONE) {
|
||||
if (httpRequest.status === 200) {
|
||||
var result = httpRequest.response;
|
||||
document.getElementById("name").innerText = result.name;
|
||||
document.getElementById("age").innerText = result.age;
|
||||
} else {
|
||||
alert('Request Error!');
|
||||
}
|
||||
}
|
||||
};
|
||||
/* Get 방식으로 name 파라미터와 함께 요청 */
|
||||
httpRequest.open('POST', 'joinUser.api', true);
|
||||
httpRequest.setRequestHeader("Content-Type", "application/json");
|
||||
|
||||
let data = {
|
||||
'user_id': user_id,
|
||||
'user_pw': user_pw,
|
||||
'user_pw_check': user_pw_check,
|
||||
'user_email': user_email,
|
||||
'user_birth': user_birth,
|
||||
'user_name': user_name
|
||||
}
|
||||
|
||||
httpRequest.send(JSON.stringify(data));
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form >
|
||||
<table>
|
||||
<tr>
|
||||
<td><h2>회원가입</h2></td>
|
||||
</tr>
|
||||
<tr><td>아이디</td></tr>
|
||||
<tr><td><input id="user_id" type="text" class="text"></td></tr>
|
||||
<tr><td>비밀번호</td></tr>
|
||||
<tr><td><input id="user_pw" type="password" class="text"></td></tr>
|
||||
<tr><td>비밀번호 확인</td></tr>
|
||||
<tr><td><input id="user_pw_check" type="password" class="text"></td></tr>
|
||||
<tr><td>이름</td></tr>
|
||||
<tr><td><input id="user_name" type="text" class="text"></td></tr>
|
||||
<tr><td>생년월일</td></tr>
|
||||
<tr><td><input id="user_birth" type="date" class="text"></td></tr>
|
||||
<tr><td>이메일</td></tr>
|
||||
<tr>
|
||||
<td><input id="user_email" type="text" class="email"> @
|
||||
<select>
|
||||
<option>naver.com</option>
|
||||
<option>gmail.com</option>
|
||||
<option>daum.net</option>
|
||||
<option>nate.com</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><input type="submit" value="가입하기" class="btn" onclick="userJoin()"></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,13 @@
|
||||
package kr.lunaticbum.back.lun
|
||||
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
|
||||
@SpringBootTest
|
||||
class LunApplicationTests {
|
||||
|
||||
@Test
|
||||
fun contextLoads() {
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user