Filter实现用户名验证
2024-10-19 00:32:12
①:使用Filter,判断用户名是否为空,为空的话返回登录画面。 1,web.xml:
1.<filter>
2. <filter-name>SecurityServlet</filter-name>
3. <filter-class>com.msm2.filter.MyFilter</filter-class>
4. </filter>
5.
6. <filter-mapping>
7. <filter-name>SecurityServlet</filter-name>
8. <url-pattern>/*</url-pattern>
9. </filter-mapping> 2,spring-mvc.xml:
1<bean id="loginController" class="com.msm2.controller.LoginController" />
2.<bean id="mainController" class="com.msm2.controller.MainController" />
3.<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
4. <property name="mappings">
5. <props>
6. <prop key="login">loginController</prop>
7. <prop key="userLogin">mainController</prop>
8. </props>
9. </property>
10.</bean> package com.msm2.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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger; public class MyFilter extends HttpServlet implements Filter { private static final long serialVersionUID = 1L;
private static final Logger LOGGER = Logger.getLogger(MyFilter.class);
String encode = null; @Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException { arg0.setCharacterEncoding(encode);
arg1.setCharacterEncoding(encode); HttpServletRequest request = (HttpServletRequest) arg0;
HttpServletResponse response = (HttpServletResponse) arg1;
HttpSession session = request.getSession(true); String url=request.getRequestURI();
if (url.indexOf("login")<0){
// 不是login画面
System.out.println("不是login画面");
if (request.getParameter("userId") ==null || "".equals(request.getParameter("userId"))) {
// 不是login画面并且用户名为null
System.out.println("不是login画面并且用户名为null");
response.sendRedirect(request.getContextPath() + "/login");
} else {
System.out.println("不是login画面但是用户名不为null");
// 不是login画面但是用户名不为null
arg2.doFilter(arg0, arg1);
} } else {
// login画面
System.out.println("login画面");
arg2.doFilter(arg0, arg1);
} @Override
public void init(FilterConfig arg0) throws ServletException {
encode = "utf-8";
} } 写的虽然简单,但是初步实现了目标,以后对Filter理解的更深,再进一步记录。
最新文章
- 545C. Woodcutters
- ligerui grid行编辑示例
- Ajax入门小例子
- Android ActionBar中的下拉菜单
- 纯CSS3实现宽屏二级下拉菜单
- ASE中的主要数据库
- 日本語N1文法まとめ
- 201521123063 《JAVA程序设计》 第5周学习总结
- Answers to ";Why are my jobs not running?";
- 一条命令解决mac版本python IDLE无法输入中文问题
- Ehcache入门经典:第一篇
- ES6中的类和继承
- 剑指offer(17)层次遍历树
- iOS-关于缓存【SDImageCache】Image,一直刷新UIImageView内存一直增加问题
- mysql基础讲解
- uva11983扫描线k次覆盖
- (转)JPA &; Restful
- Rxbus的使用
- mysql开启远程连接及本地连接
- 手机屏幕左下角显示Fastboot mode是什么情况?
热门文章
- November 3rd Week 45th Thursday 2016
- Linux下Source Insight的安装和汉化
- [LeetCode] Lowest Common Ancestor of a Binary Tree 二叉树的最小共同父节点
- 红豆电信JS
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
- CSS:position:fixed使用(转)
- Git中如何利用生成SSH个人公钥访问git仓库
- OC与JavaScript的交互
- Beta版本冲刺第一天
- 无限制使用ppt转pdf功能