- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是如何隐藏 URL 中显示的 zul 扩展名?
出于安全原因,我们不想展示我们的应用程序中使用的技术。
网址:
http://localhost:8080/warname/index.zul
我希望网址看起来像这样:
http://localhost:8080/warname/index
或
http://localhost:8080/warname/
表示index.zul或.zul需要从url中隐藏。
ZK Version: 8.0.0
Server: wildfly-8.2.1.Final
jdk: jdk1.8.0_51
Eclipse Version: Neon.2 Release (4.6.2)
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4">
<display-name>test4</display-name>
<listener>
<description>
Used to cleanup when a session is destroyed</description>
<display-name>ZK Session cleaner</display-name>
<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
</listener>
<servlet>
<description>
The ZK loader for ZUML pages</description>
<servlet-name>zkLoader</servlet-name>
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
<init-param>
<param-name>update-uri</param-name>
<param-value>/zkau</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<description>
The asynchronous update engine for ZK</description>
<servlet-name>auEngine</servlet-name>
<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zul</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>auEngine</servlet-name>
<url-pattern>/zkau/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.zul</welcome-file>
</welcome-file-list>
</web-app>
最佳答案
我只能遵循Bilbo Baggins的建议:
change the url pattern
有很多方法可以做到这一点,这里只是一些......
如果 URL 中没有给出文件名,这将显示任何文件夹的 index.zul。
使用 HTTP 服务器,例如结合使用 Apache httpd 和 mod_rewrite
如果您想将内容保存在应用程序服务器中,Servlet 规范提供了一个方法 RequestDispatcher.forward()您可以在 servlet 过滤器或 servlet 中使用它
与此类似question/answer您可以对 zul 文件执行相同的操作。
package your.package;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class NoZulForwardingFilter implements Filter {
private static final String ZUL_VIEW_ROOT_PATH = "/pages";
private static final String ZUL_VIEW_SUFFIX = ".zul";
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = ((HttpServletRequest) request);
String servletPath = httpServletRequest.getServletPath();
//Only process the paths starting with /pages, so as other requests get unprocessed.
//You can register the filter itself for /pages/* only, too
if (servletPath.startsWith(ZUL_VIEW_ROOT_PATH)
&& !servletPath.contains(ZUL_VIEW_SUFFIX)) {
request.getRequestDispatcher(servletPath.concat(ZUL_VIEW_SUFFIX))
.forward(request, response);
} else {
chain.doFilter(httpServletRequest, response);
}
}
@Override
public void destroy() { }
}
并在 web.xml 中配置它
<filter>
<filter-name>nozulforwarding</filter-name>
<filter-class>your.package.NoZulForwardingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>nozulforwarding</filter-name>
<url-pattern>/pages/*</url-pattern>
</filter-mapping>
注意:这些技术都不会隐藏您的应用程序是用 ZK 编写的,因为它总是下载包含 ZK 客户端 API 的特定 JavaScript 文件。即使隐藏了部分 URL,这也会让任何人都清楚地知道您正在使用 ZK。
关于java - 如何隐藏 zkoss URL 中显示的 zul 扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48517139/
我正在集成 jquery 和 zk 项目。我的目标是将值从 js/jquery 端传递到 java 端,但徒劳无功。这是我引用的代码:use zAu to send data from client
我从 InteliJ IDEA 中的 EventListener 进行调试并获取一些变量,例如 _val、_oldVal、_selbk、_start、_name ...但我不知道如何获取这些变量。这是
我有带有几个垂直选项卡的选项卡框。我需要在一些选项卡之间添加标签(或者只是使用此标签创建禁用选项卡)。我怎样才能做到这一点? 最佳答案 感谢康斯坦丁·V·萨利霍夫。这是解决方案 关于java - z
本文整理了Java中org.zkoss.xml.XMLs类的一些代码示例,展示了XMLs类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目
本文整理了Java中org.zkoss.xel.XelContext类的一些代码示例,展示了XelContext类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven
本文整理了Java中org.zkoss.zsoup.Zsoup类的一些代码示例,展示了Zsoup类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些
public class page extends GenericForwardComposer{ Combobox searchBox; private Grid S
我想从服务器端在新标签页中打开 url。我正在使用这条线: Executions.getCurrent().sendRedirect(url, "_blank"); 这对 Firefox 非常有效,但
我有一个 zk 标签,其值为:-1,2,3,4,21,211,4321,656,1233,678,342由于这个原因,它不能很好地包裹,所以我试过了 detailval.setStyle("word-
我正在按下每个单词的按键,我需要在组合框中进行自动建议。我的代码如下: GenericForwardComposer: public class test exten
我正在使用 ZKOSS MVVM。 所以在 View 中我使用了一个列表框,它被绑定(bind)(@load)到 ViewModel 中的一个列表模型对象。 如果我更改模型,我从文档中了解的内容 1:
我在 ZK 7.0.0 中开发了一个具有自己的模具、样式等的组件。该组件应该构建在一个 jar 文件中,我可以将其复制到 WEB-INF/lib 文件夹中以替换标准 ZK 组件。 文件夹结构: 源代码
在下面的代码中,选项卡字体(文本)颜色发生变化,但在焦点上它没有。当我取消选中的选项卡时,它工作正常。任何人都可以指导我如何更改类(class)焦点上的文本颜色吗? .redtab .z-ta
我是 Zkoss 的新手,我需要为我的页面创建全新的 css 主题。在文档中我发现可以通过覆盖默认的 z 类来完成。所以我创建了自己的类,如 .z-datebox-inp 等(根据 styleguid
updated java public class main extends GenericComposer{ /** * */ private static final long
本文整理了Java中org.zkoss.xel.XelContext.removeAttribute()方法的一些代码示例,展示了XelContext.removeAttribute()的具体用法。这
本文整理了Java中org.zkoss.xml.XMLs.escapeXML()方法的一些代码示例,展示了XMLs.escapeXML()的具体用法。这些代码示例主要来源于Github/Stackov
本文整理了Java中org.zkoss.xml.XMLs.encodeAttribute()方法的一些代码示例,展示了XMLs.encodeAttribute()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中org.zkoss.xml.XMLs.encodeText()方法的一些代码示例,展示了XMLs.encodeText()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.zkoss.xel.XelContext.getVariableResolver()方法的一些代码示例,展示了XelContext.getVariableResolver(
我是一名优秀的程序员,十分优秀!