JAVA原生mvc实现用户信息的增删查改
筆者最近學完jsp和servlet,于是心血來潮的打算寫個簡單的用戶案例
環境準備:
開發工具eclipse
jdk-1.8.0_72
tomcat-9.0.5
?
前端部分:
1.自己手寫了一套樣式
2.使用ajax交互
?
目錄結構:
java目錄:
?
前端目錄
?
?
?
需求分析:
1.能夠實現用戶的登錄和注冊
2.能夠實現對用戶信息的增刪查改
3.登錄過一次的用戶保存登錄記錄,也就是記錄session
?
由于筆者不是很擅長寫界面,所以后臺界面部分不是寫的很好看,這里就先預覽一遍
?
由于代碼量太多了,我就把這個項目放到了github上? ?https://github.com/chenCmengmengda/javaweb_user
接下來我把最最最核心的部分貼出來
首先我們都知道HttpServlet這個類中已經幫我們實現了doGet和doPost,可是如果請求的后臺url一多,不可能每個都單獨寫成一個類,所以這兩個方法根本不可取,我們要的是一個類中的多個方法都能被我們以url傳參的形式訪問。
例如:http://localhost:8080/demo1/xxx?method=login
?
于是我在資料中翻到了這么一段話。
注意藍色字體,HttpServlet的實現關鍵在于覆蓋了service方法,因此我們只要自己寫一個類覆蓋HttpServlet中的service方法就OK了
其實很多代碼只要照搬HttpServlet就OK了,想要實現我們的功能,那么就加上反射的思路進去就OK了
1 public class BaseServlet extends HttpServlet { 2 /* 3 * 它會根據請求中的m,來決定調用本類的哪個方法 4 */ 5 protected void service(HttpServletRequest req, HttpServletResponse res) 6 throws ServletException, IOException { 7 req.setCharacterEncoding("UTF-8"); 8 res.setContentType("text/html;charset=utf-8"); 9 10 // 例如:http://localhost:8080/demo1/xxx?method=login 11 String methodName = req.getParameter("method");// 它是一個方法名稱 12 // System.out.println(methodName); 13 14 // 當沒用指定要調用的方法時,那么默認請求的是execute()方法。 15 if(methodName == null || methodName.isEmpty()) { 16 methodName = "execute"; 17 } 18 Class c = this.getClass(); 19 try { 20 // 通過方法名稱獲取方法的反射對象 21 Method m = c.getMethod(methodName, HttpServletRequest.class, 22 HttpServletResponse.class); 23 // 反射方法目標方法,也就是說,如果methodName為add,那么就調用add方法。 24 String result = (String) m.invoke(this, req, res); 25 // 通過返回值完成請求轉發 26 if(result != null && !result.isEmpty()) { 27 req.getRequestDispatcher(result).forward(req, res); 28 } 29 } catch (Exception e) { 30 throw new ServletException(e); 31 } 32 } 33 }有了這個類之后,我們自己就可以創建一個controller的包
里面的類繼承上面的BaseServlet類
?
OK,本次案例到此結束,更多的細節請去看github中的源代碼
如果有幸這篇隨筆能被某位路人朋友看到,筆者此謝謝觀看啦
?
轉載于:https://www.cnblogs.com/secret-ChenC/p/9278811.html
總結
以上是生活随笔為你收集整理的JAVA原生mvc实现用户信息的增删查改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序-WebSocket应用
- 下一篇: 为什么我们从Angular 2迁移到Vu