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的内容