Java Web中是否有任何方式使得每當請求到達時調用特定的JSP頁面?在PHP中,我使用.htaccess文件將所有請求重定向到同一頁面。以下是我的代碼在.htaccess中使用PHP應用程序:Java將所有頁面請求重定向到相同的JSP文件
RewriteEngine on
RewriteRule ^(.*)$ bootstrap.php [L]
是否.htaccess文件也適用於Java的?在java中這樣做的正確方法是什麼?
Java Web中是否有任何方式使得每當請求到達時調用特定的JSP頁面?在PHP中,我使用.htaccess文件將所有請求重定向到同一頁面。以下是我的代碼在.htaccess中使用PHP應用程序:Java將所有頁面請求重定向到相同的JSP文件
RewriteEngine on
RewriteRule ^(.*)$ bootstrap.php [L]
是否.htaccess文件也適用於Java的?在java中這樣做的正確方法是什麼?
使任何請求由servlet處理或filter.You可以做你的web.xml下面您應該配置一個servlet或URL模式作爲通配符過濾
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>com.app.ActionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
在您的ActionFilter類實現了javax.servlet.Filter,並且在您的doFilter方法中,只需將響應重定向到您的jsp。
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
RequestDispatcher requestDispatcher = req.getRequestDispatcher("myJsp.jsp");
try {
requestDispatcher.forward(req, res);
}
catch (ServletException e) {
logger.error("Exception occurred:", e);
}
catch (IOException e) {
logger.error("Exception occurred:", e);
}
}
您可以根據修改該法的親語法處理您的項目需要
但是這種方法會再次創建另一個請求。引用@ asim-shaq說:「其實我不想將位置標題發送給客戶端。」 –
如果是這樣,您必須起訴請求調度員。我正在修改代碼 –
請求調度員對相同的請求工作,而位置標頭不會發送到客戶端 –
.htaccess文件僅適用於Apache HTTP Server。對於JSP,您需要在動態Web項目的web.xml中配置url模式(即<url-pattern>/*</url-pattern>
)。
我正在使用eclipse kepler「動態Web應用程序項目」。你能確切地告訴我應該在哪裏配置?項目中沒有看到任何web.xml文件。 –
WEB-INF/web.xml。確保在創建項目之前檢查創建部署描述符複選框。如果你沒有檢查它,xml文件將不會出現在那裏。 –
我認爲你是在JSP – SpringLearner
尋找response.sendRedirect是()其實我不想發送位置頭球客戶端。只需要爲任何請求URL調用相同的JSP頁面。 –
requestdispatcher.forward(...)不會更改URL – SpringLearner