码迷,mamicode.com
首页 > 编程语言 > 详细

javaweb学习笔记(二)

时间:2015-12-01 00:00:18      阅读:511      评论:0      收藏:0      [点我收藏+]

标签:

	<p>练习好多天了,还是不会用博客编辑器,原谅我!!</p>

组织每天监督,今天学习的是filter过滤器

在很多国内博客里找不到具体的实例,所以到外国网站上找了一个来练习

利用filter实现了登陆页面验证功能

没有很多的文字叙述,我打算周末补充心得,每天下班找代码,敲代码。重要的事说三遍(总结:总结:总结:)

一定要会总结,不然一天都白费了

技术分享

 

 

AuthenticationFilter.java

package com.journaldev.servlet.filters;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
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("/AuthenticationFilter")
public class AuthenticationFilter implements Filter{
private ServletContext context;
public void init(FilterConfig fConfig) throws ServletException{
	this.context = fConfig.getServletContext();
	this.context.log("AuthenticationFilter initialized");
}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
	HttpServletRequest req = (HttpServletRequest) request;
	HttpServletResponse res = (HttpServletResponse) response;
	String uri = req.getRequestURI();
	this.context.log("Requested Resource::" + uri);
	HttpSession session = req.getSession(false);
	if(session == null && !(uri.endsWith("html") || uri.endsWith("LoginServlet"))){
		this.context.log("Unauthorized access request");
		res.sendRedirect("login.html");
	}else{
		chain.doFilter(request, response);
	}
}
public void destroy(){
	
}
}

 RequestLoggingFilter.java

package com.journaldev.servlet.filters;
import java.io.IOException;

import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@WebFilter("/RequestLoggingFilter")
public class RequestLoggingFilter implements Filter{
private ServletContext context;
public void init(FilterConfig fConfig) throws ServletException {
	this.context = fConfig.getServletContext();
	this.context.log("RequestLoggingFilter initialized");
}
public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)throws IOException,ServletException{
	HttpServletRequest req = (HttpServletRequest) request;
	Enumeration<String> params = req.getParameterNames();
	while(params.hasMoreElements()){
		String name = params.nextElement();
		String value = request.getParameter(name);
		this.context.log(req.getRemoteAddr() + "::Request Paramet::{"+name+"="+value+"}");
	}
	Cookie[] cookies = req.getCookies();
	if(cookies != null){
		for(Cookie cookie : cookies){
			this.context.log(req.getRemoteAddr() + "::Cookie{"+cookie.getName()+","+cookie.getValue()+"}");
		}
	}

chain.doFilter(request, response);
}
public void destroy(){
	
}
}

 

LoginServlet.java

package com.journaldev.servlet.session;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private final String userID = "admin";
private final String password = "password";
protected void doPost(HttpServletRequest request,
		HttpServletResponse response)throws ServletException, IOException{
	String user = request.getParameter("user");
	String pwd = request.getParameter("pwd");
	if(userID.equals(user)&&password.equals(pwd)){
		HttpSession session = request.getSession();
				session.setAttribute("user", "Pankaj");
		session.setMaxInactiveInterval(30*60);
		Cookie userName = new Cookie("user",user);
		userName.setMaxAge(30*60);
		response.addCookie(userName);
		response.sendRedirect("LoginSuccess.jsp");
	}else{
		RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.html");
		PrintWriter out = response.getWriter();
		out.println("<font color=red>Either user name or password is wrong.</font>");
		rd.include(request, response);
	}
}
}

 

LogoutServlet.java

package com.journaldev.servlet.session;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LogoutServlet")

public class LogoutServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;
	protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
		response.setContentType("text/html");
		Cookie[] cookies = request.getCookies();
		if(cookies != null){
			for(Cookie cookie : cookies){
				if(cookie.getName().equals("JSESSIONID")){
					System.out.println("JSESSIONID="+cookie.getValue());
					break;
				}
			}
		}
		HttpSession session = request.getSession(false);
		System.out.println("User="+session.getAttribute("user"));
		if(session != null){
			session.invalidate();
		}
		response.sendRedirect("login.html");
	}
	

}

 

CheckoutPage.jsp

 

<%@ 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>Insert title here</title>
</head>
<body>
<%
String userName = null;
String sessionID = null;
Cookie[] cookies = request.getCookies();
if(cookies != null){
	for(Cookie cookie : cookies){
		if(cookie.getName().equals("user")) userName = cookie.getValue();
	}
}
%>
<h3>Hi <%=userName %>, do the checkout.</h3>
<br>
<form action="LogoutServlet" method="post">
<input type="submit" value="Logout">
</form>
</body>
</html>

 

 login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginServlet" method="post">
Username:<input type="text" name="user">
<br>
Password:<input type="password" name="pwd">
<br>
<input type="submit" value="Login">
</form>
</body>
</html>

 LoginSuccess.jsp

 

<%@ 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>Insert title here</title>
</head>
<body>
<%
//allow access only if session exists
String user = (String) session.getAttribute("user");
String userName = null;
String sessionID = null;
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie:cookies){
	if(cookie.getName().equals("user")) userName = cookie.getValue();
	if(cookie.getName().equals("JSESSIONID")) sessionID = cookie.getValue();
}
}
%>
<h3>Hi <%=userName %>, Login successful.Your Session ID=<%=sessionID %></h3>
<br>
<a href="CheckoutPage.jsp">Checkout Page</a>
<form action="LogoutServlet" method="post">
<input type="submit" value="Logout">
</form>
</body>
</html>

 展示结果图片:

技术分享

技术分享

技术分享

技术分享

 

javaweb学习笔记(二)

标签:

原文地址:http://www.cnblogs.com/song-1995/p/5008783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!