web工程设置项目的默认访问路径和登录拦截
来源:互联网 发布:新浪股票数据api 编辑:程序博客网 时间:2024/05/16 01:00
在上一篇文章中讲到了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{@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic 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; } }@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}
四、最后验证拦截器设置,直接用我们之前写的user业务请求来访问:http://localhost:9690/test/index.do
拦截成功!
阅读全文
1 0
- web工程设置项目的默认访问路径和登录拦截
- .NET 打开sln工程时 此项目的默认Web访问模式设置为文件共享
- eclipse设置或修改web项目的访问根路径
- 为什么创建web Form时弹出“此项目的默认web访问模式设置为文件共享,但无法从路径.......
- java web 工程名后面设置访问默认url
- 此项目的默认Web访问模式设置为文件共享, 但是无法从路径(此为转贴,时间问题)
- 此项目的默认Web访问模式设置为文件共享, 但是无法从路径(此为转贴,时间问题)
- idea配置application context(web项目的默认访问路径)
- tomcat 修改默认访问项目名称和项目发布路径
- 设置Tomcat默认访问路径
- thinkphp设置默认访问路径
- 设置tomcat 默认访问路径
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- HDU
- 华商Facebook遭遇网络诈骗
- unity与Android 原生
- handler ,Looper的机制,分析源码(二)消息的收发
- 关于python 排序(与java排序)
- web工程设置项目的默认访问路径和登录拦截
- [BZOJ]4807: 車 组合数学+高精度
- 5、标准I/O库
- Qt 遍历目录并删除目录下所有文件
- .net 简易数据库操作框架1.4
- Android Studio如何导入android源码
- SBO格式化搜索取界面值方法和取日期值方法
- Android Bitmap精确缩放到指定大小
- Python打印list中的所有元素(list嵌套)