개요: 이 기사에서는 웹 기반 관리 정보 시스템 개발을 위한 구현 프레임워크를 소개합니다. JSP/Servlet 기술을 활용하고 이를 MVC 디자인 패턴과 결합하면 개발 프로세스가 더욱 유연해지고 유지 관리가 쉬워집니다.
키워드: 경영정보시스템, JSP, 서블릿, MVC 디자인 패턴, JDBC
1. 서론
경영정보시스템(MIS)은 정보를 수집, 전송, 저장, 처리 및 이용할 수 있는 사람과 컴퓨터로 구성된 시스템이다. 과학기술의 발전과 정보의 확산으로 인해 기업의 정보화는 기업이 경쟁에서 탁월한 위치를 유지하기 위한 효과적인 수단 중 하나가 되었습니다. MIS는 정보와 데이터를 적시에 종합적으로 제공하고 통계 작업을 단순화하며 관리 수준에 따라 다양한 보고서를 제공할 수 있을 뿐만 아니라 과거 데이터를 기반으로 미래 상황을 예측할 수도 있습니다. 따라서 개발 효율성과 운영 효율성을 모두 고려하고 분산 이벤트 처리 기능을 만족하는 경영정보시스템을 개발하려면 어떤 방법을 사용하는 것이 특히 중요하다. 이 기사에서는 JSP/Servlet을 사용하여 3계층 관리 정보 시스템을 구축하는 방법을 설명합니다.
2. 시스템의 3계층 아키텍처
그림 1은 시스템의 3계층 아키텍처를 보여줍니다.
그림 1 Java 기술을 기반으로 하는 웹 애플리케이션 아키텍처
전체 관리 정보 시스템은 브라우저/웹/데이터베이스의 3계층 아키텍처를 채택합니다. 웹 서버는 요청을 수락하고 애플리케이션 서버를 통해 Java 서버 측 애플릿 서블릿을 실행하고 그 출력을 반환함으로써 정보 자원과 클라이언트의 상호 작용을 실현합니다. 데이터베이스 서버는 경영정보시스템에서 사용되는 각종 데이터를 저장하는데 사용되며, 해당 데이터는 데이터베이스 관리 프로그램을 통해 직접 입력된다. 시스템 클라이언트에는 브라우저만 필요합니다. 관련 담당자는 브라우저를 통해 데이터 조회, 추가, 수정, 삭제, 정보 관리 등을 할 수 있습니다.
3. 시스템 디자인 패턴
디자인 패턴은 객체 지향 프로그래머가 프로그래밍 문제를 해결하기 위해 사용하는 형식적인 표현입니다. 현재 브라우저/서버 구조를 갖는 대부분의 웹 애플리케이션에서는 브라우저가 HTML이나 JSP 형태로 사용자와 직접 상호작용하고 사용자 요청에 응답한다. 직관적이긴 하지만 대부분의 경영정보시스템에서 운용하는 데이터의 양은 엄청나다. 코드가 늘어나면 JSP 페이지가 비대해지고 웹 서버에 과부하가 걸리게 된다. 따라서 중간 계층에서는 모델 뷰 컨트롤러(MVC.Model-View-Controller) 기반의 디자인 패턴을 채택합니다. Model 계층은 비즈니스 로직을 구현하는 데 사용되고, View 계층은 사용자 인터페이스를 표시하는 데 사용되며, Controller 계층은 주로 View 계층과 Model 계층 간의 제어 관계를 담당합니다. 특정 구현에서 Servlet은 애플리케이션의 컨트롤러로 사용되고 JSP 문서는 뷰로 사용되며 JavaBeans는 모델을 표현하는 데 사용됩니다. 모든 요청은 컨트롤러로서 서블릿으로 전송되며, 서블릿은 요청을 수락하고 요청 정보를 기반으로 적절한 JSP로 디스패치하여 응답합니다. 동시에 Servlet은 JSP 요구 사항에 따라 JavaBeans 인스턴스를 생성하고 이를 JSP 환경에 출력합니다. JSP는 메소드를 직접 호출하거나 UseBean의 사용자 정의 태그를 사용하여 JavaBeans의 데이터를 가져올 수 있습니다. 이 디자인 패턴은 데이터 계층을 프레젠테이션 계층에서 효과적으로 분리하여 개발 작업을 더 쉽고 빠르게 만듭니다. 이 설계 모드에서 다양한 수준 간의 데이터 전송은 그림 2에 나와 있습니다.
그림 2 MVC 디자인 패턴의 데이터 전송 그림
4. 데이터 접근 기술
데이터베이스는 경영정보시스템의 핵심 콘텐츠이다. 현재 다양한 웹 및 데이터베이스 인터페이스 기술이 존재하며, 그 중 JDBC는 자바 프로그램이 데이터베이스에 접속하고 접근하기 위한 응용 프로그래밍 인터페이스로, 자바 언어로 작성된 클래스와 인터페이스의 집합으로 구성되며, SQL을 실행하기 위한 자바 API이다. 진술. 본 글에서 소개하는 관리 정보 시스템에서는 데이터 접근에 JSP/Servlet+JDBC 기술이 사용된다. 즉, 클라이언트는 데이터베이스 쿼리 명령을 생성하지 않고 클라이언트의 브라우저는 중간 계층 웹 서버와 연결을 설정한다. URL을 통해. 웹 서버는 주로 로컬 또는 원격 브라우저로부터 HTTP 데이터 요청을 수신하고 중간 계층의 서블릿이 요청을 받은 후 JDBC에서 제공하는 표준 API를 사용하여 데이터베이스에 액세스하고 SQL을 실행하여 해당 작업을 수행합니다. 프로그램의 진술. 그런 다음 서블릿은 쿼리 데이터를 JSP에 전달하고 마지막으로 표준 JSP 페이지를 생성하고 결과를 요청 브라우저에 반환합니다. 이러한 방식으로 클라이언트와 데이터베이스 서버를 분리할 뿐만 아니라 데이터베이스 액세스 효율성도 향상됩니다.
5. 예제
JSP/Servlet을 사용하여 3계층 관리 정보 시스템을 구축하는 방법을 더 잘 설명하기 위해 저자는 상품 우편 주문 관리 정보 시스템을 분석하고 설계하는 예를 들어 보겠습니다. 이 상품 통신 주문 관리 정보 시스템은 Java 언어를 사용하여 서버 측 응용 프로그램을 개발하고 IBM의 Webshpere를 응용 프로그램 서버로 사용하며 데이터베이스 관리 시스템은 SQL Server7.0을 사용하고 데이터베이스 인터페이스 프로그램은 JDBC2 인터페이스를 사용합니다. 전체 시스템은 웹 기반 접근 방식을 사용하여 고객 관리, 직원 관리, 주문 관리, 상품 관리, 아웃바운드 관리, 인바운드 관리 및 기타 비즈니스 처리, 프로세스 제어, 권한 제어, 쿼리 통계 및 통신 주문 비즈니스의 인쇄 기능을 구현합니다. . 주문관리 부분의 쿼리 기능을 상세하게 분석합니다.
5.1 데이터베이스 설계
주문 부분에는 주문 정보 테이블 Db_order가 정의되어야 합니다. 테이블의 필드에는 주문 번호(ddbh), 고객 번호(khbh), 제품 번호(spbh), 제품 단가(spdj)가 포함됩니다. 주문 수량(dgsl), 총 가격(hjzj), 수령 금액(sdje), 수령 날짜(sdrq). 애플리케이션에서 Db_order 테이블을 사용하려면 데이터베이스 연결이 설정되어야 합니다. 이 함수는 sql_data.java에 의해 구현됩니다. 코드의 일부는 다음과 같습니다.
public class sql_data {
String url = "jdbc:odbc:PostOrder"; // 여기에 호스트 이름과 포트 번호를 사용하세요.
String login = "sa" // 여기에 로그인을 사용하십시오.
String 비밀번호 ="zh12345"; // 여기에 비밀번호를 사용하세요.
공용 연결 연결 = null;
공개 성명 st = null;
공개 결과 집합 rs = null;
노력하다
{
Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");
conn =DriverManager.getConnection(url, 사용자, 비밀번호);
} 잡기(예외 e)
{
e.printStackTrace();
}
}
5.2 중간 계층 설계
상품 통신주문 관리 정보 시스템의 개발 과정에서 MVC 설계 패턴의 아이디어를 기반으로 하고 시스템의 실제 상황과 결합하여 분업에 따라 모델 계층을 더욱 세분화했습니다. . 모델 계층은 일반적으로 많은 JavaBeans로 구성됩니다. 이러한 Bean은 시스템에서 수행하는 다양한 역할에 따라 Command Bean, Data Bean 및 View Bean의 세 가지 유형으로 나뉩니다. 그중 Command Bean은 비즈니스 로직을 구현하는 데 사용됩니다. 즉, 객체 인스턴스 처리는 실제 세계에서 추상화된 객체 모델을 설명하고 정의하는 데 사용되며, View Bean은 처리된 객체 인스턴스를 추가로 캡슐화하고 반환하는 데 사용됩니다. .
먼저, Command Beans는 Servlet이 전달한 정보를 얻어서 Data Beans가 정의한 객체 인스턴스에 비즈니스 정보를 캡슐화하고 비즈니스 로직에 따라 정보를 처리합니다. 데이터베이스 액세스 작업을 호출해야 하는 경우 Command Beans는 개체 인스턴스와 해당 제어 정보를 사용하여 데이터베이스 인터페이스 메서드를 통해 데이터베이스 작업을 완료합니다. 데이터베이스 작업이 완료된 후 반환된 레코드 세트는 Data Beans의 객체 인스턴스로 캡슐화되며, 특정 처리 후 인터페이스로 반환해야 하는 정보는 사전 정의된 View Bean으로 캡슐화되어 해당 정보가 View Beans를 통해 반환됩니다. .
다음은 주문을 조회하고 처리하는 OrderGl.java 코드의 일부입니다.
공개 클래스 OrderGl {
…
//주문 쿼리 작업을 완료하기 위해 다음 메서드를 정의합니다.
공개 최종 문자열 currentMultiQuery(
javax.servlet.http.HttpServletRequest 요청,
javax.servlet.http.HttpServletResponse 응답)
com.goods.Exception.GoodsException이 발생합니다.
{
//JSP 페이지에서 해당 쿼리 정보를 가져옵니다.
com.goods.view.OrderView view = getView(요청, 응답);
String ddbh = view.getDdbh(); //주문번호
//SQL문 생성
String sqlQuery = "db_order에서 ddbh,khbh,spbh,spdj,dgsl,hjzj,sdje,sdrq를 선택합니다.";
//쿼리 연산 실행
java.util.Vector 벡터 = 새로운 java.util.Vector();
com.goods.sjk.sql_data per = new com.goods.sjk.sql_data();
노력하다
{
java.sql.ResultSet rs = per.executeQuery(sqlQuery);
동안(rs.next())
{
com.goods.dx.Db_order temp = new com.goods.dx.Db_order();
temp.setDdbh(rs.getString("ddbh"));
temp.setKhbh(rs.getString("khbh"));
temp.setSpbh(rs.getString("spbh"));
temp.setSpdj(rs.getString("spdj"));
temp.setDgsl(rs.getString("dgsl"));
temp.setHjzj(rs.getString("hjzj"));
temp.setSdje(rs.getString("sdje"));
temp.setSdrq(rs.getString("sdrq"));
벡터.addElement(임시);
}
rs.close();
per.close();
} 잡기(Throwable e)
{
e.printStackTrace();
per.close();
cxyw.printErrorToWeb(요청, 응답, e.toString());
e.toString()을 반환합니다.
}
//관련 정보를 인터페이스 view.setVct(벡터)에 반영합니다.
request.setAttribute("view", view);
"1"을 반환합니다.
}
}
5.3 클라이언트 디자인
뷰는 사용자에게 정보를 표시하는 애플리케이션의 일부입니다. 즉, 사용자가 요청한 후 사용자에게 반환되는 웹 페이지입니다. "Query" 버튼을 클릭하면 주문번호를 기준으로 얻은 주문정보 결과 페이지 ordercx.jsp가 표시됩니다. 이는 JSP 페이지에서 다음 구문을 사용하여 수행됩니다.
<jsp:useBean id="view" class="com.goods.view.OrderView"scope="request" />
<jsp:useBean id="temp" class="com.goods.dx.Db_order" 범위="페이지" />
<jsp:useBean>액션은 ID와 범위를 사용하여 기존 객체를 각각 검색한 다음 <%=view.getDdbh()를 전달합니다.
및 <%=temp.getDdbh()%> 관련 데이터를 가져옵니다.
6. 요약
본 논문에서는 JSP/Servlet 기술을 이용하여 웹 기반의 3계층 관리정보시스템을 개발하기 위한 솔루션을 제안한다. 이 솔루션은 프리젠테이션 레이어와 로직 레이어의 분리를 실현하여 시스템의 확장성을 높이는 동시에 관리 정보 시스템 개발을 위한 완벽한 아이디어와 방법을 제공합니다.