实习笔记 —— springMVC I
系列文章目录
实习笔记 —— Spring基础
实习笔记 —— IOC反转控制(xml配置文件 + 注解)
实习笔记 —— AOP开发I
实习笔记 —— AOP开发II(AOP中Advice的类型)
实习笔记 —— MyBatis I (MyBatis基础)
实习笔记 —— MyBatis II (MyBatis基本数据库操作)
实习笔记 —— MyBatis III(输入/输出映射)
实习笔记 —— MyBatis IV(动态SQL)
实习笔记 —— MyBatis V(多表查询)
实习笔记 —— Git I(基础指令)
实习笔记 —— Git II(远程提交)
实习笔记 —— Maven
文章目录
- 系列文章目录
- 一、SSM框架
- 1.SSM框架简介
- 2.springMVC简介:
- 二、项目中springMVC的创建
- 1.在pom.xml中添加依赖
- 2.建springMVC的主配置文件
- 3.修改web.xml
- 4.控制层Java代码
- 总结
一、SSM框架
1.SSM框架简介
SSM(Spring + SpringMVC + MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是 Spring 中的部分内容),常作为数据源较简单的 web 项目的框架。
MVC开发模式:


Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。
SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
2.springMVC简介:
springMVC的核心组件是DispatcherServlet,相当于服务员。
以淘宝为例:
浏览各个商品展示页面是走的是下方路线,DispatcherServlet向web.xml要前端页面,要到后返回给用户。
下订单、登陆、评价等请求走右侧路线,进行业务处理。

二、项目中springMVC的创建
1.在pom.xml中添加依赖
<properties><spring.version>4.2.0.RELEASEspring.version>
properties> 在这里插入代码片
注意位置:

以及以下依赖:
<dependency><groupId>javax.servletgroupId><artifactId>javax.servlet-apiartifactId><version>3.1.0version><scope>providedscope>
dependency>
<dependency> <groupId>javax.servlet.jspgroupId><artifactId>javax.servlet.jsp-apiartifactId><version>2.3.1version>
dependency>
<dependency><groupId>javax.servletgroupId><artifactId>jstlartifactId><version>1.1.2version>
dependency>
<dependency><groupId>taglibsgroupId><artifactId>standardartifactId><version>1.1.2version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-coreartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-beansartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-contextartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-context-supportartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-webartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-testartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-webmvcartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-txartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-jdbcartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-aopartifactId><version>${spring.version}version>
dependency>
<dependency><groupId>org.springframeworkgroupId><artifactId>spring-aspectsartifactId><version>${spring.version}version>
dependency>
2.建springMVC的主配置文件
/ssm-blog/src/main/resources专门用来存放配置文件:

先建立存放 xml 配置文件的目录:


创建完毕后目录的结构:

xml 配置文件内容:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"><context:component-scan base-package="com" /><mvc:annotation-driven /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> bean>
beans>
3.修改web.xml
/ssm-blog/src/main/webapp/WEB-INF/web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><context-param><param-name>contextConfigLocationparam-name><param-value>classpath:spring/spring-*.xmlparam-value>context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>listener><servlet><servlet-name>springmvcservlet-name><servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class><init-param><param-name>contextConfigLocationparam-name><param-value>classpath:spring/spring-mvc.xmlparam-value>init-param><load-on-startup>1load-on-startup>servlet><servlet-mapping><servlet-name>springmvcservlet-name><url-pattern>/url-pattern>servlet-mapping>
web-app>
4.控制层Java代码
如果成功,则说明springMVC的配置没问题。

→再创建包
com.controller
→创建Java类:

package com.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller()
@RequestMapping("/news") // 目录
public class HelloController {// 页面传参@RequestMapping("/hello") // 子目录 news/hello// http://localhost:8080/ssm-blog/news/hello?uName=Tom%20Tompublic String demo(String uName, HttpServletRequest request) {System.out.println("第一个参数: " + uName);// 向jsp页面传参request.setAttribute("request_msg", "request_msg: 测试网页传参");return "index";}
}
→与index.jsp一同编写:
注意是 /ssm-blog/src/main/webapp/jsp/index.jsp
<%@ page language="java" import="java.util.*"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML>
<html>
<head>
<base href="<%=basePath%>"><title></title><meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head>
<body><h2>Hello World!</h2><%request.setAttribute("msg", "Long long ago..6666....");
%>${msg}<p>${request_msg}</p><p>http://localhost:8080/ssm-blog/index.jsp</p></body>
</html>
测试结果:

控制台会接收到参数:

总结
1.截至目前的项目结构:


/ssm-blog/src/main/java:

/ssm-blog/src/main/resources:

/ssm-blog/src 目录下的内容其实就是上面的 Java Resources 展开后 src 目录下的内容,看来是先有的 src 目录,系统自动将与Java相关的内容其分到 Java Resources 下了。

2.总结一下测试时浏览器输入的地址:
①http://localhost:8080/ssm-blog/news/hello:
相当于未向Java测试类中设定的属性传参,所以控制台的输出为:

②http://localhost:8080/ssm-blog/news/hello?uName=Tom:
向Java测试类中设定的属性传参的形式,uName赋什么值就能传回什么参数,所以控制台的输出为:

而 request_msg 是由 Java测试类向 jsp 页面传的参,在两种输入链接中都会显示:

3.Java代码修改后要重启Tomcat服务器,jsp修改后一般不用重启。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
