web工程设置项目的默认访问路径和登录拦截
2017-09-22 16:22
483 查看
在上一篇文章中讲到了maven项目的springmvc和mybatis整合,下面我们讲两个小点:web项目访问的默认页面设置和登录拦截
1.web项目访问的默认页面
一、首先建一个在webapp下的页面login.jsp二、login.jsp页面内容较为简单:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!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>test</title> </head> <body> <h2>欢迎登陆</h2> <form action=""> 登录名:<input name="name" id="name"> 密码:<input name="pwd" id="pwd"> <button>登陆</button> </form> </body>
三、然后在web.xml中设置欢迎页即可:
<!-- 设置默认的访问首页 --> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list>
四、访问截图:(ip+端口+项目名)即可访问
2.登录拦截器的设置
一、先建立一个filter包和loginFilter类:
二、在写LoginFilter之前我们先确认项目中有没有添加javax.servlet包,如果没有需要在pom.xml加入该jar包
<!-- 添加servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency>
三、然后我们编写LoginFilter类:
package com.test.filter; import java.io.IOException; 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 javax.servlet.http.HttpSession; public class LoginFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 判断是否是http请求 if (!(servletRequest instanceof HttpServletRequest) || !(servletResponse instanceof HttpServletResponse)) { throw new ServletException( "OncePerRequestFilter just supports HTTP requests"); } // 获得在下面代码中要用的request,response,session对象 HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; HttpSession session = httpRequest.getSession(true); String[] strs = { "loginpage", "login", "logout", "static" }; // 路径中包含这些字符串的,可以不用登录直接访问 StringBuffer url = httpRequest.getRequestURL(); /** * 过滤掉根目录 */ String path = httpRequest.getContextPath(); String protAndPath = httpRequest.getServerPort() == 80 ? "" : ":" + httpRequest.getServerPort(); String basePath = httpRequest.getScheme() + "://" + httpRequest.getServerName() + protAndPath + path + "/"; if (basePath.equalsIgnoreCase(url.toString())) { filterChain.doFilter(servletRequest, servletResponse); return; } // 特殊用途的路径可以直接访问 if (strs != null && strs.length > 0) { for (String str : strs) { if (url.indexOf(str) >= 0) { filterChain.doFilter(servletRequest, servletResponse); return; } } } // 从session中获取用户信息 String loginInfo = (String) session.getAttribute("username"); if (null != loginInfo && !"".equals(loginInfo)) { // 用户存在继续访问此 filterChain.doFilter(servletRequest, servletResponse); } else { // 用户不存在返回登录 String returnUrl = httpRequest.getContextPath(); httpRequest.setCharacterEncoding("UTF-8"); httpResponse.setContentType("text/html; charset=UTF-8"); // 转码 httpResponse .getWriter() .println( "<script language=\"javascript\">alert(\"您还没有登录,请先登录!\");if(window.opener==null){window.top.location.href=\"" + returnUrl + "\";}else{window.opener.top.location.href=\"" + returnUrl + "\";window.close();}</script>"); return; } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
四、最后验证拦截器设置,直接用我们之前写的user业务请求来访问:http://localhost:9690/test/index.do
拦截成功!
相关文章推荐
- eclipse设置或修改web项目的访问根路径
- 打开ASP.NET Web项目时,此项目的默认Web访问模式设置为文件共享, 但是无法从路径“...”打开“...”处的项目文件夹。返回的错误是: 无法打开Web项目“”。返回的错误是: 无法打开Web项目“...”。文件路径“...”怀URL“...”不
- idea配置application context(web项目的默认访问路径)
- Java Web 设置默认首页 (也就是http://域名/项目名称/)访问的页面
- eclipse设置或修改web项目的访问根路径
- 设置java web工程中默认访问首页的几种方式
- 打开ASP.NET Web项目时,此项目的默认Web访问模式设置为文件共享, 但是无法从路径“...”打开“...”处的项目文件夹。返回的错误是: 无法打开Web项目“”。返回的错误是: 无法打开Web项目“...”。文件路径“...”怀URL“...”不
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- IDEA 修改web项目的访问路径 设置虚拟路径
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- tomcat服务器修改默认的访问项目路径,设置完成默认路径之后无法生效
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- java web项目中的拦截未登录用户的问题
- VS2010 项目属性的默认包含路径设置方法
- Web项目中访问路径问题
- 工程web-inf 下文件,路径访问