java之MVC开发模式

友情提醒: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.View层(javaBean为Model)

 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会自动创建。

原文地址:https://www.cnblogs.com/eco-just/p/7806961.html