本文共 3615 字,大约阅读时间需要 12 分钟。
????JavaWeb????????????????????????????????????????????????????????????????????????????????????????
????
???????????????????RequestDispatcher#forward()???????RequestDispatcher#include()???????????
?????????????????/index.jsp/user/**.jsp/*????????
???????????@WebFilter("/*")public class CharacterFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; if (request.getMethod().equalsIgnoreCase("post")) { request.setCharacterEncoding("utf-8"); } response.setContentType("text/html;charset=utf-8"); chain.doFilter(request, response); }} @WebFilter("/*")public class SensitiveWordsFilter implements Filter { private List sensitiveWords = new ArrayList<>(); @Override public void init(FilterConfig config) throws ServletException { try { ServletContext servletContext = config.getServletContext(); String path = servletContext.getRealPath("/WEB-INF/classes/sensitiveWords.txt"); BufferedReader br = new BufferedReader(new FileReader(path)); while ((line = br.readLine()) != null) { sensitiveWords.add(line); } br.close(); } catch (Exception e) { e.printStackTrace(); } } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { ServletRequest proxyRequest = new Proxy(req) { @Override public String getParameter() { String value = super.getParameter(); if (value != null) { for (String word : sensitiveWords) { if (value.contains(word)) { value = value.replaceAll(word, "***"); } } } return value; } }; chain.doFilter(proxyRequest, resp); }} ????JavaWeb???????????Web????????????????????Servlet??8?????????????????
ServletContext?????????session???????request???????@WebListenerpublic class ContextLoaderListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent event) { ServletContext servletContext = event.getServletContext(); String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation"); String realPath = servletContext.getRealPath(contextConfigLocation); try { FileInputStream fis = new FileInputStream(realPath); System.out.println("ServletContext????????????" + realPath); } catch (IOException e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent event) { System.out.println("ServletContext??????"); }} ????????????????????JavaWeb???????????????
转载地址:http://uim.baihongyu.com/