zoukankan      html  css  js  c++  java
  • 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




  • 相关阅读:
    shell脚本中echo颜色设置
    整合Spring+Hibernate+Struts2的时候发现json数据一直无法传到页面,提示no-Session
    分页查询——Hibernate Criteria实现一次查询取得总记录数和分页后结果集
    JS,JQ 格式化小数位数
    简单地做一下“回到顶部”按钮,用jQuery实现其隐藏和显示
    二级联动,三级联动,初学者,纯javascript,不含jQuery
    Oracle数据库知识要点
    ParameterizedType理解笔记
    JDBC mysql 相关内容笔记
    在做关于NIO TCP编程小案例时遇到无法监听write的问题,没想到只是我的if语句的位置放错了位置,哎,看了半天没看出来
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4051996.html
Copyright © 2011-2022 走看看