框架概述
- 框架的意义与作用:
- 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。
- 特点:封装了很多细节,程序员在使用的时候会非常简单。
- 三大框架:
- Struts2,Hibernate,Spring (SSM模式)
- 三层架构:
- 表现层:M model V view C control
- 业务层:Service
- 持久层:Dao DB
Struts2
-
简介:
- Struts是出于三层架构中表现层的框架
- Struts2就是apache和OpenSymphony组织合并开发出来。里面包含了WebWork2的核心及Struts的一些特性和功能。
-
Filter做控制器,而不是Servlet
- 控制器:Servlet
init()
destroy()
service(ServletRequest,ServletResponse) - 过滤器:Filter 它也可以作为控制。
init(FilerConfig)
destroy()
doFilter(ServletRequest,ServletResponse,FilterChain) - 两者相比较:Servlet能做的Filter都可以做,并且比Servlet功能更强大,它多了一个放行的功能。
- 控制器:Servlet
-
配置开发环境:
- 下载开发包
- 搭建环境
- 导入所需要的包
- 创建一个配置文件:在顶层类路径下,创建一个名称为struts.xml文件
- 在web.xml中配置核心控制器
-
简单入门案例:
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 分包管理 -->
<package name="p1" extends="struts-default">
<action name="hello" class="com.lwb.web.action.HelloAction" method="sayhello">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<!-- 配置Structs2的核心控制器,过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<display-name>Structs2-day01</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%--在Structs2中,控制器会默认拦截扩展名为.action的请求,除此之外什么也不写也可以 --%>
<a href="${pageContext.request.contextPath }/hello.action">有action</a>
<a href="${pageContext.request.contextPath }/hello">没有action</a>
</body>
</html>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
操作成功!!
</body>
</html>
HelloAction.java
public class HelloAction {
/**
* 在动作类中的指定的动作方法
* 书写要求:
* 1. 都是public
* 2. 返回值都String
* 3. 没有参数
* @return
*/
public String sayhello(){
System.out.println("sayhello方法执行");
return "success";//与配置文件中的result的name值相对应
}
}
- 案例的执行过程
- Struts2的内部过程
总结
今天先学习到这里,理解一下原理先。
转载:https://blog.csdn.net/qq_41816516/article/details/105549816
查看评论