servlet学习笔记3——用户登录网站(通过session验证登陆用户)

在之前的登陆网站基础上加入session验证登录用户

首先在LoginJudge.java中添加session属性,然后再Welcome.java中取出session属性值进行验证,最后决定是否正确

package com.sunquan;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login extends HttpServlet {

    /*Constructor*/
	public Login() {super();}

	public void destroy() { super.destroy(); }

	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {

		// 中文乱码解决
		res.setContentType("text/html;charset=UTF-8");
		// 业务逻辑
		PrintWriter pw = res.getWriter();
		// 返回登录界面
		pw.println("<html>");
		pw.println("<body>");
		
		pw.println("<h1>登录界面</h1>");
		pw.println("<form action=logincl method=post>");
		pw.println("用户名:<input type=text name=username><br>");
		pw.println("密  码:<input type=password name=passwd><br>");
		pw.println("<input type=submit value=登陆><br>");
		pw.println("</form>");
		pw.println("</body>");
		pw.println("</html>");
	}
}

LoginJudge.java(登陆控制验证页面)

package com.sunquan;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginJudge extends HttpServlet {

	 /*Constructor*/
	public LoginJudge() {super();}
	public void destroy() { super.destroy(); }
	
	public void doGet(HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {
		 doPost(req,res);
	}
	public void doPost(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		
		    PrintWriter pw=res.getWriter();
			try {
				// 接收用户名和密码
				String u = req.getParameter("username");
				String p = req.getParameter("passwd");
				
				if (u.equals("sq")&&p.equals("123")) {
					//将用户名和密码放入到session中
					HttpSession hs=req.getSession();
					hs.setMaxInactiveInterval(30);//30s
					hs.setAttribute("name",u);
					
					res.sendRedirect("welcome");//会在浏览器地址栏中传输
				} else {
					//登录失败转向登陆页面
					res.sendRedirect("login");
				}
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	

}


Welcome.java(欢迎界面)

package com.sunquan;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Welcome extends HttpServlet {

	/* Constructor */
	public Welcome() {
		super();
	}

	public void destroy() {
		super.destroy();
	}
	
	public void doGet(HttpServletRequest req, HttpServletResponse res)  throws ServletException, IOException {  
		res.setContentType("text/html;charset=UTF-8");  
		res.setContentType("text/html;charset=UTF-8");
		PrintWriter out = res.getWriter();
		
		//从session中得到用户名  
        HttpSession hs=req.getSession(true);  
        String name=(String)hs.getAttribute("name");
         //String 是一个常指针,取得的值为空
        if(name==null){ 
        	
            //返回登陆界面  
            res.sendRedirect("login");  
            return;  
        }  
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>  ");
		out.print(name);
		out.print("<br/>登录成功");
		out.println("  </BODY> ");
		out.println(" </HTML>  ");
		out.flush();
	    out.close();

  }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值