为上节课项目添加两个页面传值显示的功能+MVC框架学习日志

一、对test2的修改:

上节课的理解误区:EL表达式 ${loginName}是进行接收数据的

要求:为index页面添加一个input标记,设置type属性添加一个文本框,要求在其中输入一段文字可以在跳转后的response页面中的文本框中显示。

分析:实现这个功能的过程,就是将一个JSP页面的值先传给servlet服务器,然后再由服务器传递给跳转后的页面显示出来。

若想实现则是需要在业务逻辑中使用getParameter()方法获取index中输入的值,然后在使用setAttribute()方法来进行值的设置。servlet中修改的代码如下:

String loginadd = req.getParameter("loginadd");
req.setAttribute("loginadd",loginadd);

二、MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

补充内容:(C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。)

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

三、实例分析(V-C-M-C-V)

项目:springMMVC

HelloWorldController.java(节选)

@Autowired
HelloWorldService helloWorldService;
@RequestMapping(value = "/", method = RequestMethod.GET)public String index(Model model) {
return "helloWorld";   }
@RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean,Model model) {    
UserBean result=helloWorldService.searchUser(userBean);    
model.addAttribute("userBean", result);
return "login";

@Autowired  可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作

@?RequestMapping是通过匹配路径URL来访问相应页面。用来处理请求地址映射的注解,可用于类或方法上。

例如:@RequestMapping(value= "/", method = RequestMethod.GET)public String index(Model model) {
return "helloWorld";   }当IE页面请求方式是GET时,按根路径匹配,并通过return中的helloWorld跳转到helloWorld页面。然后执行后表单提交到init

@RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean,Model model) {    
UserBean result=helloWorldService.searchUser(userBean);    
model.addAttribute("userBean", result);
return "login";}

创建一个bean来设置uesrId属性的get,set方法

public class UserBean {
private String userId;
public String getUserId(){
return userId;
}
public void setUserId(String userId){
	this.userId=userId;
  }
}

创建一个HelloWorldService类来给uesrId赋值为test

public class HelloWorldService {
public UserBean searchUser(UserBean frm){
	frm.setUserId("test");
          return frm;
    }
}

最后跳转login页面是显示所赋的值

${userBean.userId};

时间: 2024-10-13 04:07:57

为上节课项目添加两个页面传值显示的功能+MVC框架学习日志的相关文章

0517上节课复习

上节课复习 什么是编程语言:编程语言是人与计算机沟通的介质 什么是编程:编程是使用编程语言编写一大堆的文件 为什么要编程:奴役计算机,解放劳动力 计算机五大组成部分 CPU 控制器:控制硬件 运算器:逻辑运算和算术运算 内存: 优点:速度快 缺点:断电即消失 外存:硬盘.光盘.磁带 优点:容量大,永久存储 缺点:速度慢 输入设备:输入信息,如键盘.鼠标 输出设备:输出信息,如显示屏.打印机 特殊的:U盘即使输入设备,又是输出设备,称为IO设备 计算机组成补充: 多核CPU 64位和32位 硬盘工

Android中的Intent在两个页面传值问题

Android中的Intent在两个页面见传值主要有两种,一种是在两个Activity之间传值,另一种是在一个普通页面和一个Activity之间传递数据. 1. Intent在两个Activity之间传值 首先定义两个Activity   FirstActivity和SecondActivity 在FirstActivity的onCreate()方法中的代码 Intent intent = new Intent(); String str = "要传递的数据"; intent.putE

面向对象上节课回顾

类  :具有相同属性,和方法的一类事物 对象:(实例 具体的某一个人 或者事物) 实列化 对象=类的过程 类的定义:class关键字  类名的首字母大写 类中有属性 动态属性 方法 静态属性 类属性 对象的属性 一开始的时候:通过init 方法初始化来的 在类内调用对象的属性:self 属性名 在类外调用对象的属性:对象名.属性名 调用方法的时候: 对象.方法名 不必传的参数:self 当类实列化的时候:自动的触发--init_方法.实列化的时候类名(参数)这个参数传递给init 方法

[Xcode10 实际操作]九、实用进阶-(30)为IAP(支付方式)内购项目添加测试账号,测试内购功能

本文将演示如何添加测试账号,以方便对内购功能进行测试. IAP,即in-App Purchase ,是一种智能移动终端应用程序付费的模式, 在苹果(Apple)iOS.谷歌安卓(Google Android).微软WindowsPhone等智能移动终端操作系统中都有相应的实现. 首先要做的是打开浏览器,并进入[iTunesConnect网站],需要通过它创建一款自己的应用. 在iTunesConnect的登录页面中,输入自己的苹果账号和密码. iTunesConnect分为多个部分,每个部分整合

第03课 OpenGL 添加颜色

添加颜色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在下图中,三角形用的是光滑着色,四边形用的是平面着色 上一课中我教给您三角形和四边形的绘制方法.这一课我将教您给三角形和四边形添加2种不同类型的着色方法.使用Flat coloring(单调着色)给四边形涂上固定的一种颜色.使用Smooth coloring(平滑着色)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合. 继续在上节课的DrawGLScene例程上修改.下面将整个例程重写了一遍.如果您计划修改上节课

半小时学会上传本地项目到github

一.注册github账号   首先需要注册一个github账号,注册地址:https://github.com 接着会来到这 然后会收到一封github发的邮件,进入邮箱验证 二.创建个人的github仓库  验证成功是这样的,然后点击创建仓库 也可以来到个人中心里创建仓库 创建完成好之后是这样子的.创建仓库的时候最好别用中文,不然你的仓库名就会显示 -  这样一条小横线. 三. 配置SSH keys 终端里输入显示隐藏文件:defaults write com.apple.finder App

Struts和SpringMVC两种MVC框架比较

基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择一个好的

【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用

文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添加一个头像字段 – header . 点击保存按钮,完成表字段的添加. 本节中的头像上传,可以对图像进行裁剪,最终上传到服务器的是一个经过裁剪后的图像. 图像是保存在磁盘上的,数据库只负责保存头像的地址. 现在把 5-10上课资料文件夹中的imageUpload文件夹拷贝到5-10文件夹中. ima

项目添加服务器上数据库正常,添加本地的数据库出现问题(The user specified as a definer ('root'@'%') does not exist)

1.项目连接服务器上mysql数据库正常,连接本地的数据库出现问题: The user specified as a definer ('root'@'%') does not exist 2. 权限问题,授权 给 root  所有sql 权限 mysql> grant all privileges on *.* to [email protected]"%" identified by "."; Query OK, 0 rows affected (0.00