java web 項(xiàng)目清楚session的方法是:繼承SessionAware類來取得session,然后用invalidate()方法清理
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)德清,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
public?class?ExitAction?extends?ActionSupport?implements?SessionAware{
@Override
public?String?execute()?throws?Exception?{
HttpServletRequest?request?=?ServletActionContext.getRequest();?
HttpSession?session1?=?request.getSession();??
session1.invalidate();??
return?super.execute();
}
public?void?setSession(Map?arg0)?{
}?
}???
//第二種方法(用ActionContext取session,然后用clear()方法清理)
public?class?ExitAction?extends?ActionSupport{???
@Override??
public?String?execute()?throws?Exception?{??
ActionContext?ac?=?ActionContext.getContext();?
Map?session?=?ac.getSession();??
session.remove("buser");
session.remove("guser");?
session.remove("fuser");??
return?super.execute();?
}??
}
(1)session.invalidate();
(2)服務(wù)器有session過期時(shí)間,達(dá)到過期時(shí)間沒有訪問,自動(dòng)就注銷了
(3)切斷與服務(wù)器的會(huì)話連接,如關(guān)閉瀏覽器、瀏覽頁也可以,這樣做不會(huì)實(shí)時(shí)讓服務(wù)器上的session注銷,但只要你不保存之前用過的session信息并重復(fù)使用(或重放),再次訪問時(shí)服務(wù)器會(huì)新分配一個(gè)session
你要先選擇 你想你要注銷的那段話
再按 CTRL + /
效果如下
// import com.rdi.flex.constant.Constant;
// import com.rdi.flex.service.ServiceLocator;
// import com.rdi.ncms.entity.*;
// import com.rdi.ncms.utils.CacheUtil;
你要取消注釋 就再選擇你已經(jīng)注釋的代碼
再按 CTRL + /
效果如下
import com.rdi.flex.constant.Constant;
import com.rdi.flex.service.ServiceLocator;
import com.rdi.ncms.entity.*;
import com.rdi.ncms.utils.CacheUtil;
還一種 ctrl+shirft+c 操作步驟跟上面一樣
效果
/* import com.rdi.flex.constant.Constant;
import com.rdi.flex.service.ServiceLocator;
import com.rdi.ncms.entity.*;
import com.rdi.ncms.utils.CacheUtil; */
都是可以實(shí)現(xiàn)你的注銷一段話的 兩種不同的注釋!
點(diǎn)擊注銷,跳轉(zhuǎn)到后臺(tái),去掉當(dāng)前用戶session,然后跳轉(zhuǎn)登錄界面。
連接數(shù)據(jù)庫
public class DBManager {
//定義數(shù)據(jù)庫連接的URL
private static final String URL="jdbc:sqlserver://localhost:1433;database=j1105";
//定義數(shù)據(jù)庫的用戶名
private static final String USERNAME = "sa";
//定義數(shù)據(jù)庫密碼
private static final String PASSWORD = "sa";
//定義一個(gè)連接的引用,使用單例模式
private static Connection conn = null;
//使用靜態(tài)塊來注冊(cè)驅(qū)動(dòng)
//類加載時(shí)自動(dòng)執(zhí)行代碼塊
static {
//反射com.microsoft.sqlserver.jdbc.SQLServerDriver.class
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//獲得連接
//在程序使用過程中始終只有1個(gè)對(duì)象存在
//使用單例模式來給Connection賦值
public static Connection getConnection(){
if(conn == null){
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/**
* 關(guān)閉的一些操作 , 優(yōu)化
* @param conn
* @param stat
* @param rs
*/
public static void close(Connection conn,Statement stat,ResultSet rs){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
if(rs != null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
/**
* 重寫上面的方法,在只有2個(gè)參數(shù)的情況下關(guān)閉
* @param conn
* @param stat
*/
public static void close(Connection conn,Statement stat){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Connection conn = DBManager .getConnection();
System.out.println(conn);
}
}
接口
public interface IStudentDao {
public void deleteStudent(int xh);
}
實(shí)現(xiàn)
public class StudentDAOimpl implements IStudentDao {
public void deleteStudent(int xh) {
try{
String sql = "delete from tb_student where xh = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, xh);
ps.executeUpdate();
System.out.println("成功刪除");
}catch(SQLException e){
e.printStackTrace();
}
}
}