文章目录
MVC框架模式
MVC框架模式
M:model 数据层数据访问,数据库交互(JavaBean)
V: view视图层界面(JSP) 承载数据
C: Controller控制器作用:将对应的数据显示在相应的视图中枢管控
mvc模型流程
mvc特点
数据的获取与显示分离;
控制器将不同的模型和视图组合在一起;
应用分为三部分:模型丶视图和控制器,三部分之间松耦合并协同工作,从而提高应用的可扩展性和可维护性;
各层负责应用的不同功能,各司其职,便于通过工程化和工具化产生程序代码。
创建Javaweb工程
maven导入依赖
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.10.1</version> </dependency>
修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <!--引入struts2过滤器 定义filter,此处加载struts2过滤器。--> <filter> <filter-name>struts2</filter-name> <!-- 配置Struts2核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
创建struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!--这段内容可以在struts的jar包中找到--> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="null" extends="struts-default"> <!--这里的name自定义、尽量与Action中的name相同,method定位到所处action中的class的具体方法,result的name为return 后返回的方法名称--> <action name="helloWord" class="com.demo.mystruts2.action.HelloWordAction" method="helloWord"> <result name="success">helloword.jsp</result> </action> </package> </struts>
创建类
此类作用是通过structs2调用此类中的方法实现一些功能
package com.demo.mystruts2.action; public class HelloWordAction { public String helloWord(){ System.out.println("成功访问HelloWord Action"); System.out.println("调用Service"); return "success"; } }
创建helloword.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>helllllllll</title> </head> <body> asddsasd4asdasds4a54d56as45d </body> </html>
更改index.jsp
<html> <body> <h2>Hello Worl</h2> <a href="helloWord.action">点我</a> </body> </html>
运行即可测试效果
创建javabeans
这里模拟数据库存取的模式,来创建javabean,在展示层进行输出
Book.java
package com.struts2.beans; public class Book { private String name; private String id; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public Book() { super(); // TODO Auto-generated constructor stub } }
创建Action.java
package com.struts2.actions; import com.struts2.beans.Book; public class Action { private Book book=new Book(); public String show(){ book.setName("JAVA"); return "win"; } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
更改struts.xml
其中result的name属性对应函数的返回值
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="package_1" extends="struts-default"> <action name="showbook" class="com.struts2.actions.Action" method="show"> <result name="win">show.jsp</result> </action> </package> </struts>
编写show.jsp
通过el表达式来得到内容
<%@page isELIgnored="false" %> ${book.name}
运行访问showbook.action
即可看到book.name的内容