如何在浏览器地址栏上隐藏/更改jsp扩展名?

时间:2012-03-03 05:43:37

标签: jsp tomcat nginx

我使用nginx和tomcat来为我用jsp编写的网站提供服务。如何在浏览器地址栏上隐藏/更改jsp扩展名?

3 个答案:

答案 0 :(得分:3)

您可以在Web应用程序的web.xml文件中映射每个JSP。

<servlet>   
               <servlet-name>myTest</servlet-name>
               <jsp-file>/testing.jsp</jsp-file>
</servlet>
<servlet-mapping>
                <servlet-name>myTest</servlet-name>
                <url-pattern>/test</url-pattern>
</servlet-mapping> 

使用此示例映射,您只需将“/ test”附加到您的Web应用程序的URL。

答案 1 :(得分:2)

假设你想现在使用“myExt”。您必须编写一个映射到* .myExt的Filter / Servlet。这个servlet将拦截所有为“.myExt”发出的请求,并在内部将其转发给“.jsp”

以下内容进入web.xml

<servlet>
    <servlet-name>MyExt Servlet</servlet-name>
    <servlet-class>com.MyExtServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MyExt Servlet</servlet-name>
    <url-pattern>*.myExt</url-pattern>
</servlet-mapping>

以下内容进入Servlet

public class MyExtServlet extends HttpServlet {

   public void doGet(HttpServletRequest req, HttpServletResponse rsp) {
      // put your custom code here. I am just to replace the ext
      String url = req.getServletPath();
      Rsp.getRequestDispatcher(url).forward(req,rsp);
   }
}

我刚刚编写代码。因此,我对它的任何编译问题表示道歉,但它应该让你知道可以做些什么。

答案 2 :(得分:-2)

由于在其他答案中尚未提及,我会说:首先,你不应该有指向JSP的URL。使用像Stripes或Spring MVC这样的MVC框架,

  • 允许Java操作处理表示逻辑(验证,错误处理等),委托业务层执行业务逻辑,并准备要显示的数据
  • 调度到JSP以生成HTML标记

在JSP中使用Java代码是不安全的,不可维护的,并且促进了copy'n粘贴编程而不是简洁的设计。