Order Entry API

Posted at 2010. 5. 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
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
//

*.jsp 접근 막기

Posted at 2009. 9. 3. 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' 카테고리의 다른 글

스트러츠(Struts) 기본 세팅  (6) 2009.06.22
Struts 파일 업로드  (2) 2009.05.05
//

스트러츠(Struts) 기본 세팅

Posted at 2009. 6. 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 파일 업로드  (2) 2009.05.05
//

Struts 파일 업로드

Posted at 2009. 5. 5. 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
//