HI!
I looked at the apache rewrite stuff, however that is not
exactly what i was looking for. Let me explain it again
so that the requirement is more clear,
See when we are using the Url rewriting for session tracking
in Tomcat, each url in the page has got jsessionId appended
to it, my requirement is that can i extend this so that I can also
manipulate the url while the page is being served to the user.
thanks in anticipation
ashish
Lo�c Lef�vre
<llefevre@fiv To: <[EMAIL PROTECTED]>
ia.com> cc:
Subject: RE: Customize Url Rewriting +
QUESTION
07/30/2001
12:33 PM
Please
respond to
tomcat-user
Okay, let's speak ;)
here is my mod_jk.conf:
##############################################
# TOMCAT mod_jk.so MODULE CONFIGURATION FILE #
##############################################
JkWorkersFile
/usr/local/tomcat/jakarta-tomcat-3.2.3/conf/workers.properties
JkLogFile /usr/local/tomcat/log/mod_jk.log
#
# Log level to be used by mod_jk
# debug / error / warn / info / fatal
#
JkLogLevel debug
NameVirtualHost 192.1.1.128
<VirtualHost 192.1.1.128>
ServerName lol.fivia.com
# R�pertoire ou commence le site, pour les fichiers statiques
DocumentRoot /usr/local/tomcat/jakarta-tomcat-3.2.3/webapps/lol
JkMount /lol/* ajp12
JkMount /*.jsp ajp12
RedirectMatch /index.html $1/start/index.html
ErrorLog /usr/local/tomcat/log/lol_error_html.log
TransferLog /usr/local/tomcat/log/lol_access_html.log
RewriteEngine on
RewriteLog /usr/local/tomcat/log/lol_rewrite.log
RewriteLogLevel 9
# Seen in a faq (: http://www.jguru.com/faq/view.jsp?EID=53878)
RewriteRule ^(/.*;jsessionid=.*)$ $1 [T=jserv-servlet,PT]
RewriteCond %{REQUEST_URI} ^/servlet* [NC]
RewriteRule ^/servlet/(.*) /lol/$1 [PT]
RewriteCond %{REQUEST_URI} !^/lol* [NC]
RewriteCond %{REQUEST_URI} !^/Image* [NC]
RewriteCond %{REQUEST_URI} !^/Elemtech* [NC]
RewriteCond %{REQUEST_URI} !^/Erreur* [NC]
RewriteCond %{REQUEST_URI} ^/.*/.*
RewriteRule ^/(.*) /lol/AdFront?access=/$1 [PT,QSA]
#RewriteRule ^/Image/(.*) /Image/$1 [L,NC]
#RewriteRule ^/Erreur/(.*) /Erreur/$1 [L,NC]
#RewriteRule ^/Elemtech/(.*) /Elemtech/$1 [L,NC]
#RewriteRule ^/servlet/(.*) /lol/$1 [PT]
#RewriteCond %{REQUEST_URI} ^/.*/.*
#RewriteRule ^/(.*) /lol/AdFront?access=/$1 [QSA]
</VirtualHost>
here is the code of my URLRewriter:
package com.fivia.adfront.sales;
import com.fivia.adfront.sales.kernel.*;
import com.fivia.adfront.sales.util.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.StringTokenizer;
import java.util.Date;
public class AdURLRewriter extends HttpServlet
{
public static AdFront application = null;
public static int p = 0;
/****************************************************************/
/* Initialisation
*/
/****************************************************************/
public void init(ServletConfig config)
throws ServletException
{
System.out.println("Initialisation d'AdURLRewriter en
cours...");
super.init(config);
// Instanciation de l'application (static !)
if( application == null )
{
application = new AdFront();
application.init(config);
}
}
/****************************************************************/
/* Destroy
*/
/****************************************************************/
public void destroy()
{
System.out.println("Destruction d'AdURLRewriter...");
super.destroy();
}
/****************************************************************/
/* GET method
*/
/****************************************************************/
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException
{
p++; // to debug
if( p <= 3) // I just redirect the 3rd first uri
{
if( request.getRequestURI().startsWith("/lol/AdFront")
||
request.getRequestURI().startsWith("/servlet/AdFront") )
application.doGet(request,response);
else
response.sendRedirect("/lol/AdFront?access="
+request.getRequestURI());
}
else
{
// Snnop servlet (Tomcat) code
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
out.println("Snoop Servlet");
out.println();
out.println("Servlet init parameters:");
Enumeration e = getInitParameterNames();
while (e.hasMoreElements())
{
String key = (String)e.nextElement();
String value = getInitParameter(key);
out.println(" " + key + " = " +
value);
}
out.println();
out.println("Context init parameters:");
ServletContext context = getServletContext();
Enumeration enum = context.getInitParameterNames();
while (enum.hasMoreElements()) {
String key = (String)enum.nextElement();
Object value = context.getInitParameter(key);
out.println(" " + key + " = " + value);
}
out.println();
out.println("Context attributes:");
enum = context.getAttributeNames();
while (enum.hasMoreElements()) {
String key = (String)enum.nextElement();
Object value = context.getAttribute(key);
out.println(" " + key + " = " + value);
}
out.println();
out.println("Request attributes:");
e = request.getAttributeNames();
while (e.hasMoreElements()) {
String key = (String)e.nextElement();
Object value = request.getAttribute(key);
out.println(" " + key + " = " + value);
}
out.println();
out.println("Servlet Name: " + getServletName());
out.println("Protocol: " + request.getProtocol());
out.println("Scheme: " + request.getScheme());
out.println("Server Name: " + request.getServerName());
out.println("Server Port: " + request.getServerPort());
out.println("Server Info: " + context.getServerInfo());
out.println("Remote Addr: " + request.getRemoteAddr());
out.println("Remote Host: " + request.getRemoteHost());
out.println("Character Encoding: " +
request.getCharacterEncoding());
out.println("Content Length: " + request.getContentLength());
out.println("Content Type: "+ request.getContentType());
out.println("Locale: "+ request.getLocale());
out.println("Default Response Buffer: "+ response.getBufferSize());
out.println();
out.println("Parameter names in this request:");
e = request.getParameterNames();
while (e.hasMoreElements()) {
String key = (String)e.nextElement();
String[] values = request.getParameterValues(key);
out.print(" " + key + " = ");
for(int i = 0; i < values.length; i++) {
out.print(values[i] + " ");
}
out.println();
}
out.println();
out.println("Headers in this request:");
e = request.getHeaderNames();
while (e.hasMoreElements()) {
String key = (String)e.nextElement();
String value = request.getHeader(key);
out.println(" " + key + ": " + value);
}
out.println();
out.println("Cookies in this request:");
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
out.println(" " + cookie.getName() + " = " +
cookie.getValue());
}
out.println();
out.println("Request Is Secure: " + request.isSecure());
out.println("Auth Type: " + request.getAuthType());
out.println("HTTP Method: " + request.getMethod());
out.println("Remote User: " + request.getRemoteUser());
out.println("Request URI: " + request.getRequestURI());
out.println("Context Path: " + request.getContextPath());
out.println("Servlet Path: " + request.getServletPath());
out.println("Path Info: " + request.getPathInfo());
out.println("Path Trans: " + request.getPathTranslated());
out.println("Query String: " + request.getQueryString());
out.println();
HttpSession session = request.getSession();
out.println("Requested Session Id: " +
request.getRequestedSessionId());
out.println("Current Session Id: " + session.getId());
out.println("Session Created Time: " + session.getCreationTime
());
out.println("Session Last Accessed Time: " +
session.getLastAccessedTime());
out.println("Session Max Inactive Interval Seconds: " +
session.getMaxInactiveInterval());
out.println();
out.println("Session values: ");
Enumeration names = session.getAttributeNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
out.println(" " + name + " = " + session.getAttribute(name));
}
}
}
/****************************************************************/
/* POST method.
*/
/****************************************************************/
public void doPost (HttpServletRequest req, HttpServletResponse
res)
throws ServletException, IOException
{
doGet(req, res);
}
}
Now, I have to manage the login POST form...
If you have any quesion / idea ?
Lo�c Lef�vre
-----Message d'origine-----
De : Ashish Bajpai [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 30 juillet 2001 18:20
� : [EMAIL PROTECTED]
Objet : RE: Customize Url Rewriting + QUESTION
HI! Lo�c
I am also using the 3.2.3 version, I think i should have a
look at the 4.0 version also.
I think the approach that you are taking to handle the rewriting
is a good one, though i have got a question on that
how do you get to know that you have encountered a url, let me
rephrase it.
Like you have a hunk of a content in which there are a lot
of <a> tags and form acitons now how will your rewriter get
triggered so that it rewrites the urls before it gets out
to the user.
I mean to ask how does your rewriter plugs into the whole scheme of
things
TAI
ashish
Lo�c Lef�vre
<llefevre@fiv To:
<[EMAIL PROTECTED]>
ia.com> cc:
Subject: RE: Customize Url
Rewriting + QUESTION
07/30/2001
12:13 PM
Please
respond to
tomcat-user
Yes you can, I'm developping a URLRewriter servlet because of the
problemSSS
I
encounter using mod_rewrite alone :(
I Load it on startup and manage myself the url rewriting by using
response.sendRedirect or
myMainApplicatioSerlvet.doGet(request,response) + some simple rules ;)
Using servlet aliasing in tomcat is not as powerful as I expect.
Does tomcat 3.3 or 4.0 use more regular expressions for this?
(I use tomcat 3.2.3).
Lo�c Lef�vre
-----Message d'origine-----
De : Ashish Bajpai [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 30 juillet 2001 17:55
� : [EMAIL PROTECTED]
Objet : RE: Customize Url Rewriting
Thanks
I will try it. In the mean while is it essential for me to use
apache ? can i do something by only using Tomcat.
thanks
ashish
Lo�c Lef�vre
<llefevre@fiv To:
<[EMAIL PROTECTED]>
ia.com> cc:
Subject: RE: Customize Url
Rewriting
07/30/2001
11:51 AM
Please
respond to
tomcat-user
The answer is YES, using mod_rewrite apache module.
Add it to your <VirtualHost></VirtualHost> or in mod_jk.conf
if you don't use Virtual Host.
example:
RewriteEngine on
RewriteLog /usr/local/tomcat/logs/rewrite.log
RewriteLogLevel 9
RewriteCond %{REQUEST_URI} ^/(.*) [NC]
RewriteRule ^/(.*) /index.jsp?$1 [PT]
;-)
-----Message d'origine-----
De : Ashish Bajpai [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 30 juillet 2001 17:38
� : [EMAIL PROTECTED]
Objet : Customize Url Rewriting
Hi!
I was wondering if there is a way that one can add something to
the url rewirting scheme.
To make things clear what i want is this
Can i plugin some code so that all the urls in the html/jsp pages for
my site can have a content attirbute some thing of this sort.
http://mysite.com/home/ugotit.jsp becomes
http://mysite.com/index.jsp?jsessionid=......&content=ugotit.jsp.
TAI
ashish