zoukankan      html  css  js  c++  java
  • springMVC学习之url重写:urlrewrite with tuckey UrlRewriteFilter

    在开发网站时地址栏的一些信息是我们不希望让客户看到,所以在开发时候就会涉及到url重写的问题。

    下面介绍一种常用的url地址重写的方法。

    1.利用maven下载相关jar文件,pom文件配置如下:

    <dependency>
        <groupId>org.tuckey</groupId>
        <artifactId>urlrewritefilter</artifactId>
        <version>4.0.4</version>
    </dependency>

    2.在web.xml中配置UrlRewriteFilter,配置如下:

    <filter>
      <filter-name>UrlRewriteFilter</filter-name>
      <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
      <!-- 因为urlrewrite.xml只能在web-inf下,所以我们这里可以省略掉urlrewrite.xml的路径配置。 -->
      <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.添加urlrewirte.xml文件,将文件放在WEB-INF目录下(貌似该文件只能放在WEB-INF下)。配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN" "\urlrewrite3.2.dtd">
    <urlrewrite>
      <rule>
        <note>重写loign.jsp成login.html</note>
        <!-- 对应controller中redireact的路径 -->
        <from>login.html</from>
        <!-- 对应实际工程中jsp文件 -->
        <to type="forward">/login.jsp</to>
      </rule>
    </urlrewrite>

    4.程序controller中的返回内容要与<from>中的内容一致,比如下列代码片返回值得要与urlrewrite中的一致:

    @RequestMapping(value="login.do")
    public String login(HttpServletRequest request, HttpServletResponse response, Role role) throws Exception {
    if (userService.selectRoleByNameAndPassword(role)) {
        return "index";
      } else {
        return "redirect:login.html";
      }
    }

  • 相关阅读:
    mysql 在orderby和limit混合使用时重复数据问题
    springboot启动类 注解
    redis RDB和AOF两种持久化的区别
    C#解析逻辑字符串【x>y&&a>b||p=r】
    删除例如联想笔记本系统隐藏分区
    通过贝叶斯算法实现自动识别类别
    将可执行exe文件注册成windows服务
    Windows10中的IIS10安装php manager和IIS URL Rewrite 2.0组件的方法
    添加钩子监听全局鼠标或键盘事件
    C# DateTime.Now和DateTime.UtcNow的区别
  • 原文地址:https://www.cnblogs.com/michaelShao/p/5488724.html
Copyright © 2011-2022 走看看