java中的攔截器(登入)
題目要點:
如果登入了就跳轉到首頁,如果沒有登入直接訪問首頁的話,就攔截無法訪問,登入了就可以訪問主頁。
登入介面:
<%--
Created by IntelliJ IDEA.
User: Smile
Date: 2018/11/12
Time: 14:53
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<script src="/bootstrapjs/jquery-3.1.1.min.js"></script>
<lable>username</lable><input type="text" name="username">
<lable>password</lable><input type="password" name="pwd">
<button id="login">login</button>
<script>
$(function(){
$("#login").on("click",function () {
console.log($("input[name='username']").val())
$.ajax({
url:"/loginfilter",
data:{"username":$("input[name='username']").val(),"pwd":$("input[name='pwd']").val()},
type:"post",
dataType:"json",
success:function (data) {
console.log(data)
if(data==true){
window,location='/html/indexsess.html';
}else{
alert("使用者名稱或密碼錯誤");
}
},error:function (e) {
console.log(e)
}
}
)
})
})
</script>
</body>
</html>
首頁:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script src="/bootstrapjs/jquery-3.1.1.min.js"></script> <body> <i id="v"></i> <script> $(function () { console.log("1111") $.ajax( { url:"/sure", type:"post", dataType:"json", success:function (data) { console.log(data) if(data==true){ $("#v").html("xxx你好") }else{ $("#v").html("遊客你好"); } },error:function (e) { console.log(e) } } ) }) </script> </body> </html>
servlet:
攔截器:
package userservlet.fileter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.IOException; @WebFilter(filterName = "LoginFilter",urlPatterns = {"/html/indexsess.html"}) public class LoginFilter implements Filter { public void destroy() { System.out.println("攔截器銷燬"); } //登入攔截:如果你是第一次登入的話,登入成功後跳轉到主頁 //如果你沒有登入的話,直接訪問主頁的話,會被攔截 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { // System.out.println("111"); HttpServletRequest request = (HttpServletRequest) req; // System.out.println(request); HttpSession session = request.getSession(); // System.out.println(session); Object is=session.getAttribute("login"); System.out.println(is); //判斷你是否登入,如果登陸了,可以直接訪問主頁,如果沒有登入的話訪問主頁的話,就會被攔截 if("true".equals(is)){ //System.out.println("333"); request.getRequestDispatcher("/html/indexsess.html"); //放過 chain.doFilter(req, resp); }else{ request.getRequestDispatcher("/html/loginfilter.jsp").forward(req,resp); } //System.out.println("222"); } public void init(FilterConfig config) throws ServletException { System.out.println("初始化成功"); } }