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

时间: 2024-10-08 17:33:16

Servlet实现Session的相关文章

玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)

在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理. 这篇文章先来说说session怎么用,首先在servlet中创建一个session来保存信息,举个例子,在做登陆验证时,如果登陆成功,需要将用户的信息保存到session中,怎么保存呢?下面给出代码: public class Login_Do extends HttpServlet { String order_name = ""; String order_pa

jsp的Session 和Servlet的Session的区别

1.session机制    http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出返回给客户端Cookie保存. 2.jsp和Servlet的关系    jsp是servlet的一种简

servlet之session添加和移除的两种方式

Java Session 介绍 一.添加.获取session 1.项目结构 2.jar包 3.web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns

Servlet/JSP-07 Session应用:避免表单重复提交

Session应用:避免表单重复提交 一. 表单的重复提交 1. 重复提交的情况 ①在表单提交到一个 Servlet,而 Servlet 又通过请求转发的方式响应了一个 JSP 或者 HTML 页面,此时浏览器地址栏还保留着 Servlet 路径,在此响应页面点击”刷新“按钮 ② 在响应页面尚未到达时,重复点击表单的”提交“按钮 ③ 点击”返回“按钮或者浏览器的回退按钮,再点击”提交“按钮 2.如何避免表单重复提交? 原理:在表单中做一个标记,当表单提交到Servlet时,检查标记是否存在且是否

Servlet之Session处理

HttpSession 对象中可用的几个重要的方法: 1    public Object getAttribute(String name) 该方法返回在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null. 2    public Enumeration getAttributeNames() 该方法返回 String 对象的枚举,String 对象包含所有绑定到该session 会话的对象的名称. 3    public long getCreationT

Servlet 笔记-Session 跟踪

HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录. 但是仍然有以下三种方式来维持 Web 客户端和 Web 服务器之间的 session 会话: Cookies 一个 Web 服务器可以分配一个唯一的 session 会话 ID 作为每个 Web 客户端的 cookie,对于客户端的后续请求可以使用接收到的 cookie 来识别. 这可能不是一个有效的方法,因为很多浏览器不支持 cook

java servlet使用session

第一个servlet: 当浏览器第一次访问服务器时,为它分配一个session HttpSession session=request.getSession(); 输出该session的id与使用该session的次数 Integer count=(Integer)session.getAttribute("count"); if(count==null){ count=new Integer(1); }else{ count++; } session.setAttribute(&qu

2018/1/3 Servlet+cookie+session

1.Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet对象 只调用1次.证明servlet对象在tomcat是单实例的. init方法: 创建完servlet对象的时候调用.只调用1次. service方法: 每次发出请求时调用.调用n次. destroy方法: 销毁servlet对象的时候调用.停止服务器或者重新部署web应用时销毁servlet对象. 只调用1次. 2.伪代码演示servlet的生命

servlet,session对象的生命周期

谈到javaweb首先想到的就是servlet,说道servlet就会想到servlet的生命周期 那么servlet到底是什么时候出生,什么时候死亡叻 说道他的生命周期 就绕不过servlet的三个方法init service destroy 当我们将web项目部署到服务器,服务器启动的时候,这个时候servlet还没创建,,服务器启动了  开始对外提供服务,客户端可以访问了, 当某一个客户端第一次访问时候此servlet时候------>服务器找不到servlet对象------->这个时