java之MVC开发模式
友情提醒: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开发模式的更多相关文章
- Java web MVC开发模式入门感悟
当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识.我觉得非常有必要对此进行必要的总结. MVC,意指model(数据持久层)+viewer( ...
- Java基础85 MVC开发模式
1.MVC开发模式 本文用 Servlet+JSP+javaBean 的开发模式来讲解 Model:用javabean实现,用于封装业务数据View:用jsp实现,用于显示数据Controller:用 ...
- 什么是MVC开发模式以及它和传统开发模式的区别
Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦:系统后期维护和扩展非常困难,例如在JSP页面 ...
- MVC开发模式的数据运行流程
对于java中经典的开发模式MVC,有一些感触!现说一下Java中数据的运行流程,由于我技术有限,有错的话欢迎提出,不喜勿喷! 我们知道在MVC开发模式,包括三部分视图层V(view).控制层C(Co ...
- JavaWeb 之 MVC 开发模式
MVC 开发模式 一.JSP 演变历史 1. 早期只有servlet,只能使用response输出标签数据,非常麻烦 2. 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写 ...
- 13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记
1.JSP (1)JSP概念:Java Server Pages 即java服务器端页面可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码用于简化书写!!! (2)原理 ...
- jsp&mvc开发模式&jstl标签&三层架构
目录 jsp 概念 原理 jsp 的脚本 jsp的内置对象 指令 注释 mvc:开发模式 jsp演变历史 mvc 优缺点 El表达式 JSTL 标签 练习 三层架构:软件设计架构 案例:用户信息列表展 ...
- MVC:开发模式&&三层架构:软件设计架构
MVC:开发模式 jsp演变历史 早期只有servlet,只能使用response输出标签数据,非常麻烦 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码 ...
- MVC开发模式下的用户角色权限控制
前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...
随机推荐
- SecureCRT设置linux终端显示颜色
在linux系统上,我们使用终端时,对于文件或目录会显示不同的颜色.而SecureCRT默认显示的颜色是单一的,我们该如何让其像linux一样显示个性化颜色呢. 使用SecureCRT登录 linux ...
- 学习tornado:异步
why asynchronous tornado是一个异步web framework,说是异步,是因为tornado server与client的网络交互是异步的,底层基于io event loop. ...
- C++ Primer 有感(类)
1.在类内部,声明成员函数时必需 的,而定义成员函数则是可选的.在类内部定义的函数默认为inline. 2.const成员函数不能改变其所操作的对象的数据成员.const必须同时出现在声明和定义中,若 ...
- STL - string(典型操作demo)
1String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢 ...
- Opencv学习笔记------Harris角点检测
image算法测试iteratoralgorithmfeatures 原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/73 ...
- AngularJS进阶(二十七)实现二维码信息的集成思路
AngularJS实现二维码信息的集成思路 赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,与君共勉! 注:点击此处进行知识充电 ...
- 漫谈程序员(十)大白菜装机版安装win7系统使用教程
大白菜装机版安装win7系统使用教程 安装win7系统准备工作: ①使用大白菜装机版,制作一个大白菜u盘启动盘 ②将下载好的ghost win7系统镜像包放入制作好的大白菜u盘启动盘中. ③更改电脑硬 ...
- Android Hal 分析
本文是基于android4.0.3.对应其他低版本的代码,可能有所差异,但基本大同小异. Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚.思路是把控 ...
- ping通windows下虚拟机上的linux系统
直接ping linux的ip 直接就失败了. 现在我的windows有两个虚拟网卡 接下来让linux使用VMnet8网卡 修改我的linux系统下的lo网卡的ip地址为VMnet8的ip地址 现 ...
- 中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制
本项目都使用QT来实现绘图,没有任何第三方的资源. 工程详情:Github 首先将棋盘设计为一个类Board // Board.h // Board类实现了棋盘的绘制以及显示 // #ifndef B ...