`

JSP URL重写.

阅读更多

这段时间一直都在研究jsp生成静态页面的方法,在网上找了很多资料,也有不少朋友给我提出解决方案,确实解决了不少的问题,但是这样做有点麻烦。其实我并不是想减轻服务器的压力,我们要做的不是门户网站,访问量没那么大,所以不用担心服务器的承受能力。只是希望搜索引擎能够搜索到我们的页面,只要能达到目的,用什么样的方式都可以。

在网上看到了一则URL重写的贴子,感觉比较适合我这样的情况,应用起来简单。然后自己试着写了一个例子,居然成功了,而在Struts里不知道怎么实现,实现转发的时候好象没什么用了。*.do好象不能实现映射
以下是相关代码,若有不正之处,欢迎大家指正!
首先要去下载一个urlrewritefilter-2.6.zip,然后把它解压到WEB-INF下,然后配置一下web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  
<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>
  
</filter-mapping>
  
<servlet>
    
<servlet-name>action</servlet-name>
    
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    
<init-param>
      
<param-name>config</param-name>
      
<param-value>/WEB-INF/struts-config.xml</param-value>
    
</init-param>
    
<init-param>
      
<param-name>debug</param-name>
      
<param-value>3</param-value>
    
</init-param>
    
<init-param>
      
<param-name>detail</param-name>
      
<param-value>3</param-value>
    
</init-param>
    
<load-on-startup>0</load-on-startup>
  
</servlet>
  
<servlet-mapping>
    
<servlet-name>action</servlet-name>
    
<url-pattern>*.do</url-pattern>
  
</servlet-mapping>
</web-app>


然后再随便建立几个jsp页面,如:
MyJsp.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<base href="<%=basePath%>">
    
    
<title>My JSP 'MyJsp.jsp' starting page</title>
    
    
<meta http-equiv="pragma" content="no-cache">
    
<meta http-equiv="cache-control" content="no-cache">
    
<meta http-equiv="expires" content="0">    
    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
<meta http-equiv="description" content="This is my page">
    
<!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    
-->

  
</head>
  
  
<body>
  
<% 
      
String a = request.getParameter("id");
  
%>
    
<%=basePath %> <br>
    
<%
        
if(a.equals("123"))
        {
            out.println(
"哈哈");
        }
        
else
        {
            out.println(
"再试一次!");
        }
     
%>
  
</body></html>


接着在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"
>

<!--

    Configuration file for UrlRewriteFilter
    http://tuckey.org/urlrewrite/

-->
<urlrewrite>

    
<rule>
        
<note>
            The rule means that requests to /test/status/ will be redirected to /rewrite-status
            the url will be rewritten.
        
</note>
        
<from>/test/status/</from>
        
<to type="redirect">%{context-path}/rewrite-status</to>
    
</rule>


    
<outbound-rule>
        
<note>
            The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
            the url /rewrite-status will be rewritten to /test/status/.

            The above rule and this outbound-rule means that end users should never see the
            url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
            in your pages.
        
</note>
        
<from>/rewrite-status</from>
        
<to>/test/status/</to>
    
</outbound-rule>
        
<rule>
            
<from>/test/([0-9]+)</from>
            
<to>/MyJsp.jsp?id=$1</to>
        
</rule>
</urlrewrite>


启动服务器,然后输入http://localhost:8080/test/123 ,那么就可以显示了,而实际上读取的路径是http://localhost:8080/MyJsp.jsp?id=123

 

 

分享到:
评论

相关推荐

    jsp 动态转静态 URL重写

    本篇文章将详细探讨“jsp动态转静态URL重写”的概念、重要性以及实现方法。 一、动态URL与静态URL的区别 1. 动态URL:动态URL通常包含“?”、“=”、"&"等特殊字符,用于传递参数给服务器执行相应的动态脚本,例如...

    JSP项目的URL重写

    **JSP项目的URL重写**是一种优化Web应用的技术,它允许我们将复杂的动态URL转换为更加友好、可读性更强的静态URL。这不仅有助于提升用户体验,也有利于搜索引擎优化(SEO)。在本项目中,我们使用了`...

    jsp的一个url重写

    在探讨“jsp的一个url重写”这一主题时,我们深入解析了达内郑州中心老师分享的关于URL重写的实现方式,这不仅展示了JSP技术在动态网页开发中的灵活性,也揭示了URL重写在提高用户体验、优化SEO以及简化URL结构方面...

    java中的url重写

    Java 中的 URL 重写 Java 中的 URL 重写是一种常用的技术,它可以将原始的 URL 转换为另一个 URL,以便达到特定的目的。例如,隐藏真实的 URL、实现 URL 的加密、实现 URL 的重定向等。在 Java 中,有多种方式可以...

    jsp的URL重写(内附说明)

    **JSP URL重写**是Web开发中一种重要的技术,主要应用于提高网站的SEO(搜索引擎优化)和用户体验。在JSP中,通过URL重写,我们可以将动态的、包含参数的URL转换为静态的、更易读的形式,使得URL看起来像普通的HTML...

    urlrewrite重写URL伪静态请求路径.

    标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...

    jakarta.servlet.jsp.jstl-api-2.0.0.jar

    1. **Core Library**(c:):提供了基本的控制流和数据处理功能,如条件语句(if, choose, when, otherwise)、迭代(forEach, forTokens)、URL重写(redirect, url)等。 2. **Format/Internationalization ...

    tomcat服务器以url重写的方式除去两个opencms

    "Tomcat服务器以URL重写的方式除去两个opencms"的主题聚焦于如何在OpenCms平台上通过URL重写技术来改善网站的URL结构,以提高其可读性并促进搜索引擎的抓取。OpenCms是一款开源的内容管理系统,它允许开发者创建、...

    URL地址重写项目

    伪静态URL重写实际就是以静态地址(如:http://127.0.0.1:8080/pro/index.html)访问地态网页的方法(如:http://127.0.0.1:8080/pro/index.jsp)。 这个项目里有两个示例 输入...

    Java WEB实现URL重写

    在Java Web开发中,URL重写是一种常见的技术,它能够帮助我们优化应用程序的用户体验和搜索引擎优化(SEO)。URL重写的主要目的是将复杂的、带有多个参数的URL转化为更加友好、易于理解的形式。这样的URL更容易被...

    url重写和禁止某个用户访问(jsp)

    在JSP中,实现URL重写可以借助如Apache的mod_rewrite模块或者使用Java的Filter接口。Filter可以在请求被实际处理之前拦截并修改它。例如,我们可以创建一个Filter,将请求中的参数转换为路径的一部分,然后再将请求...

    网站Url重写成html格式

    网站URL重写是一种技术手段,通常用于优化网站的搜索引擎友好性(SEO)和用户体验。它允许我们将动态的、包含查询参数的URL转换为静态的、更易于理解和记忆的HTML格式。这种技术对于那些基于服务器端脚本语言如PHP、...

    水印图片和URL重写

    在Asp.Net开发中,水印图片和URL重写是两个重要的技术,它们可以提升网站的用户体验和安全性。下面将详细解释这两个概念及其在实际应用中的实现方法。 首先,我们来了解一下水印图片。水印图片是一种在图像上添加半...

    jsp实现URL伪静态.rar

    使用URL重写技术,如Apache的mod_rewrite模块或Tomcat的Context配置,可以将动态请求转换成伪静态形式。在JSP中,我们可能需要结合服务器的配置来实现这一过程。 5. **隐藏Servlet路径** 为了使URL看起来更像静态...

    urlrewritefilter-2.6.zip(URL重写,重命名)

    《URL重写技术详解——基于URLRewriteFilter的实践应用》 在Web开发中,URL重写是一项重要的技术,它能够使我们的网站URL更加简洁、美观,同时也可以隐藏某些敏感信息,提高网站的安全性。本文将围绕...

    java伪静态URL重写的方法

    Java中的伪静态URL重写是一种优化网站SEO(搜索引擎优化)的技术,它允许用户通过静态URL(如:http://127.0.0.1:8080/pro/index.html)来访问动态生成的页面(如:http://127.0.0.1:8080/pro/index.jsp)。...

    伪静态(url重写)

    在IT行业中,伪静态(URL重写)是一种常见的优化网站技术,主要应用于Web开发领域,尤其是对于搜索引擎优化(SEO)有着显著的积极影响。伪静态技术的目的是将动态URL转换为看似静态的URL形式,以提高用户体验并使...

    JAVA URL重写

    ### JAVA URL重写知识点解析 #### 一、实验目的与背景 在进行Web开发时,服务器需要维护客户端的会话状态。通常情况下,这可以通过HTTP协议中的Cookie机制来完成,但在某些场景下(如用户的浏览器禁用了Cookie功能...

    urlrewrite(把jsp变成HTML).(个人总结综合教程,适合新入门的朋友阅读)

    ### URL重写(将JSP转换为HTML):个人总结综合教程 在Web开发中,URL重写是一种常见的技术,用于改善网站的可读性、搜索引擎优化(SEO)以及用户体验。本文将深入探讨如何利用URL重写技术将JSP页面转换为更友好的...

    Java web常用包javax.servlet.jsp.jstl-1.2.1.zip

    1. **核心标签库(Core Tags)**:这是JSTL中最基本的部分,提供了一系列用于控制流程、输出数据、URL重写等操作的标签。例如,`&lt;c:if&gt;`和`&lt;c:choose&gt;`用于条件判断,`&lt;c:forEach&gt;`用于循环遍历,`&lt;c:set&gt;`和`...

Global site tag (gtag.js) - Google Analytics