SpringMvc:
-
创建web工程,在WebRoot>WebInf>lib目录下增加springmvc的依赖包
用户访问前端控制器,前端控制器和后端控制器进行交互,后端控制器再访问JavaBean将Model或者ModelAndView返回给前端控制器,前端控制器再访问jsp进行数据可视化的渲染
1.1jsp中使用javabean的好处如下:
提高代码的可复用性:对于通用的事务处理逻辑,数据库操作等都可以封装在daoJavaBean中,通过调用JavaBean的属性和方法可快速进行程序设计。
程序易于开发维护:实现逻辑的封装,使事务处理和显示互不干扰。
支持分布式运用:多用JavaBean,尽量减少java代码和html的混编。 -
配置springmvc的前端控制器
```java
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 配置启动的优先级 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--配置servlet的映射 -->
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
4. 创建实体类
```java
public class User {
private String id;
private String userName;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
-
创建控制器类
4.1 @Controller
@RequestMapping("/user") :既可以用于类,也可以用于方法4.2 处理器传参:
a. 方法名直接入参 b. @RequestParam(value="userNo",required=true,defaultValue="001"
4.3 数据封装返回:
SpringMVC中的Model和ModelAndView主要区别1.Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到jsp页面中;
2.ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称
3.Model只是用来传输数据的,并不会进行业务的寻址。但是,ModelAndView却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。4.3.1 ModelAndView ModelAndView mav=new ModelAndView(); map.put("username", "司马懿"); map.put("password", "123456"); mav.addAllObjects(map); mav.addObject("uname","大美女"); mav.setViewName("simayi"); 4.3.2 Model //model.addAttribute("users",user); model.addAttribute(user);
-
SpringMvc+Spring+jdbc实现用户登录开发
5.1 创建工程,增加依赖
5.2 创建实体类
5.3 创建数据访问层
5.4 创建业务逻辑层
5.5 创建控制器
5.6 创建spring、SpringMvc的配置文件
<!-- 配置数据访问层和业务逻辑层包的扫描 -->
<context:component-scan base-package="com.oupeng.user.dao"></context:component-scan>
<context:component-scan base-package="com.user.service.impl"></context:component-scan>
<!-- 增加对控制器所在包的扫描 -->
<context:component-scan base-package="com.oupeng.controller"></context:component-scan>
5.7 web.xml
```java
<!-- 加载Spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-jdbc.xml</param-value>
</context-param>
<!-- 配置监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 配置启动的优先级 -->
<load-on-startup>1</load-on-startup>
</servlet>
6. SpringMvc的异常处理
```java
局部异常处理:某个控制器类
@ExceptionHandler(value=RuntimeException.class)
全局异常处理:对整个项目
<!-- 全局异常 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.RuntimeException">
error
</prop>
</props>
</property>
</bean>
-
SpringMvc的静态资源访问
<mvc:resources location="/statics/" mapping="sta/**"></mvc:resources>