jsp实现登录验证的过滤器
本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下
1.新建一个dynamic web project项目,里面新建1个filter文件、1个servlet文件和2个jsp文件,整体的框架如图所示:

2.loginfilter.java里面的代码如下所示:
package filter;
import java.io.ioexception;
import java.io.printwriter;
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.annotation.webfilter;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
@webfilter(filtername = "loginfilter", urlpatterns = { "/*" })
public class loginfilter implements filter {
public void destroy() {
}
public void dofilter(servletrequest request, servletresponse response,
filterchain chain) throws ioexception, servletexception {
httpservletrequest req = (httpservletrequest) request;
httpservletresponse resp = (httpservletresponse) response;
httpsession session = req.getsession(true);
resp.setcontenttype("text/html;");
resp.setcharacterencoding("utf-8");
printwriter out = resp.getwriter();
string request_uri = req.getrequesturi();
string ctxpath = req.getcontextpath();
string uri = request_uri.substring(ctxpath.length());
if (uri.contains("login.jsp") || uri.contains("loginservlet")) {
chain.dofilter(request, response);
} else {
if (session.getattribute("user") != null) {
chain.dofilter(request, response);
} else {
out.println("您没有登录,请先登录!3秒后回到登录页面。");
resp.setheader("refresh", "3;url=" + ctxpath + "/login.jsp");
return;
}
}
}
public void init(filterconfig fconfig) throws servletexception {
}
}
3.loginservlet.java里面的代码如下所示:
package servlet;
import java.io.ioexception;
import javax.servlet.servletexception;
import javax.servlet.annotation.webservlet;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
@webservlet(name = "loginservlet", urlpatterns = { "/loginservlet" })
public class loginservlet extends httpservlet {
private static final long serialversionuid = 1l;
protected void doget(httpservletrequest request,
httpservletresponse response) throws servletexception, ioexception {
dopost(request, response);
}
protected void dopost(httpservletrequest request,
httpservletresponse response) throws servletexception, ioexception {
string username = request.getparameter("name");
string password = request.getparameter("pwd");
if ("filter".equals(username) && "filter".equals(password)) {
httpsession session = request.getsession(true);
session.setattribute("user", username);
response.sendredirect("loginsuccess.jsp");
} else {
response.sendredirect("login.jsp");
}
}
}
4.login.jsp里面的代码如下所示:
<%@page import="java.util.date"%> <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!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>example</title> </head> <body bgcolor="lightpink"> <form action="loginservlet" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="pwd" /> </tr> <tr> <td><input type="submit" value="提交" /></td> <td><input type="reset" value="重置" /></td> </tr> </table> </form> </body> </html>
5.loginsuccess.jsp里面的代码如下所示:
<%@page import="java.util.date"%>
<%@ page language="java" contenttype="text/html; charset=utf-8"
pageencoding="utf-8"%>
<!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>example</title>
</head>
<body>
<%
string username = (string) session.getattribute("user");
%>
恭喜<%=username%>登录成功!
</body>
</html>
6.在浏览器里面输入http://localhost:8080/servlet/login.jsp运行之后得到的结果如下所示:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持硕编程。
相关文章
- jsp+servlet实现文件上传与下载功能
- EJB3.0部署消息驱动Bean抛javax.naming.NameNotFoundException异常
- 在JSP中使用formatNumber控制要显示的小数位数方法
- 秒杀系统Web层设计的实现方法
- 将properties文件的配置设置为整个Web应用的全局变量实现方法
- JSP使用过滤器防止Xss漏洞
- 在JSP页面中动态生成图片验证码的方法实例
- 详解JSP 内置对象request常见用法
- 使用IDEA编写jsp时EL表达式不起作用的问题及解决方法
- jsp实现局部刷新页面、异步加载页面的方法
- Jsp中request的3个基础实践
- JavaServlet的文件上传和下载实现方法
- JSP页面的静态包含和动态包含使用方法


