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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐刘根

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值