搜索功能 DAO層都是一些資料庫的增刪改查操作 Servlet,控制層 點擊頁面的搜索,把輸入的信息提交到servlet, 實體Bean是針對資料庫中的欄位而建的, 不和資料庫做對應,而是打包一些零散的值的Bean,和它的頁面做對應,包名為:com.xxx.view 針對頁面的實體Bean 頁面亂碼 ...
搜索功能
DAO層都是一些資料庫的增刪改查操作
Servlet,控制層
點擊頁面的搜索,把輸入的信息提交到servlet,
實體Bean是針對資料庫中的欄位而建的, 不和資料庫做對應,而是打包一些零散的值的Bean,和它的頁面做對應,包名為:com.xxx.view 針對頁面的實體Bean
String sql = "select * from copy_emp where 1=1 ";//這局話可以後邊添加對應的and xxx=xxx信息;
//sql語句 精華,判斷搜索框是否為空,若不為空,表示輸入了數據,那麼就在where後邊添加對應的and xxx=xxx信息;
if(bean.getEmpId() != null && !"".equals(bean.getEmpId())){
sql = sql + " and employee_id= " + bean.getEmpId();
}
if(bean.getName() != null && ! "".equals(bean.getName())){
sql = sql + " and last_name like '%" + bean.getName() +"%'";
}
if(bean.getStartHiredate() !=null && !"".equals(bean.getStartHiredate())){
sql = sql+ " and hire_date >= to_date('"+bean.getStartHiredate()+"','"+"yyyy-mm-dd"+"')";
}
思路 : 將用戶輸入的搜索信息,傳給servlet,通過頁面Bean接受,然後將頁面bean通過參數形式傳遞給dao中的搜索方法,返回list,list返回搜索得到的信息.
頁面亂碼解決方案
- response.setContentType("text/html;charset=utf-8");//頁面顯示漢字
- 針對錶單提交post請求方式
request.setCharacterEncoding("utf-8); - 針對錶單提交get請求方式
String user = request.getParameter("user");
user = new String(user.getByte("iso-8859-1"),"utf-8");
絕對路徑和相對路徑
開發一般用絕對路徑,
絕對路徑 : 是一個完整的路徑, 語法 : 工程名字/資源的路徑
相對路徑 : 是相對於當前資源的路徑去找別的路徑; ../a/index.html 代表從當前路徑挑出來一層,找到a文件夾下的index.html資源
相對路徑開頭不加/,絕對路徑開頭加/
轉發的時候(request.getRequestDispatcher()) , Servlet中絕對路徑寫的時候不加工程名字
轉發重定向(參考day02)
內部轉發和重定向的區別 request.getRequestDispatcher(path)轉發/response.sendRedirect(path)重定向
區別在於是否發起新的請求,是否共用同一個request對象
- 轉發沒有發起新的請求,url路徑不變,與轉發的頁面公用一個request對象,因此可以傳遞信息
- 重定向發起了新的請求,url改變,沒有公用一個request對象,不可以傳遞信息
cookie
//1.創建cookie
Cookie c = new Cookie(String name,String value);
//2.設置cookie的存在時間
c.setMaxAge(3000);
//3.將一個cookie添加到客戶端
response.add(c);
//4.讀取cookie(從客戶端讀到伺服器)
request.getCookie();
cookie的生命周期分為兩種類型 :
- 沒有設置過(setMaxAge())時間的,關閉瀏覽器時生命周期結束
- 設置過時間的,保存在本地磁碟,當設置的時間到達,或把值從本地刪除時生命周期結束.
註意:不同瀏覽器cookie保存的值的位置是不同的