您的位置:首页 > 其它

J2EE Servlet 学习笔记4

2014-04-15 15:52 375 查看
<?xml version="1.0" encoding="gb2312"?>
   
    
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    version="2.5">
   
   <servlet>
		<servlet-name>LogoutServlet</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.LogoutServlet</servlet-class>
   </servlet>
   
   <servlet-mapping>
		<servlet-name>LogoutServlet</servlet-name>
		<url-pattern>/logout</url-pattern>
   </servlet-mapping>   
   
   <servlet>
		<servlet-name>GreetServlet</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.GreetServlet</servlet-class>
   </servlet>
   
   <servlet-mapping>
		<servlet-name>GreetServlet</servlet-name>
		<url-pattern>/greet</url-pattern>
   </servlet-mapping>  
   
   <servlet>
		<servlet-name>LoginChkServlet</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.LoginChkServlet</servlet-class>
   </servlet>
   
   <servlet-mapping>
		<servlet-name>LoginChkServlet</servlet-name>
		<url-pattern>/loginchk</url-pattern>
   </servlet-mapping>
   
   <servlet>
		<servlet-name>LoginServlet</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.LoginServlet</servlet-class>
   </servlet>
     
   <servlet-mapping>
		<servlet-name>LoginServlet</servlet-name>
		<url-pattern>/login</url-pattern>
   </servlet-mapping>  
   
   <servlet>
		<servlet-name>LoginServlet2</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.LoginServlet2</servlet-class>
   </servlet>
   
   <servlet-mapping>
		<servlet-name>LoginServlet2</servlet-name>
		<url-pattern>/login2</url-pattern>
   </servlet-mapping>
   
   <servlet>
		<servlet-name>GreetServlet2</servlet-name>
		<servlet-class>org.laotou99.abc4.servlet.GreetServlet2</servlet-class>
   </servlet>
   
   <servlet-mapping>
		<servlet-name>GreetServlet2</servlet-name>
		<url-pattern>/greet2</url-pattern>
   </servlet-mapping>  
   
   <session-config>
		<session-timeout>5</session-timeout>
   </session-config>
   
   
   </web-app>


//OutputSessionInfo
package org.laotou99.abc4.servlet;

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

//javac -d ..\WEB-INF\classes OutputSessionInfo.java
public class OutputSessionInfo
{
	public static void printSessionInfo(PrintWriter out,HttpSession session)
	{
		out.println("<table>");
		
		out.println("<tr>");
		out.println("<td>会话的状态</td>");
		
		if(session.isNew())
		{
			out.println("<td>新的会话</td>");
			
		}
		else
		{
			out.println("<td>旧的会话</td>");
		}
		
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>会话ID</td>");
		out.println("<td>"+session.getId()+"</td>");
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>创建时间:</td>");
		out.println("<td>"+new Date(session.getCreationTime())+"</td>");
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>上次访问时间:</td>");
		out.println("<td>"+new Date(session.getLastAccessedTime())+"</td>");
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>最大不活动时间间隔(s):</td>");
		out.println("<td>"+session.getMaxInactiveInterval()+"</td>");
		out.println("</tr>");
		
		out.println("</table>");
		
	}

}


//LogoutServlet
package org.laotou99.abc4.servlet;

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

//javac -d ..\WEB-INF\classes LogoutServlet.java

public class LogoutServlet extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		resp.setContentType("text/html;charset=gb2312");
		
		HttpSession session = req.getSession();
		
		session.invalidate();
		
		PrintWriter out = resp.getWriter();
		
		out.println("<html><head><title>退出登入</title></head>");
		out.println("<body>");
		out.println("已退出登录<br>");
		out.println("<a href=login>重新登录</a>");
		out.println("</body></html>");
		out.println("");
		out.close();
	}

}


//LoginServlet2
package org.laotou99.abc4.servlet;

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

//javac -d ..\WEB-INF\classes LoginServlet2.java
public class LoginServlet2 extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		String action =req.getParameter("action");
		if("chk".equals(action))
		{
			String name=req.getParameter("user");
			String pwd=req.getParameter("password");
			
			if((name!=null)&&(pwd!=null))
			{
				if(name.equals("zhangsan") && pwd.equals("1234"))
				{
					StringBuffer sb = new StringBuffer();
					
					sb.append("username-");
					sb.append(name);
					sb.append("&password-");
					sb.append(pwd);
					
					Cookie cookie=new Cookie("userinfo",sb.toString());
					cookie.setMaxAge(1800);
					resp.addCookie(cookie);
					resp.sendRedirect("greet2");
					return;
				}
				else
				{
					resp.setContentType("text/html;charset=gb2312");
					PrintWriter out = resp.getWriter();
					out.println("用户名密码错误,请<a href=login2>重新登入</a>");
					return;
				}
			
			}
		
		}
		else
		{
			resp.setContentType("text/html;charset=gb2312");
			PrintWriter out = resp.getWriter();
			
			out.println("<html>");
			out.println("<meta http-equiv=\"Pragma\" content=\"no-cache\">");
			out.println("<head><title>登录页面</title></head>");
			out.println("<body>");
			out.println("<p>");
			
			out.println("<form method=post action=login2?action=chk>");
			out.println("<table>");
			out.println("<tr>");
			out.println("<td>请输入用户名</td>");
			out.println("<td><input type=text name=user></td>");
			out.println("</tr>");
			
			out.println("<tr>");
			out.println("<td>请输入密码</td>");
			out.println("<td><input type=password name=password></td>");
			out.println("</tr>");
			
			
			out.println("<tr>");
			out.println("<td><input type=reset value=重置></td>");
			out.println("<td><input type=submit value=登入></td>");
			out.println("</tr>");
			out.println("</table></form></body></html>");
			out.println("");
			out.close();
			
		}
		
	}
	
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		doGet(req,resp);
	}
}


//LoginServlet
package org.laotou99.abc4.servlet;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
//import OutputSessionInfo;
import org.laotou99.abc4.servlet.OutputSessionInfo;

//javac -d ..\WEB-INF\classes LoginServlet.java

public class LoginServlet extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		resp.setContentType("text/html;charset=gb2312");
		
		HttpSession session=req.getSession();
		String user=(String)session.getAttribute("user");
		
		PrintWriter out=resp.getWriter();
		
		out.println("<html>");
		out.println("<meta http-equiv=\"Pragma\" content=\"no-cache\">");
		
		out.println("<head><title>登入页面</title></head>");
		out.println("<body>");
		
		OutputSessionInfo.printSessionInfo(out,session);
		
		out.println("<p>");
		out.println("<form method=post action=loginchk");
		
		out.println("<table>");
		out.println("<tr>");
		out.println("<td>请输入用户名</td>");
		
		if(null==user)
		{
			out.println("<td><input type=text name=user></td>");
		}
		else
		{
			out.println("<td><input type=text name=user value="+ user +"></td>");
		}
		 
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td>请输入密码</td>");
		out.println("<td><input type=password name=password></td>");
		out.println("</tr>");
		
		out.println("<tr>");
		out.println("<td><input type=reset value=重填></td>");
		out.println("<td><input type=submit value=登入></td>");
		out.println("</tr>");
		
		out.println("</table>");
		out.println("</form>");
		
		out.println("</body>");
		out.println("</html>");
		out.println("");
		out.close();
		
	}
	
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		doGet(req,resp);
	}
}


//LoginChkServlet
package org.laotou99.abc4.servlet;

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

//javac -d ..\WEB-INF\classes LoginChkServlet.java
public class LoginChkServlet extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		//req.setCharacterEncoding("gb2312");
		String name=req.getParameter("user");
		String pwd=req.getParameter("password");
		
		if(null==name || null==pwd || name.equals("") || pwd.equals(""))
		{
		
			resp.sendRedirect("login");
			return;
		}
		else
		{
			HttpSession session=req.getSession();
			session.setAttribute("user",name);
			resp.sendRedirect("greet");
			return;
		}
		
	}

	public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		doGet(req,resp);
	}

}


//GreetServlet2
package org.laotou99.abc4.servlet;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
//javac -d ..\WEB-INF\classes GreetServlet2.java
public class GreetServlet2 extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		Cookie[] cookies=req.getCookies();
		
		if(null!=cookies && cookies.length!=0)
		{
			String name = null;
			String pwd = null;
			
			for(int i=0;i<cookies.length;i++)
			{
				Cookie cookie=cookies[i];
				String cName=cookie.getName();
				
				if(cName.equals("userinfo"))
				{
					String cValue=cookie.getValue();
					String[] userInfo=cValue.split("&");
					
					for(int j=0;j<userInfo.length;j++)
					{
						String[] value=userInfo[j].split("-");
						if(value[0].equals("username"))
						{
							name=value[1];
						}
						if(value[0].equals("password"))
						{
							pwd=value[1];
						}
					}
				}
			}
			
			if("zhangsan".equals(name) &&"1234".equals(pwd))
			{
				resp.setContentType("text/html;charset=gb2312");
				PrintWriter out = resp.getWriter();
				out.println("<html>");
				out.println("<meta http-equiv=\"Pragma\" content=\"no-cache\">");
				
				out.println("<head><title>欢迎页面</title></head>");
				out.println("<body>");
				out.println(name+",欢迎你");
				out.println("<a href=login2>重新登入</a>");
				out.println("</body></html>");
				out.println("");
				out.println("");
				out.close();
				
				return;
			}
		}
		
		RequestDispatcher rd=req.getRequestDispatcher("login2");
		rd.forward(req,resp);
	}

}


//GreetServlet
package org.laotou99.abc4.servlet;

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

//javac -d ..\WEB-INF\classes GreetServlet.java
public class GreetServlet extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException
	{
		HttpSession session = req.getSession();
		String user = (String)session.getAttribute("user");
		
		if(null==user)
		{
			resp.sendRedirect("login");
		}
		else
		{
			resp.setContentType("text/html;charset=gb2312");
			PrintWriter out = resp.getWriter();
			
			out.println("<htm><head><title>欢迎页面</title></head>");
			out.println("<body>");
			
			OutputSessionInfo.printSessionInfo(out,session);
			
			out.println("<p>");
			out.println("欢迎您 "+user+"<p>");
			out.println("<a href=login>重新登入</a>");
			out.println("<a href=logout>注销</a>");
			out.println("</body></html>");
			out.println("");
			out.close();
		}
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: