一、对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};