`

java自学===Filter类的应用,验证用户

阅读更多

Filter类
package com;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class FilterStation extends HttpServlet implements Filter {
	private FilterConfig filterConfig;

	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChain) throws ServletException, IOException {
		HttpSession session = ((HttpServletRequest) request).getSession();
		response.setCharacterEncoding("gb2312");
		if (session.getAttribute("user") == null) {
			PrintWriter out = response.getWriter();
			out.print("<script language=javascript>alert('您还没有登录!!!');window.location.href='../index.jsp';</script>");
		} else {
			filterChain.doFilter(request, response);
		}
	}

	public void destroy() {
	}
}


登录界面的jsp代码

<%@ page contentType="text/html; charset=gb2312" language="java"
	import="java.sql.*" errorPage=""%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
		<link href="css/style.css" rel="stylesheet" type="text/css">
		<script language="javascript" type="">
function checkEmpty(){
if(document.form.name.value==""){
alert("请输入账号!!!")
document.form.name.focus();
return false;
}
if(document.form.password.value==""){
alert("请输入密码!!!")
document.form.password.focus();
return false;
}
}
</script>

		<title>使用过滤器身份验证</title>
	</head>

	<body>
		<div align="center">
			<form name="form" method="post" action="result.jsp"
				onSubmit="checkEmpty()">
				<table width="419" height="134" border="0" cellpadding="0"
					cellspacing="0">
					<tr>
						<td>
							<img src="images/top.jpg" width="419" height="134">
						</td>
					</tr>
				</table>
				<table width="419" height="88" border="0" cellpadding="0"
					cellspacing="0">
					<tr>
						<td background="images/certer.jpg" align="center">

							<table width="315" border="0" align="center">
								<tr>
									<td width="61" height="25">
										用户名:
									</td>
									<td width="260">
										<input name="name" type="text" size="40">
									</td>
								</tr>
								<tr>
									<td height="25">
										密&nbsp;&nbsp;码:
									</td>
									<td>
										<input name="password" type="password" size="40">
									</td>
								</tr>
							</table>
							<input type="submit" name="Submit" value="登录">


						</td>
					</tr>
				</table>
				<table width="419" height="27" border="0" cellpadding="0"
					cellspacing="0">
					<tr>
						<td>
							<img src="images/down.jpg" width="419" height="27">
						</td>
					</tr>
				</table>
			</form>
		</div>
	</body>
</html>


result.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.UserInfo"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用过滤器身份验证</title>
</head>
<%
request.setCharacterEncoding("gb2312");
String name=request.getParameter("name");
String password=request.getParameter("password");
  UserInfo user=new UserInfo();
  user.setName(name);
  user.setPassword(password);
  session.setAttribute("user",user);

response.sendRedirect("jsp/showInformation.jsp");
%>
<body>
</body>
</html>


执行结果如下图;


确认后会回到登录界面

如果输入http://localhost:8080/filterAuthen/index.jsp,会显示登录界面
其他代码见附件,web项目目录结构如下图


  • 大小: 30.2 KB
  • 大小: 17.4 KB
分享到:
评论

相关推荐

    Java Web 整合开发 完全自学手册 源代码

    《Java Web 整合开发 完全自学手册》是一本深度探讨Java Web技术的书籍,由白广元编著。这本书旨在帮助读者全面掌握Java Web应用程序的开发技能,从基础到高级,涵盖了一系列核心概念和技术。通过源代码的学习,读者...

    java自学路线

    ### Java自学路线详解 在Java自学的过程中,合理规划学习路径对于快速掌握这门语言至关重要。以下将基于给定的信息,详细展开每个阶段的学习内容及重点。 #### 一、Java基础 (J2SE) ##### 1. Java SE环境搭建与...

    Android应用开发完全自学手册源代码

    在Android应用开发的世界里,本书"Android应用开发完全自学手册"是初学者和有志于深入理解Android系统机制开发者的重要参考资料。由人民邮电出版社出版,由吴亚峰和于复兴两位专家精心编著,该书旨在帮助读者从零...

    Java Web整合开发完全自学手册

    综上所述,《Java Web整合开发完全自学手册》中关于Struts2的部分不仅涵盖了框架的基本概念和历史背景,还深入探讨了其核心特性和在现代Web开发中的应用。对于希望深入了解Struts2框架及其在Java Web开发中角色的...

    javaweb学习资料及项目文件包

    5. **JDBC(Java Database Connectivity)**:用于连接Java应用与数据库,通过DriverManager、Connection、Statement、ResultSet等接口和类进行数据操作。在实际开发中,通常会用到ORM框架如Hibernate、MyBatis,...

    struts2视频自学总结

    ### Struts2框架深入解析与自学总结 #### Struts2框架简介 Struts2是Apache组织维护的一个开源框架,它是Struts1的升级版本,基于MVC(Model-View-Controller)架构模式,用于简化Java Web应用的开发过程。Struts2...

    Spring_Security-3.0.1_中文自学教程.pdf

    ### Spring Security 3.0.1 中文自学教程知识点概览 #### 一、Spring Security 简介 ##### 1.1 Spring Security 是什么? Spring Security 是一款强大的、高度可定制的身份验证与授权框架。它能够帮助开发者保护...

    Java web编程技术期末复习.zip

    8. **过滤器和监听器**:掌握Filter和Listener在Java Web中的应用,它们可以拦截请求、响应,以及监听特定的事件,实现跨页面的功能,如登录验证、字符编码转换等。 课后习题解答部分则可能覆盖以上所有内容,通过...

    JavaWeb自学视频教程 2.69G

    - **身份验证**:使用Spring Security等框架实现用户登录认证。 - **输入校验**:对用户输入的数据进行校验,防止SQL注入等攻击。 通过上述内容的介绍,可以看出JavaWeb自学视频教程覆盖了从基础知识到实战项目的...

    struts2自学笔记

    Struts2是Java Web开发中的一款广泛应用的MVC框架,它基于Model-View-Controller设计模式,旨在简化企业级应用的开发流程。本自学笔记将深入探讨Struts2的核心概念、主要功能及其实现原理。 1. **Struts2架构** ...

    jfinal自学笔记

    当用户在页面上填写表单并提交时,如 `&lt;form action="/student/save" method="post"&gt;`,数据会被发送到 `/student/save` 地址。在 `web.xml` 中,需要配置 JFinal 过滤器,确保所有请求都被 JFinal 处理: ```xml...

    Shiro自学笔记

    `Realm`是Shiro与应用安全数据的连接点,负责获取和验证用户身份以及权限信息。JDBC Realm是 Realm的一种实现,它通过JDBC连接到数据库,查询用户和角色、权限等信息。 ### 权限认证(授权) 授权是确定用户是否具有...

    android自学总结

    Activity作为用户界面,类似于Java中的JFrame。Service则在后台运行,不与用户交互。BroadcastReceiver可以监听系统或应用广播事件。在编程时,需要注意避免导入Android系统的R类,因为它与项目自身的R类冲突,导致...

    【JavaWeb开发技术】实验指导书.doc

    建议参考的教材包括《JavaWeb技术与应用》、《JSP工程开发案例全程实录》、《在实战中成长—JSP开发之路》、《Tomcat与Java Web开发详解》以及《Java Web整合开发完全自学手册》。 通过这些实验,学生将能深入理解...

    JSP初学非常实用的例子,完整的jsp项目:完整系统结构,具有登陆、注册、数据库的增、删,并且采用过滤器

    在这个例子中,过滤器可能用于实现用户身份验证,确保只有经过验证的用户才能访问受保护的页面。此外,过滤器也可能用来处理HTTP请求和响应,如修改或拦截数据,或者执行其他预处理或后处理任务。 在数据库管理上,...

    狂神说 JavaWeb 笔记

    1. **Servlet**:Servlet是Java Web应用的核心组件,它是一种Java类,用于扩展服务器的功能。通过实现Servlet接口或继承HttpServlet类,我们可以处理HTTP请求和响应。在狂神说笔记中,你会了解到Servlet的生命周期,...

    Mina通讯中间件

    在实际应用中,通过阅读《Mina2.0完全剖析,完全自学手册【完整版】.doc》文档,开发者可以深入理解Mina的内部工作机制,学习如何配置和使用Mina来构建自己的网络应用。同时,提供的"mina"文件可能包含了示例代码或...

    php手册(网页版)

    7. **表单处理**:PHP可以接收和处理HTTP请求中的表单数据,使用`$_GET`和`$_POST`全局数组获取用户输入,结合`filter_var()`进行数据过滤和验证。 8. **会话管理**:PHP通过`session_start()`启动会话,`$_SESSION...

Global site tag (gtag.js) - Google Analytics