tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lar...@apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/generators StaticInterceptor.java
Date Mon, 31 Dec 2001 22:26:34 GMT
larryi      01/12/31 14:26:34

  Modified:    src/share/org/apache/tomcat/modules/generators
                        StaticInterceptor.java
  Log:
  In preparation for Japanese resource strings, allow a character set for
  directory listings other than ISO-8859-1.
  
  Submitted by: Kazuhiro Kazama
  
  Some attributes and handling was added so locale and character set
  used for directory listings can be configured.
  
  Revision  Changes    Path
  1.17      +61 -8     jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java
  
  Index: StaticInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- StaticInterceptor.java	20 Dec 2001 03:38:36 -0000	1.16
  +++ StaticInterceptor.java	31 Dec 2001 22:26:34 -0000	1.17
  @@ -76,6 +76,8 @@
    */
   public class StaticInterceptor extends BaseInterceptor {
       int realFileNote=-1;
  +    boolean useAcceptLanguage=true;
  +    String charset=null;
   
       public StaticInterceptor() {
       }
  @@ -94,6 +96,14 @@
   	this.listings = listings;
       }
   
  +    public void setUseAcceptLanguage(boolean use) {
  +        useAcceptLanguage=use;
  +    }
  +
  +    public void setUseCharset(String charset) {
  +        this.charset=charset;
  +    }
  +
       public void engineInit(ContextManager cm) throws TomcatException {
   	//	if( debug>0 ) log("Engine init " );
   	
  @@ -120,6 +130,8 @@
   	dirHandler.setNoteId( realFileNote );
   	dirHandler.setContext( ctx );
   	dirHandler.setModule( this );
  +        dirHandler.setUseAcceptLanguage(useAcceptLanguage);
  +        dirHandler.setCharset(charset);
   	if (listings)
   	    ctx.addServlet( dirHandler );
       }
  @@ -396,7 +408,10 @@
       int realFileNote;
       int sbNote=0;
       Context context;
  -    
  +    Locale defLocale=null;
  +    String defCharset=null;
  +    StringManager defSM=null;
  +
       DirHandler() {
   	//	setOrigin( Handler.ORIGIN_INTERNAL );
   	name="tomcat.dirHandler";
  @@ -409,16 +424,49 @@
       public void setContext(Context ctx) {
   	this.context=ctx;
       }
  +
  +    public void setUseAcceptLanguage(boolean use) {
  +        if( use ) {
  +            defLocale=null;
  +            defSM=null;
  +        } else {
  +            defLocale=Locale.getDefault();
  +            defSM=StringManager.
  +                    getManager("org.apache.tomcat.resources",defLocale);
  +        }
  +    }
  +
  +    public void setCharset(String charset) {
  +        defCharset=charset;
  +    }
       
       public void doService(Request req, Response res)
   	throws Exception
       {
  -	// this is how get locale is implemented. Ugly, but it's in
  -	// the next round of optimizations
  -	String acceptL=req.getMimeHeaders().getHeader( "Accept-Language");
  -	Locale locale=AcceptLanguage.getLocale(acceptL);;
  -	StringManager sm=StringManager.
  -	    getManager("org.apache.tomcat.resources",locale);
  +        Locale locale;
  +        StringManager sm;
  +        String charset=null;
  +
  +        // if default locale not specified, use Accept-Language header
  +        if( defLocale == null) {
  +            // this is how get locale is implemented. Ugly, but it's in
  +            // the next round of optimizations
  +            String acceptL=req.getMimeHeaders().getHeader( "Accept-Language");
  +            locale=AcceptLanguage.getLocale(acceptL);
  +            sm=StringManager.
  +                getManager("org.apache.tomcat.resources",locale);
  +        } else {
  +            locale=defLocale;
  +            sm=defSM;
  +        }
  +
  +        if( defCharset != null ) {
  +            if( "locale".equals(defCharset))
  +                charset=LocaleToCharsetMap.getCharset(locale);
  +            else
  +                charset=defCharset;
  +        }
  +
   	DateFormat dateFormat =
   	    new SimpleDateFormat(datePattern,locale );
   
  @@ -468,7 +516,12 @@
   	}
   
   	if (! inInclude) {
  -	    res.setContentType("text/html");
  +           if (charset == null || charset.equalsIgnoreCase("ISO-8859-1"))
  +               res.setContentType("text/html");
  +           else {
  +               res.setContentType("text/html; charset=" + charset);
  +               res.setUsingWriter(true);
  +           }
   	    buf.write("<html>\r\n");
   	    buf.write("<head>\r\n");
   	    buf.write("<title>");
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message