当前位置:首页 > 开发 > Web前端 > 前端 > 正文

struts2页面伪静态

发表于: 2014-09-30   作者:明天会更浩   来源:转载   浏览:
摘要:                                  &n

                                                    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>

 

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

 

struts2页面伪静态

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪
IIS7.5 针对MVc3.0的配置: 0.确保安装了了MVC3.0等环境 1..NetFrameWork4.0 集成环境 2.处理映射程
大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp、*.php页面。但实际上绝大部分
configuration> <configSections> <!-- The <configSections> element must cont
第一次使用伪静态,而且还是跳槽到一家新公司,第一个接手的网站要用。可怜我这个啥都不会的菜鸟。
Apache的rewrite机制: 意思就是,你发送的地址,比如:http://localhost/news-id67.html会被Apache
1.伪静态:http://www.cnblogs.com/Default.html 目的就是为了赢得更多的收入,至于真否,待SEOer
现在很多源码的伪静态规则都需要ISAPI Rewrite3来支持了,在这里分享个自己用的ISAPI Rewrite3破解
Apache配置伪静态 注意:本文中关于Apache的配置修改,一定要记得重启Apache服务 伪静态的实现有多
1、将下载的 IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下。 2、在“IIS管理器”里选择
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号