`
明天会更浩
  • 浏览: 5762 次
  • 性别: Icon_minigender_1
社区版块
存档分类

struts2页面伪静态

阅读更多

                                                    myeye1.1博客系统简介
                                  
     说明:
        系统使用 mysql+ssh框架搭建而成,其原型为www.iteye.com,本系统为模仿其博客系统部分功能的练习作品,一方面是为了加强3
    大框架的组合运用能力,另一方面向给本人提供很多帮助的www.iteye.com网站致敬.
   
   1.0版本实现功能。
      
        1、用户可以通过登录页面登录到自己的博客首页,首页显示信息有用户头像、性别、昵称、访问过我的用户列表、用户博客
       标题等信息列表、等。
      
        2、用户可以发布自己的博客,发表博客包括、标题、博客类型(下拉框)、博客分类(下拉框)、博客正文、博客标签(标签
        可使用多个,用“,”分割)。
      
        3、用户可以通过博客列表上方的管理博客列表实现对博客的管理,管理博客页面使用分页显示的方式显示10条博客标题的列表,
        用户可以通过每一条博客后边的编辑,删除按钮实现对每一个博客的编辑。
      
        4、实现点击博客标题列表显示该条博客的信息 。 
      
        5、当其他用户访问我的空间点击查看文章内容后增加文章访问次数。
      
        6、 自己或者其他用户访问文章都可以再文章下面的回复内实现文章的回复功能。   
      
        7、用户可以编辑自定义博客类型列表,实现对类型表的删除和添加。
      
        8、用户可以对自己博客的评论进行管理,仿iteye评论只能查看、删除,不能编辑修改。   
       
        9、实现用户管理自己的信息 ,注册时只提供填写部分信息,如用户头像(刚注册使用默认头像、用户自我简介等都未填写,用户都可以再 在这个
        模块完善自己的信息。         
       
        10、实现用户注册功能,使用javamail对用户的注册进行确认,目前只支持qq邮箱。地址选择使用ajax三级联动,同时用户名和
        验证码的检测同样使用ajax局部刷新技术,避免用户名重复和验证码老是出错(当用户输完验证码如果错误,输入框变红);
-------------------------------------------------------------------------------------------------------------------------------------   
        11、所有的博客展示页面使用伪静态第一便于SEO网络收索,第二是地址更加美观,由原来的/showblog?blogid=1123变成了/showblog/1123.html
        但是大量使用伪静态会使得网页加载速度不佳,并发量减少,所有只有博客展示页面使用了伪静态。

        

     struts2实现页面伪静态是使用urlrewrite这个开源框架,其原理就是Filter过滤器,首先urlrewrite会按照你在urlrewrite.xml的配置过滤一些指定地址的访问,比如你在urlrewrite.xml中配置只拦截/xxxx/yyy.html,当然/xxxx/yyy.html是你想要的地址,事先写到jsp中的,在未使用伪静态前的地址是/xxxx?id=yyy当拦截到/xxxx/yyy.html后会根据一些规则(正则表达式)将地址映射成/xxxx?id=yyy然后转发以便action处理,先前的?带值得url就不存在了,这样便于seo也较美观,但是大量使用会使得网页加载速度不佳,并发量减少。所有使用需谨慎。

 

     struts2实现伪静态关键步骤如下:

         1、添加jar包,urlrewrite-3.1.0.jar

 

          2、在web.xml中配置UrlRewriterFilter,配置代码如下

                <!--伪静态配置  -->
    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>WARN</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
       <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

     

         3、编写urlrewrite.xml,名字必须一致且放到WEB-INF/下,和web.xml同目录格式如下

          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
           "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
           <urlrewrite>
               <rule>
             <from>^/(\w+)/(\d+)\.html$</from>
             <to type="forward" >/$1?blogid=$2</to>
             </rule>
             </urlrewrite>

                需要拦截多种格式的url则添加多个  <rule>即可。

              <from>^/(\w+)/(\d+)\.html$</from>表示需要拦截的uir过滤器会通过这个正则匹配访问的地址,如我的博客标题的url为

            <a href="...../showblog/223.html">博客标题</a>

              当拦截后映射成?带参数的形式$1匹配第一个正则即(\w+)$2匹配第一个正则即(\d+)最后生产的地址为/showblog?blogid=222

 

 

              需要注意有:

                 urlrewrite的过滤器必须在struts之前,且struts的配置在 <filter-mapping>下加上 <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>   

                即struts2的配置如下:<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher> 
  </filter-mapping>

 

       疑问:第一次访问的时候感觉明显速度很慢?不知道是我的问题还是大家都会有这样的问题,之后访问就和没有伪静态之前的速度一样了,求解。

 

1
0
分享到:
评论

相关推荐

    jsp伪静态,javaweb实现伪静态

    5. **使用框架支持**:很多Java Web框架如Spring MVC、Struts2等都内置了对伪静态的支持。例如,在Spring MVC中,可以通过配置`&lt;url-pattern&gt;`来实现URL重写。 6. **实例分析**:在提供的“jsp伪静态-实现”压缩包...

    javaweb伪静态

    5. MVC框架支持:许多MVC框架如Spring MVC、Struts2等,内置了对伪静态的支持。开发者只需要按照框架提供的配置方式,就可以轻松实现伪静态。 伪静态的实现需要考虑到URL的可读性、可维护性和SEO优化。一个好的伪...

    Url Rewrite Filter实现页面伪静态化,简单实例及步骤

    ### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...

    伪静态_URLRewrite实例解析

    伪静态是一种将动态网页URL转化为静态URL的技术,目的是为了让搜索引擎更好地抓取网站内容,同时也让用户更易理解链接所指向的页面内容。实际页面仍然是动态生成的,但对外展示的URL看起来像是静态文件(如.html)...

    java伪静态URL重写的方法

    下面是一个基于Struts2框架实现伪静态URL重写的详细步骤: 1. **创建项目并引入依赖**:首先,创建一个新的Java Web工程,并导入Struts2框架所需的所有JAR包,包括UrlReswriter.jar。 2. **配置URL重写规则**:...

    伪静态URLRewrite实例解析

    ### 伪静态URLRewrite实例解析 #### 一、伪静态URLRewrite概念与作用 在Web开发领域,为了提高用户体验、便于搜索引擎抓取以及优化网站结构,常常需要对URL进行美化处理,这就是所谓的“伪静态”。通过将动态URL...

    struts2+spring3+hibernate4+urlrewrite

    本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应

    urlrewritefilter实现伪静态

    伪静态的主要目的是使动态URL看起来像静态页面。例如,一个动态的博客文章URL可能是`/article.php?id=123`,而通过URLRewriteFilter,我们可以将其转换为`/article/123`。这不仅让URL更易读,还能帮助搜索引擎更好地...

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    包括: +----doc +-----jeecms基础概念.txt ...• 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite • 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    urlrewritefilter-3.2.0下载

    通过使用UrlRewriteFilter,开发者可以在Struts和JSP应用中实现URL的伪静态化,即让动态页面的URL看起来像静态页面的URL,这对于SEO尤其有利,因为搜索引擎更容易抓取和理解静态化的URL。 标签"struts伪静态"意味着...

    jeecms-src.rar_com.jeec_freemarker_freemarker struts2_单点登录

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    jeecmsv2.3.2 内容管理系统 (hibernate3+struts2+spring2+freemarker)

    JEECMS是JavaEE版网站管理系统(Java Enterprise ...· 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    淘淘商城后台管理系统静态页面

    开发者可能利用了Spring MVC或Struts2等框架来组织JSP页面,提高开发效率和代码可维护性。 从"README.txt"文件名来看,这通常是一个文档,可能包含了项目简介、安装指南、使用说明等信息。对于开发者来说,这是了解...

    WEB网站架构分析HTML静态化.pdf

    1. **URL重写(伪静态)**:通过URL重写组件,如UrlReswriter.jar,将动态URL转换为静态格式,客户端看似访问静态页面,实则服务器内部处理为动态请求。 2. **Servlet与web.xml配置**:在Struts或Servlet中处理请求...

    Struts1 ULR重写

    总的来说,"Struts1 URL重写"是一个提高Web应用用户体验和SEO的重要技术,通过自定义过滤器或使用第三方库,我们可以将复杂的动态URL转化为简洁的伪静态URL。"URLFilter.java"文件就是这一过程中的核心实现,它的...

    jee cms学习文档

    · 采用伪静态页面缓存技术,管理方便,速度可与静态页面相媲美,用户自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    JEEcms目前国内的cms领跑者

    JEECSM是JavaEE版网站管理系统(Java Enterprise Edition ...·采用伪静态页面技术,可自定义路径结构,无需urlrewrite ·轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登陆!

    JEECMS v2.3.2 正式版用源码

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    freemarker

    此外,网站还使用了URLRewrite来实现伪静态,使得动态URL看起来像是静态页面,这对SEO(搜索引擎优化)和用户体验都有积极影响。 总结来说,FreeMarker是Java Web开发中用于生成静态页面的重要工具,通过与Struts2...

Global site tag (gtag.js) - Google Analytics