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();
			
			//接受用户名和密码
			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传递的 用户名
		String u=req.getParameter("uname");
		//得到密码
		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




徐刘根 CSDN认证博客专家 分布式 MySQL 架构
微信关注公众号:Java后端技术(ID:JavaITWork),和20万人一起学习Java!

"Java后端技术"微信公众号专注Java相关技术:SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,偶尔讲点运维Jenkins、Nexus、Docker、ELK,偶尔分享些技术干货,致力于Java全栈开发!
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页