1. 程式人生 > >java之MVC開發模式

java之MVC開發模式

文件名 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開發模式