Yes i got it working. But i think this method takes more time to load on the client than copy paste the 3 css into one and download that one. Am i right ?
On Thu, Feb 24, 2011 at 5:21 PM, Juan Pablo Gardella < [email protected]> wrote: > For example you have 3 .css files: > > /styles/ > +style1.css > +style2.css > +style3.css > > And you will have in your .html like this: > > <link type="text/css" rel="stylesheet" href="/styles/style1.css"> > <link type="text/css" rel="stylesheet" href="/styles/style2.css"> > <link type="text/css" rel="stylesheet" href="/styles/style3.css"> > > Then you need 3 request for download the styles file. > > With this servlet you can reduce to 1 request for download "the union" of > the three files if you put: > > <link type="text/css" rel="stylesheet" href="/styles/cssServlet.css"> > > This URL map with the servlet. > > Juan > > > > > 2011/2/23 Deepak Singh <[email protected]> > >> what is this cssServlet.css ? >> >> >> On Thu, Feb 24, 2011 at 1:22 AM, Juan Pablo Gardella < >> [email protected]> wrote: >> >>> In your html: >>> >>> /styles/cssServlet.css >>> >>> In web.xml: >>> >>> <servlet-mapping> >>> <servlet-name>cssServlet</servlet-name> >>> <url-pattern>/styles/cssServlet.css</url-pattern> >>> </servlet-mapping> >>> >>> Juan >>> >>> 2011/2/23 Deepak Singh <[email protected]> >>> >>>> Hi Jaun, >>>> >>>> How to use this CssServlet class ? >>>> >>>> On Wed, Feb 23, 2011 at 9:14 PM, Juan Pablo Gardella < >>>> [email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> Try that (thanks Gabriel Nossier): >>>>> >>>>> public class CssServlet extends HttpServlet { >>>>> private static final long serialVersionUID = 2545846261709821197L; >>>>> >>>>> private static final String path1 = "./"; >>>>> private static final String path2 = "webapps/styles/"; >>>>> >>>>> /* >>>>> * (non-Javadoc) >>>>> * >>>>> * @see >>>>> * >>>>> javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest >>>>> * , javax.servlet.http.HttpServletResponse) >>>>> */ >>>>> @Override >>>>> protected void doGet(HttpServletRequest req, HttpServletResponse >>>>> resp) throws ServletException, IOException { >>>>> doPost(req, resp); >>>>> } >>>>> >>>>> /* >>>>> * (non-Javadoc) >>>>> * >>>>> * @see >>>>> * >>>>> javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest >>>>> * , javax.servlet.http.HttpServletResponse) >>>>> */ >>>>> @Override >>>>> protected void doPost(HttpServletRequest req, HttpServletResponse >>>>> resp) throws ServletException, IOException { >>>>> resp.setContentType("text/css"); >>>>> >>>>> PrintWriter out = resp.getWriter(); >>>>> out.println("@CHARSET \"ISO-8859-1\";"); >>>>> generateMonoliticCssFile(out); >>>>> out.close(); >>>>> } >>>>> >>>>> private void generateMonoliticCssFile(PrintWriter out) throws >>>>> IOException { >>>>> File dir = new File(path1); >>>>> if (dir.exists()) { >>>>> listFolder(out, dir); >>>>> } else { >>>>> dir = new File(path2); >>>>> if (dir.exists()) { >>>>> listFolder(out, dir); >>>>> } else { >>>>> out.println("Paths '" + path1 + "' and ' " + path2 + "' doesn't >>>>> exists"); >>>>> File local = new File("."); >>>>> out.println("Local path:" + local.getAbsolutePath()); >>>>> } >>>>> } >>>>> } >>>>> >>>>> private void listFolder(PrintWriter out, File dir) throws IOException { >>>>> for (File file : getAllCssFiles(dir)) { >>>>> process(out, file); >>>>> } >>>>> } >>>>> >>>>> /** >>>>> * @param out >>>>> * @param file >>>>> * @throws IOException >>>>> */ >>>>> private void process(PrintWriter out, File file) throws IOException { >>>>> out.println(""); >>>>> out.println("/****** file:" + file.getName() + " *******/"); >>>>> out.println(""); >>>>> >>>>> BufferedReader fileReader = new BufferedReader(new FileReader(file)); >>>>> >>>>> String aLine = null; >>>>> while ((aLine = fileReader.readLine()) != null) { >>>>> if (!aLine.startsWith("@CHARSET")) { >>>>> out.println(aLine); >>>>> } >>>>> } >>>>> >>>>> out.println(""); >>>>> } >>>>> >>>>> /** >>>>> * @param dir >>>>> * @return >>>>> */ >>>>> >>>>> private List<File> getAllCssFiles(File dir) { >>>>> List<File> rv = new LinkedList<File>(); >>>>> >>>>> FilenameFilter filenameFilter = new FilenameFilter() { >>>>> @Override >>>>> public boolean accept(File dir, String name) { >>>>> return name.toLowerCase().endsWith(".css"); >>>>> } >>>>> }; >>>>> >>>>> for (File file : dir.listFiles(filenameFilter)) { >>>>> rv.add(file); >>>>> } >>>>> >>>>> return rv; >>>>> } >>>>> } >>>>> >>>>> >>>>> 2011/2/23 Deepak Singh <[email protected]> >>>>> >>>>>> Hi, >>>>>> >>>>>> After compiling our gwt project we get one statndard.css file which >>>>>> loads to the client consuming 1 http request. >>>>>> We also have our application specific style.css file which loads >>>>>> consuming 1 seperate http request. >>>>>> >>>>>> To reduce the number of http requests, how should i combine them into >>>>>> 1 css file ? >>>>>> >>>>>> Also, we have many application specific images which loads to the >>>>>> client using 1 http request for 1 image. If i create 1 ImageBundle and >>>>>> put >>>>>> all images into this bundle, how do i get this bundle loaded to the >>>>>> client >>>>>> in just 1 http request at the application start up time ? >>>>>> >>>>>> Thanks >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Google Web Toolkit" group. >>>>>> To post to this group, send email to >>>>>> [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/google-web-toolkit?hl=en. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Google Web Toolkit" group. >>>>> To post to this group, send email to >>>>> [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/google-web-toolkit?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Google Web Toolkit" group. >>>> To post to this group, send email to >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/google-web-toolkit?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google Web Toolkit" group. >>> To post to this group, send email to [email protected] >>> . >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/google-web-toolkit?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google Web Toolkit" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-web-toolkit?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
