(一)javascript
有时,记忆的碎片会从脑神经的链接中苏醒。html
(二)前端
浏览器,客户端browser,client | view:jsp(含前端控制器DispatcherServlet) | 前端 |
服务器server | 表现层(controller/action),业务层持久层(model:po,service,dao) | 后端 |
设计模式的优势:java
补充一点,我上面的概括是根据个人理解编写的,实际状况的逻辑很复杂。毕竟我认为java是关系型分层结构的语言。web
(三)spring
准备工具:eclipseapache
建立项目:Maven工程后端
1.properties-java build path设计模式
2.project facets-dynamic web module:2.5(servlet规范,3.0不用web.xml文件) 或 Java EE Tools-Generate Deployment Descriptor Stub-->src-main-webapp- WEB-INF -web.xml.浏览器
3.deployment assembly:打包的环境
搭建环境(配置文件):
1.pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.buff</groupId> <artifactId>springmvc-work</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <!-- spring版本号 --> <spring.version>4.3.8.RELEASE</spring.version> <!-- jstl标签版本 --> <jstl.version>1.2</jstl.version> </properties> <dependencies> <!-- springmvc依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <!-- tomcat 的端口号 --> <port>8080</port> <!-- 访问应用的路径 --> <path>/springmvc-work</path> <!-- URL按UTF-8进行编码,解决中文参数乱码 --> <uriEncoding>UTF-8</uriEncoding> <!-- tomcat名称 --> <server>tomcat7</server> </configuration> </plugin> </plugins> </build> </project>
2.框架核心配置文件:src/main/resources/anyname.xml(约束)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" <!-- spring依赖注入的方式:构造方法和set方法。p名称空间注入本质上属于set注入,简化配置 --> xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- 配置包扫描controller --> <context:component-scan base-package="com.buff.controller"></context:component-scan> </beans>
3.src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springmvc-work</display-name> <!-- 在struts2中是过滤器 --> <!-- 配置前端控制器:DispatcherServlet --> <servlet> <servlet-name>springmvcfancyname-work</servlet-name> <!-- Maven依赖包中spring-webmvc --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--加载springmvc主配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:anyname.xml</param-value> </init-param> <!-- 配置tomcat启动的时候,就加载(建立对象)前端控制器 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <!-- 名称配对 --> <servlet-name>springmvcfancyname-work</servlet-name> <!-- 配置请求的url规则,说明: 1.*.do,表示以.do结尾的请求,进入前端(的后台)控制器 2./,表示全部请求都进入前端控制器 --> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 默认的欢迎页面 --> <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>
4.src/main/webapp/WEB-INF/jsp/hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Demo</title> </head> <body> hello ${hello} <!-- el表达式接收模型数据 --> </body> </html>
5.编写controller:至关于struts2中处理请求的action
src/main/java/com/buff/controller/DemoController.java
@Controller //对表现层的注解。最后,对应spring管理文件中的包扫描。 public class DemoController { /** * hello test * ModelAndView:模型和视图。 * 1.用于设置响应的模型数据; * 2.用于设置响应的视图 * @RequestMapping:设置请求的url */ @RequestMapping("/hello.do")//响应数据响应页面有了以后,须要接受方法:建立对应关系 public ModelAndView hello(){ // 1.建立ModelAndView ModelAndView mav = new ModelAndView(); // 2.设置响应的模型数据 /** * addObject方法:设置模型数据 * 参数: * attributeName:模型数据名称 * attributeValue:模型数据 */ mav.addObject("hello", "world"); // 3.设置响应的视图 /** * setViewName方法:设置响应的视图 * 参数: * viewName:页面的物理路径 */ mav.setViewName("/WEB-INF/jsp/hello.jsp"); return mav; } }