learn/framework

Struts

사겅이 2023. 9. 22. 01:01

출처 : Introduction and Working of Struts Web Framework - GeeksforGeeks

 

Java 웹 애플리케이션을 개발하기 위한 MVC (Model-View-Controller) 아키텍처를 기반으로 하는 웹 프레임워크

자바 웹 애플리케이션의 개발과 유지 보수를 더 쉽게 만들어주며 웹 애플리케이션의 구조화와 확장성을 향상

 

  • Model: 데이터 처리를 담당하는 부분으로 비즈니스 로직
  • View: 사용자에게 정보를 표시하는 부분으로 주로 JSP (JavaServer Pages)를 사용
  • Controller: 사용자 요청을 처리하고 Model과 View 간의 흐름을 제어하는 부분

 

액션(Action) 클래스를 사용하여 클라이언트 요청을 처리하고, 액션 폼(Action Form) 클래스를 통해 사용자 입력을 처리

Struts의 핵심 아이디어는 요청에 따라 액션 클래스가 실행되고 결과를 특정 JSP 페이지에 표시하는 것

 

//Struts 설정 파일 (struts.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="com.example.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>
//액션 클래스 (LoginAction.java)
package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    private String username;
    private String password;

    public String execute() {
        if ("admin".equals(username) && "password".equals(password)) {
            return SUCCESS;
        } else {
            return ERROR;
        }
    }

    // Getter and setter methods for username and password
}
// JSP 페이지 (login.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login</h1>
<form action="login.action" method="post">
        Username: <input type="text" name="username"><br>
        Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
// JSP 페이지 (welcome.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Welcome Page</title>
</head>
<body>
<h1>Welcome, ${username}!</h1>
</body>
</html>

'learn > framework' 카테고리의 다른 글

ORM (Object-Relational Mapping)  (0) 2023.09.22
Spring  (0) 2023.09.22