Servlet实现Session

(1)首先看一下项目的结构

是在tomcat--webaps下的myWebSites项目

在myWebSites下有仅仅有WEB-INF目录 在WEB-INF目录中有  一下目录(在classes目录下方class类)



当中之需下边三个 类就可以 项目例如以下结构:



(2)Login.java代码

//登陆界面
package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;

public class Login extends HttpServlet{
	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		
		//业务逻辑
		try{
			//解决中文乱码
			res.setContentType("text/html;charset=gbk");
			
			PrintWriter pw = res.getWriter();
			//返回登陆界面
			pw.println("<html>");
			pw.println("<body>");			
			
			pw.println("<h1>用户登录</h1>");
			pw.println("<form action=logincl method=post>");  //action的是servlet的url
			pw.println("用户名:<input type=text name=username><br/>");
			pw.println("密码:<input type=password name=passwd><br/>");
			pw.println("<input type=submit value=loing><br/>");
			pw.println("<input type=hidden name=sex value=男><br/>");  //hidden类型在页面中不显示
			pw.println("</form>");			
			
			pw.println("</body>");
			pw.println("</html>");
			
		}
		catch(Exception ex){
			ex.printStackTrace();
		}
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		this.doGet(req,res);
	}
}

(3)Logincl.java代码

//登陆界面
package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;

public class Logincl extends HttpServlet{
	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		
		//业务逻辑
		try{
			//解决中文乱码
			//res.setContentType("text/html;charset=gbk");	
			//PrintWriter pw = res.getWriter();
			
			//接受用户名和password
			String u = req.getParameter("username");
			String p = req.getParameter("passwd");
			//验证
			if(u.equals("sp") && p.equals("123"))
			{
				//将验证成功的信息,写入到session中去
				//1.得到session
				HttpSession hs = req.getSession(true);
				//改动session的存在时间
				hs.setMaxInactiveInterval(20000);// 以秒算的
				hs.setAttribute("pass","ok");  //设置到session中去
		
				//合法的情况 跳转到Welcome
				res.sendRedirect("welcome?uname="+u+"&upass="+p);//这里跳转的仍是servlet的url
			}
			else
			{
				//不合法的情况
				//跳转
				res.sendRedirect("login");//跳转的是要到servlet的url
			}
		
		}
		catch(Exception ex){
			ex.printStackTrace();
		}
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		this.doGet(req,res);
	}
}

(4)Welcome.java代码


//登陆界面
package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;

public class Welcome extends HttpServlet{
	
	public void doGet(HttpServletRequest req,HttpServletResponse res){
		
		//得到session
		HttpSession hs = req.getSession(true);
		String val = (String)hs.getAttribute("pass");
		//推断
		if(val == null)
		{
			try{
				//非法登陆
				res.sendRedirect("login");
			}catch(Exception ex){
				ex.printStackTrace();
			}
		
		}
		
		//得到Logincl传递的 username
		String u=req.getParameter("uname");
		//得到password
		String p= req.getParameter("upass");
		String sex= req.getParameter("sex");
		println(sex);
		//业务逻辑
		
		try{
			//解决中文乱码
			res.setContentType("text/html;charset=gbk");
			
			PrintWriter pw = res.getWriter();
		
			pw.println("hello welcome!"+u+p);
			
		}
		catch(Exception ex){
			ex.printStackTrace();
		}
	}
	
	public void doPost(HttpServletRequest req,HttpServletResponse res){
		this.doGet(req,res);
	}
}


须要项目代码的:http://download.csdn.net/detail/u010870518/7843661




原文地址:https://www.cnblogs.com/blfshiye/p/4051996.html