jsp伪静态化处理
最佳回答
安装说明:1、在IIS的Isapi上添加这个筛选器,筛选器名称 re,可执行文件选择 Rewrite.dll ;2、设置httpd.ini文件RewriteRule /news/(d+).html /jsp/news.jsp?id=$1 [N,I]表示将news.asp?id=95 转换成news/95.html以此类推,如果你有更多的参数,则增加相应的(d+),而后面的id=$1,则增加id=$2,等等。
目前较为普遍的动态网页包括asp,php,jsp,shtml,jhtml,cgi......甚至还有一些自己定义的,比如:aspx,do,index,hello 等等。表现形式为:news.asp?id=95。建议读者通过re_write将其转换成news/95.html,以便于google对改网页的识别。re_write是iis里的一个模块,当需要将news.asp?id=95的映射成news/95.html时,只需设置httpd.ini文件:RewriteRule /new
如果你在处理数据翻页,那么写法是:
More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)
表现形式:More_1_95.html
如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是:
More_3_95.html,以此类推。
不过你需要在httpd.ini文件中增加以下代码:
RewriteRule /More_(d+)_(d+).html /jsp/more.jsp?page=$1&type=$2 [N,I]
如果你的动态程序有多个参数需要传递,那么就增加多个(d+)即可,如下:
RewriteRule /More_(d+)_(d+)_(d+).html /jsp/more.jsp?page=$1&type=$2&type2=$3 [N,I]
翻页处理表现形式是:More_1_95.html
最新回答共有5条回答
-
匿名用户
回复1 jsp本质上是servlet
2 jsp是serlvet 的一种成功应用
3 可以认为jsp 页是组件,而运行页面的服务器如tomcat是容器,它们一起实践了java倡导的组件加容器的软件工程思想
4 由于jsp和servlet纯天然的多线程机制,使得它非常适合做web服务
-
游客
回复Jsp是一种动态网页开发技术,它使用Jsp标签在HTML网页中插入Java代码。标签通常以<%开头,以%>结束。Jsp标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。Jsp本质上是Servlet的一种简易形式,Jsp经编译后就变成了Servlet,是Servlet的扩展。由于jvm只能识别Java类,不能识别Jsp代码,Web容器会将Jsp的代码编译成jvm能够识别的Java类,然后再由Servlet负责响应用户请求。
Servlet是一种服务器端的Java应用程序,它运行于服务器的jvm中,由Web容器加载和管理,用于生成动态Web内容,负责处理客户端请求,能够依靠服务器的支持向浏览器提供显示内容。在数通畅联AEAI DP开发平台的交互机制中,就是通过DispatchServlet来响应浏览器上请求,再调用对应Handler中的prepareDisplay方法,然后查询对应的信息放到PageBean中,最后将PageBean放到request中转发到Jsp页面来显示结果集。
Servlet和Jsp的区别:
Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML中分离开来;而Jsp是Java和HTML组合成一个扩展名为.jsp的文件。Jsp侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式中,Jsp适合充当视图(view)而Servlet适合充当控制器(controller)。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServl
-
夲人出租
回复Servlet的基本概念
首先先来谈谈servlet这个东西,这可以说是Java EE编程的最基本概念之一了。我们都知道,一个Web服务可以概括成下面一个过程:
用户向一个地址发送一个请求服务器接收请求并处理请求服务器向用户返回响应我们可以想到,Servlet这个东西自然是上面过程的抽象,也就是说Servlet应该有一个处理用户请求的方法,这个方法的参数应该是用户发送过来的请求,方法的返回值应该是要传递给用户的响应。实际上Servlet的处理方法和我说的已经非常相似了,只不过响应也是作为一个方法的参数而不是返回值。
为了针对get、post等多种http请求形式,Servlet自然也有多个对应的doGet、doPost等方法,如果想要同时处理以上所有方法,还可以使用service函数来处理用户请求。使用Servlet这一工具,我们就可以随心所欲的定义资源地址,接受并处理用户的请求,然后在返回给用户。
Servlet的缺陷Servlet这个概念的确很美好,但是实际使用的时候,大家就可以感觉到问题了。它仅仅定义了一个简单的方法来处理用户请求。这样做虽然非常易于理解,但是在面对比较复杂的情况,我们用起来就有点力不从心了。
例如最常见的返回HTML页面需求, 用Servlet做的话就非常麻
-
無畏
回复伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
1.从URL结构以及页面名称看,伪静态和静态页面是一样的。伪静态的页面后缀可以是html htm 或者是目录格式
2.伪静态只是改变了URL的表现形式,实际上还是动态页面
3.静态页面可以节省服务器资源,而伪静态严格说是增加服务器资源消耗的
总结,在SEO方面,伪静态和静态页面的功能是相同的,但是伪静态本质上还是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
当然了,说道伪静态,我们就要来说一下不同的服务器程序支持的伪静态也是不同的。并且,不同的建站程序使用的伪静态代码也是不一样的。
下面我们就以著名的建站程序Discuz为例,来说一下。
假如我们在后台开启了伪静态。
这时我们就可以打开右上角的“查看当前的 Rewrite 规则”来查看伪静态规则,然后在打开的页面你选择自己服务器对应的规则就可以啦。
我在这列举两个典型的:
IIS7及以上
2.Apache
3.Nginx
这些都是比较常见的主机。
这些只是我说的也只是皮毛。具体你还是要翻阅相关资料去了解。Discuz是提供规则了的,还有很多程序没有提供,就需要自己去写,去尝试啦。&