友情提醒:eclipse创建servlet不会帮你同步创建一个web.xml配置文件;所以建议使用MyEclipse!

1.View层(jsp)

 <form action="javaweb/Logservlet" method="post">
<label>用户名:</label><input type="text" name="username" /><br>
<label>密码:</label><input type="password" name="password" /><br>
<label>生日:</label><input type="date" name="birthday" /><br>
<label>爱好:</label><input type="checkbox" name="favorite" value="看书" />看书
<input type="checkbox" name="favorite" value="画画" />画画
<input type="checkbox" name="favorite" value="玩电脑" />玩电脑
<input type="checkbox" name="favorite" value="睡觉" />睡觉<br>
<label>是否同意协议:</label><input type="radio" name="flag" value="true" />同意
<input type="radio" name="flag" value="false" />不同意<br>
<button type="submit">注册</button>
</form>

这是一个Jsp页面中的用户登录界面(表单)

提交之后跳转到一个servlet文件(位于javaweb包下的Logservlet.java文件),用于处理表单传进来的数据。

------------------------------------------------------------------------

------------------------------------------------------------------------

2.Controller层(servlet)

         try {
request.setCharacterEncoding("utf-8");
Users user = new Users();
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
user.setUsername(request.getParameter("username"));
user.setPassword(request.getParameter("password"));
user.setFavorites(request.getParameterValues("favorite"));
user.setFlag(request.getParameter("flag").equals("true")? true:false);
user.setBirthday(sdf.parse(request.getParameter("birthday")));
request.getSession().setAttribute("loginuser", user);
request.getRequestDispatcher("../loginsuccess.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}

这是Logservlet.java文件,将表单数据存到一个Users的实例化对象user中,并将此对象存到内置对象session中。

这样做是防止后面万一发生请求重定向导致表单数据的丢失。存在session对象中是最安全的办法。

最后跳转到loginsuccess.jsp页面,将表单数据在这个页面显示出来。

3.View层(javaBean为Model)

 <jsp:useBean  id="loginuser" class="javaweb.Users"  scope="session" />
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date =sdf.format(loginuser.getBirthday());
%>
用户名:<%=loginuser.getUsername() %><br>
密码:<jsp:getProperty property="password" name="loginuser"/><br>
生日:<%=date %><br>
爱好:<%
String [] favorites = loginuser.getFavorites();
for(String a : favorites){
%>
<%=a %>
<%
}
%>
<br>
是否同意协议:<jsp:getProperty property="flag" name="loginuser"/><br>

这个是loginsuccess.jsp页面,用javaBean将存在session中的表单数据显示出来。

-------------------------------------------------------

-------------------------------------------------------

4.web.xml配置文件

 <servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<!--名称自定义,不过下面mapping的name也要一样 -->
<servlet-name>Logservlet</servlet-name>
<!--项目的servlet文件,包名+文件名 -->
<servlet-class>javaweb.Logservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Logservlet</servlet-name>
<!--表单/链接需要转向的文件,要加前面的“/”啊,而表单/链接的地址不需要 -->
<url-pattern>/javaweb/Logservlet</url-pattern>
</servlet-mapping>

这是创建servlet文件时要创建的配置文件,Myeclipse会自动创建。

java之MVC开发模式的更多相关文章

  1. Java web MVC开发模式入门感悟

    当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识.我觉得非常有必要对此进行必要的总结. MVC,意指model(数据持久层)+viewer( ...

  2. Java基础85 MVC开发模式

    1.MVC开发模式 本文用 Servlet+JSP+javaBean 的开发模式来讲解 Model:用javabean实现,用于封装业务数据View:用jsp实现,用于显示数据Controller:用 ...

  3. 什么是MVC开发模式以及它和传统开发模式的区别

    Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦:系统后期维护和扩展非常困难,例如在JSP页面 ...

  4. MVC开发模式的数据运行流程

    对于java中经典的开发模式MVC,有一些感触!现说一下Java中数据的运行流程,由于我技术有限,有错的话欢迎提出,不喜勿喷! 我们知道在MVC开发模式,包括三部分视图层V(view).控制层C(Co ...

  5. JavaWeb 之 MVC 开发模式

    MVC 开发模式 一.JSP 演变历史 1. 早期只有servlet,只能使用response输出标签数据,非常麻烦 2. 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写 ...

  6. 13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记

    1.JSP (1)JSP概念:Java Server Pages 即java服务器端页面可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码用于简化书写!!! (2)原理 ...

  7. jsp&mvc开发模式&jstl标签&三层架构

    目录 jsp 概念 原理 jsp 的脚本 jsp的内置对象 指令 注释 mvc:开发模式 jsp演变历史 mvc 优缺点 El表达式 JSTL 标签 练习 三层架构:软件设计架构 案例:用户信息列表展 ...

  8. MVC:开发模式&&三层架构:软件设计架构

    MVC:开发模式 jsp演变历史 早期只有servlet,只能使用response输出标签数据,非常麻烦 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码 ...

  9. MVC开发模式下的用户角色权限控制

    前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...

随机推荐

  1. HTML5 classList API接口

    原文地址:HTML5 classList API 原文日期: 2010年07月13日 翻译日期: 2013年08月23日 当我陷入JavaScrip和JavaScript类库框架之中时,我总是有种希望 ...

  2. (一)php的基本知识和一些注意点

    注意:任何程序,包括php,在运行时都在内存中进行,php代码需要被读取到内存中才能执行. [php的运行方式] 1.通过服务器(例如apache)调用. 2.通过命令行调用(不需要服务器参与,因为没 ...

  3. shell的date

    使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [- ...

  4. javascript之BOM浏览器对象模型引入

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Chipmunk僵尸物理对象的出现和解决(四)

    接上一篇,我们看看五角星和反弹棒碰撞时的代码: -(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair star:(CCNode * ...

  6. SpriteBuilder中节点位置类型为百分比时不能定位的解决

    Ball.ccb类型是Node,其中有个子节点为Color Node,其中物理使能. MainScene.ccb中加入一个物理节点,将Ball.ccb拖入其中,成为该物理节点的孩子,这时出现了一个&q ...

  7. android动画之interpolator和typeEvaluator用法详解

    Interpolator (插值器) 我们在写动画的时候为了达到某种效果往往需要设置插值器,用来真实的模拟生活中的场景. Interpolator (插值器)被用来修饰动画效果,定义动画的变化率,可以 ...

  8. 使用HTML5抓取 Audio & Video

    原文地址: http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 本地化的文章: http://www.html5rocks.com/z ...

  9. 《java入门第一季》之面向对象面试题(成员变量与局部变量的区别)

    /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 ...

  10. TCP的核心系列 — ACK的处理(二)

    本文主要内容:tcp_ack()中的一些细节,如发送窗口的更新.持续定时器等. 内核版本:3.2.12 Author:zhangskd @ csdn 发送窗口的更新 什么时候需要更新发送窗口呢? (1 ...