友情提醒: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. WIP完工入库及完工退回的几个重要问题

    1.必须向CST_COMP_SNAP_INTERFACE表中插入此工单所有工序的数据(也就是说同样的工单插入多条,只是工序号不一样) 标准文档: Note: If there are multiple ...

  2. IT职场: 选择外企利与弊

    前几天有个同学打电话问我选择国内企业与外企的利弊,很可笑的是他是学机械的:既然和我完全不在一个行业,因此我只是说了我们IT外企的利与弊,毕竟隔行如隔山. 首先简单自我介绍一下,我所在的公司是美资500 ...

  3. 【一天一道LeetCode】#64. Minimum Path Sum.md

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  4. InfoQ访谈:Webkit和HTML5的现状和趋势

    原网址: http://www.infoq.com/cn/interviews/status-and-trends-of-webkit-and-html5 个人一些不成熟的见解,望讨论和指正. 节选 ...

  5. R.java文件介绍

    HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R {     public static final ...

  6. Cocos2D绘制纹理的一般方法

    如果你想在通常情况下绘制纹理,最简单的方法是在CCSprite的子类中实现.否则你将不得不自己创建一个CCRenderState对象传递给blend模式,着色器以及(可选的)纹理给CCRenderer ...

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

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

  8. MDX的实例讲解(排名前15的小例子)

    MDX语句的特点: 大小写不分.members等于Members;downloads等于Downloads 维度的统计量指定要选择准确.downloads等于[Downloads] []可以少,不能多 ...

  9. RedHat系列软件管理(第二版) --脚本安装

    RedHat系列软件管理 --脚本安装 一.解压缩 tar -zxvf webmin-1.700.tar.gz 二.进入相关目录 cd webmin-1.700 三.如果此时执行./configure ...

  10. 带三方登录(qq,微信,微博)

    实现QQ.微信.新浪微博和百度第三方登录(Android Studio) 前言:  对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于 ...