在之前的登陆网站基础上加入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();
}
}