本文為博主原創,未經允許不得轉載:
項目啟動成功,進入首頁的方式,我們往往在web.xml 中通過以下的方式默認進入跳轉首頁,
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
在項目啟動成功之后,在瀏覽器輸入:http://localhost:端口號/項目名稱,回車之后就可以進入index.jsp頁面。
另外一種方法通過后代代碼實現跳轉首頁的方式是在index.jsp中進行重定向,進入后代處理,然后再跳轉首頁,
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body>
<!--通過頁面重定向進行,跳轉到指定的頁面--> <% response.sendRedirect(request.getContextPath()+"/jsp/index.jsp"); %>
<!--兩種方式只能選擇一種-->
<!--通過頁面重定向進行java后台代碼處理,根據后代處理進行跳轉 -->
<%
response.sendRedirect(request.getContextPath()+"/login"); %>
</body> </html>
第三種方法是在這邊進行特殊批注的,在項目中,也多用這種方式進行實現,即通過過濾器方式進入首頁的方式:
其處理的邏輯為獲取URL,並對URL進行判斷,判斷URL攜帶的參數,如果URL攜帶參數正確,其可以進行正常的處理和響應,
當沒有攜帶對應的參數時,則進入首頁。
將代碼展示如下,啟動默認跳轉的為登錄頁:
package com.test.filter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import com.test.modules.mobile.UserInfo; import com.test.utils.SystemConstant; public class SystemFilter implements Filter { private static final List<String> STRINGS = new ArrayList<String>(); //此處可以定義加載時要過濾的資源類型 static { STRINGS.add("jsp"); STRINGS.add("js"); STRINGS.add("css"); STRINGS.add("images"); STRINGS.add("bmp"); STRINGS.add("gif"); STRINGS.add("jpg"); STRINGS.add("jpeg"); STRINGS.add("png"); } @Override public void destroy() { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; //通過過濾器實現編碼方式的控制 request.setCharacterEncoding(SystemConstant.UTF8_CODE); response.setCharacterEncoding(SystemConstant.UTF8_CODE); String url = request.getRequestURI(); String path = request.getContextPath(); UserInfo userInfo = (UserInfo) request.getSession().getAttribute("loginUser"); //此處用來判斷瀏覽器緩存用戶數據是否存在 if (!url.contains("login")&& (!isAuth(url) || url.contains(".json"))) { if (null == userInfo || StringUtils.isBlank(userInfo.getLoginName())) { String tip = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><script language='javascript'>window.parent.location.href='" + path + "/login'</script></head><body></body></html>"; //此處用來后台請求跳轉的路徑,當請求到此處時,就會進入對應的后台路徑中進行請求 PrintWriter outprint = response.getWriter(); outprint.write(tip); outprint.flush(); return; } else { chain.doFilter(request, response); } } else { chain.doFilter(request, response); } } @Override public void init(FilterConfig filterConfig) throws ServletException {} public boolean isAuth(String url) { for (String string : STRINGS) { if (url.contains(string)) { return true; } } return false; } }
同時,在web.xml文件中配置過濾器:
<filter> <filter-name>SystemFilter</filter-name> <filter-class>com.test.filter.SystemFilter</filter-class> </filter> <filter-mapping> <filter-name>SystemFilter</filter-name> <url-pattern>*</url-pattern> </filter-mapping>
第三種方式,其實就是對過濾器的應用及理解,過濾器用的地方很多,在此處記錄一下,所謂積少成多。。
加油,哈哈哈