第二篇 Web应用URL伪静态化

     作为一个程序员,我们对action访问路径非常敏感,但是在开发或者在使用其它系统的时候,发现这些系统中的URL地址是静态的,并不会显示出真正的URL路径,对于刚开始跨入程序员这个领域的人,可能会感觉很苦恼,因为这样就不能根据URL去找到对应的ACTION了,片面的说这只是对一些程序带来的问题,但是对于工作两年程序员来说,影响并不但是,我们先先简单的了解一下使用Url重写能给你网站带来哪些好处:

    第一:有利于搜索引擎的抓取,因为现在大部分的搜索引擎对动态页面的抓取还比较弱,它们更喜欢抓取一些静态的页面。而我们现在的页面大部分的数据都是动态的显示的。这就需要我们把动态页面变成静态的页面,有利于搜索引擎的抓取。

    第二:让用户更容易理解,很少有用户去关心你网站的页面的地址,但对一般的大中型网站增强可读性还是必须的。这样会让你的网站更加完美。

    第三:也是本人认为最重要的,隐藏技术的实现,我们可以通过Url重写可以实现技术的隐藏。不至于暴露你所采用的技术,给一些想攻击你网站的爱好者提供方便。

第四:可以很方便的重用,提高网站的移植性。如果我们后台方法改动的话,可以保证前台的页面部分不用改。这样就提高了网站的移植性。

它虽然有这么多的优点,但是也有一点缺点的,因为它是通过过滤器原理来实现的,就以为着又多了一道访问,会多少影响点访问速度的,不过这个这个可以忽略不计的。

现在UrlRewriter技术有两个技术平台的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。

首先让我们了解它的工作原理,说白了它就是一个简单的过滤器(Filter),看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect()

  下面我们就Url重写技术进行简单应用:

  1:下载urlrewrite-3.2.0beta.ja,并把urlrewrite-3.2.0beta.jar(http://tuckey.org/urlrewrite/)  拷到classpath下。

  2WEB-INF目录下建一个urlrewrite.xml配置文件。

  3web.xml配置文件中初始化配置UrlRewriteFilter。在配置文件中加上下面的代码: 

<!-- 在配置文件中设置 URL Rewrite-->

<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>  

10 <filter-mapping>  

11     <filter-name>UrlRewriteFilter</filter-name>  

12     <url-pattern>/*</url-pattern>  

13 </filter-mapping>  

14 <listener>  

15 <context-param>  

16     <param-name>contextConfigLocation</param-name>  

17     <param-value>/WEB-INF/urlrewrite.xml </param-value>  

18 </context-param>  


然后就是配置urlrewrite.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>/(.*)/login.htm</from>  

        <to type="forward">/yui/login.htm?name=$1</to>  

    </rule>  

 </urlrewrite>  

  对于上面的配置,表示在host:port/app之后开始的/(.*)/login.htm都以/yui/login.htm?name=$1的形式请求服务器。

http://localhost:8080/app/ddd/login.htm其实际请求的urlhttp://localhost:8080/app/yui/login.htm?name=ddd
在这里需要注意的是,因为程序员在命名的时候容易把单词首字母大写,一定不要把文件名写成urlRewrite.xml,这样即使你加上在启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。

<from></from>写上你自己定义的访问地址,通常采用正则表达式的写法;

<to type="forward></to>就是实际的访问地址。

比如我们实际的访问地址是: http://www.phome.asia/forum/list.action?id=16931&page=2而我们想把它重写为http://www.phome.asia/forum/thread/16931.html?page=2。这样看起来比我们实际的要好看的多。我们就应该这样的写: 

<rule>

<from></from>^/forum/thread/([0-9]+).html?page=([0-9]+)$

<to type="forward"></to>/forum/list.action?id=$1&page=$2

</rule>

    到现在可以看到,项目已经可以使用了,是不是很简单,可能让读者不明白的就是一些正则表达式的配置,那么我先简单的介绍一下常用的正规表示式:

. 匹配除换行符以外的任意字符      \w匹配字母或数字或下划线或汉字

\s匹配任意的空白符                \d匹配数字

\b匹配单词的开始或结束            ^匹配字符串的开始

$匹配字符串的结束

常用的&要用 &来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward"

 另一个常用的规则就是连接外部的网站。就要用到<to type="redirect">

 Java代码

<rule>     

    <from>^/rss/yahoo\.html$</from>

    <to type="redirect">http://add.my.yahoo.com/rss?url= http://feed.feedsky.com/ MySiteFeed

</to> 

</rule>

 常用的也就这两种方式(forwardredirect)。

这篇文章就写到这里了,希望能给大家带来方便,希望大家以后多多来此博客抢沙发。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想用 Python 编写 Web 应用程序,你可以使用多种框架和工具,其中一些流行的选择如下: 1. Django:是一个强大的,高度可扩展的 Web 框架,它提供了丰富的工具和功能来帮助您快速开发 Web 应用程序。 2. Flask:是一个简洁的,轻量级的 Web 框架,它提供了基本的工具来帮助您开发小型 Web 应用程序。 3. Pyramid:是一个功能强大的,通用的 Web 框架,它适用于各种不同类型的 Web 应用程序,包括小型和大型应用程序。 选择框架后,您可以使用 Python 代码和相应框架的 API 来编写 Web 应用程序。此外,您还可以使用数据库(如 SQLite,MySQL 等)来存储和管理数据,以及 JavaScript,HTML 和 CSS 等技术来构建用户界面。 ### 回答2: 使用Python编写Web应用程序,通常需要以下步骤: 1. 选择合适的Web框架:Python有很多流行的Web框架,如Django、Flask、Bottle等。根据项目需求和个人喜好选择一个适合的框架。 2. 安装Python和所选框架:确保安装了最新版本的Python,并使用pip(Python包管理器)安装所选框架。例如,使用命令`pip install Flask`安装Flask框架。 3. 创建项目结构:一般来说,框架提供了项目脚手架工具来生成项目基础结构。可以使用命令行工具创建项目,并在生成的目录中开始编写应用程序。 4. 编写应用程序逻辑:根据需求,编写应用程序的视图函数、模型、路由和业务逻辑。框架提供了相应的API和约定以简开发过程。 5. 配置应用程序:根据项目需求,配置应用程序的数据库连接、静态文件路径、模板引擎等。可以在配置文件中设置,或直接在应用程序代码中进行配置。 6. 创建路由:使用框架提供的路由功能,将URL与对应的视图函数关联起来。例如,使用Flask的路由装饰器将URL和视图函数绑定。 7. 创建HTML模板:使用框架提供的模板引擎(如Jinja2),编写HTML模板,用于渲染动态内容。 8. 运行应用程序:在开发环境中,使用框架提供的命令行工具运行应用程序。例如,使用Flask框架的开发服务器命令`flask run`运行应用程序。 9. 测试和调试:使用框架提供的测试工具进行单元测试和集成测试。在开发过程中,使用调试工具(如调试器)定位和解决问题。 10. 部署应用程序:将应用程序部署到生产环境中。这包括将应用程序部署到服务器,并配置相关的Web服务器(如Nginx、Apache)和数据库。 总的来说,使用Python编写Web应用程序需要选择合适的框架,并根据框架提供的API和约定进行开发。结合适当的配置和路由设置,以及编写HTML模板和测试代码,可以编写出高效、可扩展的Web应用程序。最后,通过部署到生产环境中,使应用程序对外提供服务。 ### 回答3: 用Python编写Web应用程序的方法有很多种,以下是一种常见的方法: 1. 选择合适的Web框架:Python有许多流行的Web框架可供选择,例如Django、Flask和Tornado等。选择一个适合自己需求的框架是第一步。 2. 安装和配置框架:根据选择的框架,按照框架的官方文档进行安装和配置。通常需要使用pip工具进行安装,安装完成后,按照框架的指导进行配置。 3. 编写视图函数:视图函数是Web应用程序处理请求的主要部分。在框架中,可以通过编写函数或者类中的方法来处理请求。根据具体需求,编写不同的视图函数来实现不同的功能。 4. 配置路由:路由的作用是将请求的URL与对应的视图函数进行绑定。在框架中,一般通过在配置文件中设置路由规则来实现,根据URL的不同,将请求分发到相应的视图函数。 5. 编写模板:模板是用来生成动态网页内容的一种方式。在视图函数中,可以使用模板引擎来渲染模板。在模板中,可以插入动态数据,从而生成最终的网页内容。 6. 连接数据库:如果需要在Web应用程序中使用数据库,可以通过框架提供的ORM(对象关系映射)工具进行数据库操作。根据具体需要,选择合适的数据库,并进行连接和配置。 7. 启动服务器:在代码编写完成后,通过框架提供的命令行工具,启动Web应用程序的服务器。一般可以使用命令行输入"python app.py"等方式启动服务器。 8. 测试和部署:在本地环境中进行测试,确保Web应用程序的功能正常。如果一切正常,可以考虑将应用程序部署到线上服务器中,让更多的用户可以访问和使用。 以上是使用Python编写Web应用程序的基本步骤,具体的实现方式和细节会随着不同的框架而有所不同。但总体而言,掌握了基本的编写原理和流程,就能够使用Python编写简单而高效的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值