Servlet實現Session
來源:程序員人生 發布時間:2014-09-24 19:29:47 閱讀次數:2041次
(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
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈