JavaWeb18-HTML篇筆記(一)
阿新 • • 發佈:2018-06-06
Java1.1 上次課內容回顧:
註解: 商品查詢所有:http://localhost:8080/store_2.0/ProductServlet?method=findAll
商品查詢某個:http://localhost:8080/store_2.0/ProductServlet?method=findById
傳統:
註解:
* JDK中的三個註解:[/align] * 自定義註解: * @interface * 註解類型:基本類型,String,Class,註解,枚舉,以上類型的一維數組. * 註解的反射: Servlet3.0 * 註解開發: * 文件上傳: * 異步請求: 動態代理: * Proxy.newProxyInstance(ClassLoader cl,Class[] interfaces,InvocationHandler handler); * 如何增強類中的某個方法: 類加載器: * 引導類加載器: * 擴展類加載器: * 應用類加載器:
1.2 網上商城的實戰的案例:1.2.1 需求:
1.2.2 數據庫設計:
1.2.3 網上商城用戶模塊的代碼實現:(前臺)1.2.3.1 編寫一個通用的Servlet:
傳統方式的開發一個請求對應一個Servlet:這樣的話會導致一個模塊的Servlet過多,導致整個項目的Servlet都會很多.能不能做一個處理?讓一個模塊致用一個Servlet處理請求.
註冊:http://localhost:8080/store_2.0/UserServlet?method=regist
登錄:http://localhost:8080/store_2.0/UserServlet?method=login
激活:http://localhost:8080/store_2.0/UserServlet?method=active
商品查詢某個:http://localhost:8080/store_2.0/ProductServlet?method=findById
傳統:
public class UserServlet extends HttpServlet{ public void service(HttpServletRequest req,HttpServletResponse resp){ // 接收參數: String methodName = request.getParameter(“method”); if(“regist”.equals(methodName)){ regist(req,resp); }else if(“login”.equals(methodName)){ login(req,resp); } } public void regist(HttpServletRequest req,HttpServletResponse resp){ } public void login(HttpServletRequest req,HttpServletResponse resp){ } } public class ProductServlet extends HttpServlet{ public void service(HttpServletRequest req,HttpServletResponse resp){ // 接收參數: String methodName = request.getParameter(“method”); if(“findAll”.equals(methodName)){ findAll(req,resp); }else if(“findById”.equals(methodName)){ findById(req,resp); } } public void findAll(HttpServletRequest req,HttpServletResponse resp){ } public void findById(HttpServletRequest req,HttpServletResponse resp){ } }
反射:
public class BaseServlet extends HttpServlet{
public void service(HttpServletRequest req,HttpServletResponse resp){
// http://localhost:8080/store_2.0/UserServlet?method=regist
// http://localhost:8080/store_2.0/ProductServlet?method=findAll
String methodName = request.getParameter(“method”);
// 獲得Class:
Class clazz = this.getClass();
Method method = clazz.getMethod(methodName,HttpServletRequest.class,HttpSerlvetResponse.class);
String path = (String)method.invoke(this,req,resp);
if(path != null){
req.getRequestDispatcher(path).forward(req,resp);
}
}
}
public class UserServlet extends BaseServlet {
public String regist(HttpServletRequest req,HttpServletResponse resp){
return “/login.jsp”;
}
public String login(HttpServletRequest req,HttpServletResponse resp){
return “/index.jsp”;
}
}
public class ProductServlet extends BaseServlet{
public String findAll(HttpServletRequest req,HttpServletResponse resp){
}
public String findById(HttpServletRequest req,HttpServletResponse resp){
}
}
JavaWeb18-HTML篇筆記(一)