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

  • 相关阅读:
    Vue
    Vue
    Vue
    Vue
    Vue
    kubernetes
    kubernetes
    kubernetes
    django源码bug解决方案
    UNI-APP 桌面LOGO角标设置(ios)
  • 原文地址:https://www.cnblogs.com/eco-just/p/7806961.html
Copyright © 2020-2023  润新知