Order Entry API

Posted at 2010.05.13 09:33 | Posted in Mini Project
http://api.nerv-team.co.kr/oe



Human Resources 에 이어서 Order Entry 입니다.

Struts 1.3.10, Hibernate 3.3.2.GA, JSON taglib 등을 사용했습니다.



Order Entry 스키마 입니다.



'Mini Project' 카테고리의 다른 글

Proftpd Manager  (0) 2012.12.10
게시판 2.0  (5) 2011.07.27
Sudoku  (0) 2011.06.09
간단한 JAVA 실행기(?)  (1) 2011.03.21
Forecast Repository  (8) 2010.11.30
Sales History API  (2) 2010.05.27
Order Entry API  (0) 2010.05.13
Human Resources API  (0) 2010.05.10
게시판 1.0  (1) 2010.03.11
비밀번호 생성기(Generate Password)  (1) 2010.02.10
Weather History API  (2) 2010.01.18

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

*.jsp 접근 막기

Posted at 2009.09.03 09:29 | Posted in Framework/Struts
struts 사용시 *.jsp 접근을 막기 위한 설정입니다.

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="......ID" ...... version="2.5">
    <display-name>many-to-many_mysql</display-name>
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
            ...
    </welcome-file-list>

    <!-- 웹으로 접속한 사용자가 JSP 파일로 직접 접근할 수 없게 한다. -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>PreventViewingJSPs</web-resource-name>
            <description>웹으로 접속한 사용자가 JSP파일로 직접 접근할 수 없도록 한다.</description>
            <url-pattern>*.jsp</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name></role-name>
        </auth-constraint>
    </security-constraint>

</web-app>


'Framework > Struts' 카테고리의 다른 글

*.jsp 접근 막기  (0) 2009.09.03
스트러츠(Struts) 기본 세팅  (6) 2009.06.22
Struts 파일 업로드  (2) 2009.05.05

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

스트러츠(Struts) 기본 세팅

Posted at 2009.06.22 22:10 | Posted in Framework/Struts
이클립스에서 스트러츠를 시작하기 위한 아주아주 기본적인 세팅입니다.

이걸 해야 스트러츠를 시작할 수 있죠!! >,.<

- Eclipse Ganymede 3.4.2
- Apache Tomcat 6.0.18
- Apache Struts 1.3.10
- Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
- 텍스트 인코딩 : 글로벌 시대에 맞게 UTF-8




- File → New → Dynamic Web Project




- 스트러츠 라이브러리를 다운로드받습니다.



- WEB-INF/lib 폴더에 다 때려넣습니다.




- web.xml 을 수정합니다. 주석달린 두 부분(?)을 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">

  <display-name>BaseStruts</display-name>

  <!-- Standard Action Servlet Configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


- WEB-INF 폴더에 struts-config.xml 파일을 만듭니다. (web.xml 파일의 init-param 의 경로와 일치해야함!)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
    <!--  Form Bean Definitions -->
    <form-beans>

    </form-beans>

    <!--  Global Exception Definitions -->
    <global-exceptions>

    </global-exceptions>

    <!-- Global Forward Definitions -->
    <global-forwards>

    </global-forwards>

    <!-- Action Mapping Definitions -->
    <action-mappings>

    </action-mappings>

    <!-- Message Resources Definitions -->
    <!-- Plug Ins Configuration -->

</struts-config>


스트러츠를 사용하기 위한 완전 아무것도 없는 프로젝트를 만들었습니다... 자! 이제 쓰세요 -_-;;




... 뭐 간단한거라도 만들어볼까요?;; 로그인 하는거 만들어봅시다 >,.<

위에서 만들었던 BaseStruts 를 Import 해서 기본 스트러츠를 세팅합시다!


- File → Import : Web → WAR File




- 프로젝트 이름 변경 하시구!




- 소스 줄줄이 작성! (너무 간단한 예제라 다 펼쳐놓기가 부끄럽군요! ㅠ_ㅠ)

뭐.. UML 은 당연히 틀렸겠죠 +_+;

클래스 다이어그램(Class Diagram)


시퀀스 다이어그램(Sequence Diagram) 


struts-config.xml


    <form-beans>
        <form-bean name="JFLogin" type="com.tistory.antop.forms.JFLogin" />
    </form-beans>

    <action-mappings>
        <action path="/JALogin" type="com.tistory.antop.actions.JALogin"
            name="JFLogin" scope="request" validate="true">
            <forward name="result" path="/result.jsp" />
        </action>
    </action-mappings>




실행은 의지를 가진 용자들은 알아서 하실꺼....



2010.01.26 - 한글 파라미터 처리를 위한 플러그인 클래스 추가

'Framework > Struts' 카테고리의 다른 글

*.jsp 접근 막기  (0) 2009.09.03
스트러츠(Struts) 기본 세팅  (6) 2009.06.22
Struts 파일 업로드  (2) 2009.05.05
  1. seo
    web.xml 에 맨 처음에 <!-- data-sources --> 가 빠졌습니다~
    나같은 초보자를 위해서 web.xml 의 순서는 빼먹을순 있어도, 뒤바뀌지 않는 다는 사실을 적어줬었어야지~^-------^ java file 은 안올리고,,, 또 war 파일만 올리죠. 하지만 우린 디컴파일이 가능한 세상에서 살고 있다죠... jsp-> web.xml -> form -> action -> vo ->jsp 이래 이해하믄 되나?? 오빠야한테 배운 이 얕은 스트럿츠 지식하나만 갖고 산다 ㅋㅋㅋ
    아~~ 공부하기 싫어!!!! >_<
  2. seo
    web.xml이 아니라 strut-config.xml 이군아 ㅋㅋ
    • 2009.06.23 08:09 신고 [Edit/Del]
      네넹.
      struts-config.xml 에서 순서가 틀리면

      The content of element type "struts-config" must match "(display-name?,description?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)"

      에러를 감상할 수 있습니다!
  3. 쑤아
    antop ???? 혹시 정용오빠????? 그냥네이버 검색해서 들어왔는데 보다보니 antop이

    눈에띄네요~~~ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Struts 파일 업로드

Posted at 2009.05.05 22:58 | Posted in Framework/Struts

Struts 에서 파일 업로드 하는 법입니다.

왜 올리냐? 앞으로의 Ctrl+C , Ctrl+V 를 위해서 -_-v

jdk 1.6.0_13
tomcat 6.0.18
struts 1.3.10

프로젝트는 struts-blank-1.3.10.war 파일 Import 해서 생성 했고, jsp 에는 struts taglib를 사용했습니다.



form.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>file upload</title>
</head>
<body>

<html:form action="/result" method="post" enctype="multipart/form-data">

subject : <html:text property="subject" /> <br />
file : <html:file property="att" /> <p />
<html:submit value="submit" />

</html:form>

</body>
</html>


struts-config.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

 <form-beans>
  <form-bean name="formFileUpload" type="antop.FormFileUpload" />
 </form-beans>

 <global-exceptions> </global-exceptions>

 <global-forwards> </global-forwards>

 <action-mappings>
  <action path="/result" type="antop.ActionFileUpload"
   name="formFileUpload" input="/form.jsp" scope="request">
   <forward name="result" path="/result.jsp"/>
  </action>

 </action-mappings>

 <message-resources parameter="MessageResources" />

 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  <set-property property="pathnames"
   value="/org/apache/struts/validator/validator-rules.xml,
               /WEB-INF/validation.xml" />
 </plug-in>

</struts-config>


FormFileUpload.java
package antop;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class FormFileUpload extends ActionForm
{
  private static final long serialVersionUID = 1;

  private String subject;
  private FormFile att;

  public String getSubject() {
    return subject;
  }
  public void setSubject(String subject) {
    this.subject = subject;
  }
  public FormFile getAtt() {
    return att;
  }
  public void setAtt(FormFile att) {
    this.att = att;
  }
}


ActionFileUpload.java
package antop;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

public class ActionFileUpload extends Action
{
  @Override
  public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
  
    FormFileUpload f = (FormFileUpload)form;
  
    String subject = f.getSubject();
    FormFile att = f.getAtt();

    if(att != null)
    {
      String realName = "";
      String fileName = att.getFileName();
      String fileContextType = att.getContentType();
      int fileSize = att.getFileSize();
   
      String path = "/upload";  // 업로드할 경로
      String realPath = "";
   
      /*
       * 파일 업로드 시작
      */

      InputStream in = null;
      OutputStream os = null;
   
      try
      {
        // 파일 확장자 구하기
        String ext = att.getFileName();
   
        int last = 0;
        boolean findExt = false;
    
        while((last = ext.indexOf(".")) != -1) {
          findExt = true;
          ext = ext.substring(last+1);
        }
    
        // 파일 이름 중복 방지
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String rndName = sdf.format(new java.util.Date()) + System.currentTimeMillis();
    
        // 실제 저장될 파일 이름
        realName = findExt ? rndName + "." + ext : rndName;
    
        // 실제 저장될 디렉토리 구하기
        ServletContext application = getServlet().getServletContext();
        realPath= application.getRealPath(path);
    
        // 실제로 저장될 파일 풀 경로
        File file = new File(realPath + "/" + realName); 
    
        // 저장하기(복사)
        os = new BufferedOutputStream(new FileOutputStream(file));
        in = att.getInputStream();
    
        int i;
        byte[] buffer = new byte[1024*4];
        while((i=in.read(buffer, 0, 1024*4)) != -1) {
          os.write(buffer, 0, i);
        }
   
      }
      catch(Exception e) {
        e.printStackTrace();
      }
      finally {
        try { if(os != null) os.close(); } catch (IOException ignore) { }
        try { if(in != null) in.close(); } catch (IOException ignore) { }
      }
      /*
       * 파일 업로드 끝
      */
   
        request.setAttribute("realPath", realPath);   // 실제 저장되는 풀경로
        request.setAttribute("realName", realName);   // 실제 저장된 파일 이름
        request.setAttribute("fileName", fileName);   // 업로드 했을때의 파일 이름
        request.setAttribute("fileSize", fileSize);   // 파일 사이즈
        request.setAttribute("fileType", fileContextType); // 파일 종류
      }
  
      request.setAttribute("subject", subject);   // 제목
  
      return mapping.findForward("result");
  }
}


result.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>file upload result</title>
</head>
<body>

subject : <bean:write name="subject"/> <br />
realPath : <bean:write name="realPath"/> <br />
realName : <bean:write name="realName"/> <br />
fileName : <bean:write name="fileName"/> <br />
fileSize : <bean:write name="fileSize"/> <br />
fileType : <bean:write name="fileType"/>

</body>
</html>

'Framework > Struts' 카테고리의 다른 글

*.jsp 접근 막기  (0) 2009.09.03
스트러츠(Struts) 기본 세팅  (6) 2009.06.22
Struts 파일 업로드  (2) 2009.05.05
  1. seo
    님, 제일 중요한 java file이 빠졌습니다....
    클래스 파일은 있더군요...-_-;;

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기