001    package com.rain;
002    
003    import java.net.*;
004    import java.util.*;
005    import javax.servlet.http.*;
006    import javax.servlet.ServletContext;
007    import java.lang.*;
008    
009    /**  
010     * Request ¹× Application , ȸ¿øÁ¤º¸¸¦ °ü¸® 
011     * (ÇØ´ç °´Ã¼´Â DOCUMENT_ROOT/conf/siteconf_java.ini ÆÄÀÏÀ» ÇÊ¿ä·Î ÇÔ)
012     * ÇØ´ç °´Ã¼ÀÇ »ý¼º½Ã rainUtil.request ¿¡ ÇØ´ç °´Ã¼°¡ ÀûÀçµÇ¸ç rainUtil.application ¿¡ ÁÖ¾îÁø Application Á¤º¸°¡ ÀûÀçµÊ
013     * rainUtil °´Ã¼¸¦ »ç¿ëÀü¿¡ ÇÊÈ÷ rainRequest ¸¦ ¸ÕÀú È£ÃâÇØ ÁÖ¾î¾ß ÇÔ
014     * @version 1.0
015     * @author http://cafen.net (outmind@cafen.net)
016     */
017    
018    public class rainRequest{
019    
020    /**  
021     * HttpServletRequest request °´Ã¼
022     */
023            public HttpServletRequest request;
024    
025    /**  
026     * ServletContext application °´Ã¼
027     */
028            public ServletContext application;
029    
030    /**  
031     * ȸ¿ø¾ÆÀ̵ð
032     */
033            private String user_id = "";
034    
035    /**  
036     * ȸ¿ø¸í
037     */
038            private String user_nm = "";
039    
040    /**  
041     * ȸ¿ø¸ÞÀÏÁÖ¼Ò
042     */
043            private String user_email = "";
044            
045    /**  
046     * »ý¼ºÀÚ
047     * @param  req  HttpServletRequest
048     * @param  application  ServletContext
049     */
050            public rainRequest(HttpServletRequest req, ServletContext application) {
051                    this.request = req;
052                    this.application = application;
053                    rainUtil.base_pos = this.realPath("/");
054                    rainUtil.site_conf  = new rainProperties("siteconf_java");
055                    rainUtil.request = this;
056            }
057    
058    /**  
059     * request ¿¡¼­ °ª °¡Á®¿À±â
060     * @param  name  °¡Á®¿ÃŰ
061     * @param  def  ÇØ´ç ۰ªÀÌ null Àΰæ¿ì def °ªÀ» ¹ÝȯÇÔ
062     * @return  ÇØ´ç ۰ª
063     */
064            public String get(String name, String def) {
065                    String val = this.a2k(this.request.getParameter(name));
066                    return val.equals("")?def:val;
067            }
068    
069    /**  
070     * request ¿¡¼­ °ª °¡Á®¿À±â
071     * @param  name  °¡Á®¿ÃŰ
072     * @return  ÇØ´ç ۰ª
073     */
074            public String get(String name) {
075                    return this.get(name,"");
076            }
077    
078    /**  
079     * request ¿¡¼­ ۰ª¿¡ ¹é½½·¹½¬¸¦ Ãß°¡Çؼ­ °¡Á®¿À±â
080     * @param  name  °¡Á®¿ÃŰ
081     * @return  ÇØ´ç ۰ª
082     */
083            public String getS(String name) {
084                    return this.get(name).replaceAll("'","\\'");
085            }
086    
087    /**  
088     * request ¿¡¼­ ¼Ó¼º°ª °¡Á®¿À±â
089     * @param  name  °¡Á®¿ÃŰ
090     * @return  ÇØ´ç ۰ª
091     */
092            public String getAttribute(String name) {
093                    if (this.request.getAttribute(name) == null)
094                            return "";
095                    else
096                            return this.request.getAttribute(name).toString();
097            }
098            
099    /**  
100     * ASC ¹®ÀÚ¸¦ EUC-KR ·Î º¯È¯Çϱâ
101     * @param  str  ´ë»ó ¹®ÀÚ
102     * @return  º¯È¯µÈ ¹®ÀÚ
103     */
104            public String a2k(String str) {
105                    String rtn = null;
106                    try {
107                            rtn = (str==null)?"":new String(str.getBytes("8859_1"),"euc-kr");
108                    } catch (java.io.UnsupportedEncodingException e) {}
109                    return rtn;
110            }
111    
112    /**  
113     * EUC-KR¹®ÀÚ¸¦ ASC·Î º¯È¯Çϱâ
114     * @param  str  ´ë»ó ¹®ÀÚ
115     * @return  º¯È¯µÈ ¹®ÀÚ
116     */
117            public String k2a(String str) {
118                    String rtn = null;
119                    try {
120                            rtn = (str==null)?"":new String(str.getBytes("euc-kr"),"8859_1");
121                    } catch (java.io.UnsupportedEncodingException e) {}
122                    return rtn;
123            }
124    
125    /**  
126     * request ¿¡¼­ °ªÀ» ¼ýÀÚ·Î °¡Á®¿À±â
127     * @param  name  °¡Á®¿ÃŰ
128     * @return  ÇØ´ç ۰ª
129     */
130            public int getInt(String name) {
131                    try {
132                            return Integer.parseInt(this.get(name));
133                    } catch (Exception e) {
134                            return 0;
135                    }
136            }
137            
138    /**  
139     * request ¿¡¼­ IP ÁÖ¼Ò °¡Á®¿À±â
140     * @return  Á¢±ÙÀÚÀÇ IP ÁÖ¼Ò
141     */
142            public String getIP() {
143                    return this.request.getRemoteAddr();    
144            }
145    
146    /**  
147     * ÇöÀç Unixtimestamp °¡Á®¿À±â
148     * @return  unixtimestamp
149     */
150            public int getNow() {
151                    Date today = new Date();
152                    return (int) Math.floor(today.getTime()/1000);
153            }
154    
155    /**  
156     * ȸ¿ø Á¤º¸ ¼³Á¤
157     * @param  user_id  ȸ¿ø¾ÆÀ̵ð
158     * @param  user_nm  ȸ¿øÀ̸§
159     * @param  user_email  ȸ¿ø¸ÞÀÏÁÖ¼Ò
160     */
161            public void setUser(String user_id, String user_nm, String user_email) {
162                    this.setID(user_id);
163                    this.setName(user_nm);
164                    this.setEmail(user_email);
165            }
166            
167    /**  
168     * ȸ¿ø ¾ÆÀ̵ð¼³Á¤
169     * @param  user_id  ȸ¿ø¾ÆÀ̵ð
170     */
171            public void setID(String user_id) {
172                    this.user_id = user_id;
173            }
174    
175    /**  
176     * ȸ¿ø À̸§ ¼³Á¤
177     * @param  user_nm  ȸ¿øÀ̸§
178     */
179            public void setName(String user_nm) {
180                    this.user_nm = user_nm;
181            }
182            
183    /**  
184     * ȸ¿ø ¸ÞÀÏÁÖ¼Ò ¼³Á¤
185     * @param  user_email  ȸ¿ø¸ÞÀÏÁÖ¼Ò
186     */
187            public void setEmail(String user_email) {
188                    this.user_email = user_email;
189            }
190    
191    /**  
192     * ȸ¿ø ¾ÆÀ̵𠰡Á®¿À±â
193     * @return  ȸ¿ø¾ÆÀ̵ð
194     */
195            public String getID() {
196                    return this.user_id;
197            }
198            
199    /**  
200     * ȸ¿øÀ̸§ °¡Á®¿À±â
201     * @return  ȸ¿ø¸í
202     */
203            public String getName() {
204                    return this.getName("");
205            }
206    
207    /**  
208     * ȸ¿øÀ̸§ °¡Á®¿À±â
209     * @param  user_nm  ȸ¿ø¸í(±â·ÏµÈ ȸ¿ø¸íÀÌ ¾ø´Â °æ¿ì ÁÖ¾îÁø À̸§ÀÌ ´ë½Å ¹Ýȯ)
210     * @return  ȸ¿ø¸í
211     */
212            public String getName(String user_nm) {
213                    return (this.user_nm.equals(""))?user_nm:this.user_nm;
214            }
215    
216    /**  
217     * ȸ¿ø¸ÞÀÏÁÖ¼Ò °¡Á®¿À±â
218     * @return  ȸ¿ø¸ÞÀÏÁÖ¼Ò
219     */
220            public String getEmail() {
221                    return this.getEmail("");
222            }
223            
224    /**  
225     * ȸ¿ø¸ÞÀÏÁÖ¼Ò °¡Á®¿À±â
226     * @param  user_email  ȸ¿ø¸ÞÀÏÁÖ¼Ò(±â·ÏµÈ ȸ¿ø¸ÞÀÏÁÖ¼Ò°¡  ¾ø´Â °æ¿ì ÁÖ¾îÁø ¸ÞÀÏÁÖ¼Ò°¡ ´ë½Å ¹Ýȯ)
227     * @return  ȸ¿ø¸ÞÀÏÁÖ¼Ò
228     */
229            public String getEmail(String user_email) {
230                    return (this.user_email.equals(""))?user_email:this.user_email;
231            }
232    
233    /**  
234     * ÇöÀçÀÛ¾÷ÁßÀÎ ½ºÅ©¸³Å͸íÀ» ¹Ýȯ
235     * @return  ½ºÅ©¸³Å͸í
236     */
237            public String getSelf() {
238                    return this.request.getRequestURI();
239            }
240            
241    /**  
242     * ÇöÀçÀÛ¾÷ÁßÀÎ ½ºÅ©¸³ÅÍÀÇ Äõ¸®¸¦ ¹Ýȯ
243     * @return  ½ºÅ©¸³ÅÍ Äõ¸®
244     */
245            public String getQuery() {
246                    return (this.request.getQueryString() == null)?"":this.request.getQueryString();
247            }
248    
249    /**  
250     * ÁÖ¾îÁø °æ·ÎÀÇ Àý´ë °æ·Î¸¦ ¹Ýȯ
251     * @param  str DOCUMENT ROOT ·Î ºÎÅÍÀÇ »ó´ë °æ·Î
252     * @return  Àý´ë°æ·Î
253     */
254            public String realPath(String str) {
255                    return this.application.getRealPath(str);
256            }
257    
258    /**  
259     * ÇöÀç ÆÄÀÏ °æ·ÎÀÇ Àý´ë Æúµå¸í °¡Á®¿À±â
260     * @return  ÇöÀç ÆÄÀÏ °æ·ÎÀÇ Àý´ë Æúµå¸í
261     */
262            public String realPath() {
263                    return this.realPath("./");
264            }
265    
266    /**  
267     * ÇöÀç ÀÛ¾÷ÁßÀÎ ½ºÅ©¸³ÅÍÀÇ ÆÄÀÏ URL °ú Äõ¸®¸¦ °¡Á®¿À±â
268     * @return  ÆÄÀÏURL +?+ Äõ¸®
269     */
270            public String getURL() {
271                    return this.getSelf() + "?" + this.getQuery();
272            }
273    
274    }