KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > wstore > RequestServlet


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.wstore;
15
16 import javax.servlet.*;
17 import javax.servlet.http.*;
18 import java.io.*;
19 import java.util.*;
20 import java.sql.*;
21
22 import org.apache.ecs.*;
23 import org.apache.ecs.xhtml.*;
24 import org.apache.log4j.Logger;
25
26 import org.compiere.model.*;
27 import org.compiere.util.*;
28 import org.compiere.www.*;
29
30 /**
31  * Web Request.
32  *
33  * @author Jorg Janke
34  * @version $Id: RequestServlet.java,v 1.7 2003/07/19 05:21:44 jjanke Exp $
35  */

36 public class RequestServlet extends HttpServlet
37 {
38     /** Logging */
39     private Logger log = Logger.getLogger(getClass());
40     /** Name */
41     static public final String JavaDoc NAME = "requestServlet";
42
43     /**
44      * Initialize global variables
45      *
46      * @param config Configuration
47      * @throws ServletException
48      */

49     public void init(ServletConfig config)
50         throws ServletException
51     {
52         super.init(config);
53         if (!WEnv.initWeb(config))
54             throw new ServletException("RequestServlet.init");
55     } // init
56

57     /**
58      * Get Servlet information
59      * @return Info
60      */

61     public String JavaDoc getServletInfo()
62     {
63         return "Compiere Web Request Servlet";
64     } // getServletInfo
65

66     /**
67      * Clean up resources
68      */

69     public void destroy()
70     {
71         log.debug("destroy");
72     } // destroy
73

74     /*************************************************************************/
75
76     public static final String JavaDoc P_FORWARDTO = "ForwardTo";
77     public static final String JavaDoc P_SOURCE = "Source";
78     public static final String JavaDoc P_INFO = "Info";
79
80     public static final String JavaDoc P_SALESREP_ID = "SalesRep_ID";
81     public static final String JavaDoc P_REQUESTTYPE_ID= "RequestType_ID";
82     public static final String JavaDoc P_SUMMARY = "Summary";
83
84     /**
85      * Process the HTTP Get request
86      * Sends Web Request Page
87      *
88      * @param request request
89      * @param response response
90      * @throws ServletException
91      * @throws IOException
92      */

93     public void doGet(HttpServletRequest request, HttpServletResponse response)
94         throws ServletException, IOException
95     {
96         log.info("doGet from " + request.getRemoteHost() + " - " + request.getRemoteAddr() + " - forward to request.jsp");
97         response.sendRedirect("request.jsp");
98     } // doGet
99

100
101     /*************************************************************************/
102
103     /**
104      * Process the HTTP Post request
105      *
106      * @param request request
107      * @param response response
108      * @throws ServletException
109      * @throws IOException
110      */

111     public void doPost(HttpServletRequest request, HttpServletResponse response)
112         throws ServletException, IOException
113     {
114         log.info("doPost from " + request.getRemoteHost() + " - " + request.getRemoteAddr());
115
116         // Get Session attributes
117
HttpSession session = request.getSession(true);
118         session.removeAttribute(JSPEnv.HDR_MESSAGE);
119         //
120
Properties ctx = JSPEnv.getCtx(request);
121         WebUser wu = (WebUser)session.getAttribute(WebUser.NAME);
122         if (wu == null)
123         {
124             log.warn("doPost - no web user");
125             response.sendRedirect("loginServlet?ForwardTo=requests.jsp");
126             return;
127         }
128         // Addl Info
129
String JavaDoc requestURL = request.getRequestURL().toString();
130         String JavaDoc requestRef = request.getHeader("referer");
131         String JavaDoc source = request.getParameter(P_SOURCE);
132         String JavaDoc info = request.getParameter(P_INFO);
133         String JavaDoc forwardTo = request.getParameter(P_FORWARDTO);
134         log.debug(" Referer=" + requestRef + ", Source=" + source + ", ForwardTo=" + forwardTo);
135         if (requestURL == null)
136             requestURL = "";
137         if (requestURL.equals(requestRef)) // if URL and Referrer are the same, get source
138
{
139             requestRef = source;
140             source = null;
141         }
142
143         int AD_Client_ID = Env.getContextAsInt(ctx, "AD_Client_ID");
144         int SalesRep_ID = WUtil.getParameterAsInt(request, P_SALESREP_ID);
145         int R_RequestType_ID = WUtil.getParameterAsInt(request, P_REQUESTTYPE_ID);
146         String JavaDoc Summary = request.getParameter(P_SUMMARY);
147         // SelfService Request
148
MRequest r = new MRequest(ctx, SalesRep_ID, R_RequestType_ID, Summary, true);
149         r.setC_BPartner_ID(wu.getC_BPartner_ID());
150         r.setAD_User_ID(wu.getAD_User_ID());
151         r.setSalesRep_ID(SalesRep_ID);
152         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
153         sb.append("From:").append(request.getRemoteAddr()).append("-").append(request.getRemoteAddr());
154         sb.append(", Request:").append(requestURL).append("-").append(requestRef);
155         if (source != null)
156             sb.append("-").append(source);
157         sb.append("-").append(info);
158         sb.append(", User=").append(request.getHeader("accept-language")).append("-").append(request.getHeader("user-agent"));
159         r.setLastResult(sb.toString());
160         //
161
if (!r.save())
162         {
163             log.error("post - Request NOT saved");
164             WUtil.createErrorPage(request, response, this, Env.getCtx(),
165                 "Request Process Error.");
166             /** @todo EMail Address */
167             return;
168         }
169
170         // Send EMail
171
String JavaDoc webStoreURL = "http://" + request.getServerName() + request.getContextPath() + "/";
172         String JavaDoc subject = "Compiere Web Request";
173         String JavaDoc message = "Thank you for your request on " + webStoreURL
174             + "\n\n" + Summary;
175         String JavaDoc SMTPHost = ctx.getProperty("SMTPHost", "localhost");
176         String JavaDoc RequestEMail = ctx.getProperty("RequestEMail");
177         String JavaDoc RequestUser = ctx.getProperty("RequestUser");
178         String JavaDoc RequestUserPw = ctx.getProperty("RequestUserPw");
179         //
180
EMail em = new EMail(SMTPHost, RequestEMail, wu.getEmail(), subject, message);
181         em.setEMailUser(RequestUser, RequestUserPw);
182         //
183
String JavaDoc webOrderEMail = ctx.getProperty("webOrderEMail");
184         em.addBcc(webOrderEMail);
185         em.send();
186
187         // -- Fini
188
if (forwardTo == null || forwardTo.length() == 0)
189             forwardTo = requestRef;
190         if (forwardTo == null || forwardTo.length() == 0)
191             forwardTo = webStoreURL;
192         if (forwardTo.indexOf("Servlet") != -1)
193             forwardTo = webStoreURL;
194         WUtil.createForwardPage(response, "Web Request Received - Thanks", forwardTo);
195     } // doPost
196

197 } // RequestServlet
198
Popular Tags