友情提醒: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会自动创建。