java之MVC開發模式
阿新 • • 發佈:2017-11-09
文件名 char image div javabean ttr XML 開發模式 ons
友情提醒:eclipse創建servlet不會幫你同步創建一個web.xml配置文件;所以建議使用MyEclipse!
1.View層(jsp)
1 <form action="javaweb/Logservlet" method="post"> 2 <label>用戶名:</label><input type="text" name="username" /><br> 3 <label>密碼:</label><input type="password" name="password" /><br> 4<label>生日:</label><input type="date" name="birthday" /><br> 5 <label>愛好:</label><input type="checkbox" name="favorite" value="看書" />看書 6 <input type="checkbox" name="favorite" value="畫畫" />畫畫 7 <input type="checkbox" name="favorite" value="玩電腦" />玩電腦8 <input type="checkbox" name="favorite" value="睡覺" />睡覺<br> 9 <label>是否同意協議:</label><input type="radio" name="flag" value="true" />同意 10 <input type="radio" name="flag" value="false" />不同意<br> 11 <button type="submit">註冊</button> 12 </form>
這是一個Jsp頁面中的用戶登錄界面(表單)
提交之後跳轉到一個servlet文件(位於javaweb包下的Logservlet.java文件),用於處理表單傳進來的數據。
------------------------------------------------------------------------
------------------------------------------------------------------------
2.Controller層(servlet)
1 try { 2 request.setCharacterEncoding("utf-8"); 3 Users user = new Users(); 4 SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd"); 5 user.setUsername(request.getParameter("username")); 6 user.setPassword(request.getParameter("password")); 7 user.setFavorites(request.getParameterValues("favorite")); 8 user.setFlag(request.getParameter("flag").equals("true")? true:false); 9 user.setBirthday(sdf.parse(request.getParameter("birthday"))); 10 request.getSession().setAttribute("loginuser", user); 11 request.getRequestDispatcher("../loginsuccess.jsp").forward(request, response); 12 } catch (Exception e) { 13 e.printStackTrace(); 14 }
這是Logservlet.java文件,將表單數據存到一個Users的實例化對象user中,並將此對象存到內置對象session中。
這樣做是防止後面萬一發生請求重定向導致表單數據的丟失。存在session對象中是最安全的辦法。
最後跳轉到loginsuccess.jsp頁面,將表單數據在這個頁面顯示出來。
3.Model層(javaBean)
1 <jsp:useBean id="loginuser" class="javaweb.Users" scope="session" /> 2 <% 3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 4 String date =sdf.format(loginuser.getBirthday()); 5 %> 6 用戶名:<%=loginuser.getUsername() %><br> 7 密碼:<jsp:getProperty property="password" name="loginuser"/><br> 8 生日:<%=date %><br> 9 愛好:<% 10 String [] favorites = loginuser.getFavorites(); 11 for(String a : favorites){ 12 %> 13 <%=a %> 14 <% 15 } 16 %> 17 <br> 18 是否同意協議:<jsp:getProperty property="flag" name="loginuser"/><br>
這個是loginsuccess.jsp頁面,用javaBean將存在session中的表單數據顯示出來。
-------------------------------------------------------
-------------------------------------------------------
4.web.xml配置文件
1 <servlet> 2 <description>This is the description of my J2EE component</description> 3 <display-name>This is the display name of my J2EE component</display-name> 4 <!--名稱自定義,不過下面mapping的name也要一樣 --> 5 <servlet-name>Logservlet</servlet-name> 6 <!--項目的servlet文件,包名+文件名 --> 7 <servlet-class>javaweb.Logservlet</servlet-class> 8 </servlet> 9 <servlet-mapping> 10 <servlet-name>Logservlet</servlet-name> 11 <!--表單/鏈接需要轉向的文件,要加前面的“/”啊,而表單/鏈接的地址不需要 --> 12 <url-pattern>/javaweb/Logservlet</url-pattern> 13 </servlet-mapping>
這是創建servlet文件時要創建的配置文件,Myeclipse會自動創建。
java之MVC開發模式