springmvc的入门篇
来源:互联网 发布:域名如何别名解析 编辑:程序博客网 时间:2024/06/04 08:56
1.1. Spring MVC VS Struts2
我们用Struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置Spring3 mvc可以认为已经100%零配置了
Spring会比Struts快,在Struts中默认配置了很多缺省的拦截器,在给开发者提供便利的同时,失去了灵活性和人执行效率.
Spring mvc是基于方法的设计, 而Sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,可控制更强
设计思想上:Struts更加符合oop的编程思想,Spring是在在Servlet上扩展,使用AOP实现。
Intercepter的实现机制:Struts有以自己的interceptor机制,Spring mvc用的是独立的AOP方式. 需要的自己配置,比较麻烦当性能较优,灵活性高.。提供强大的约定大于配置的契约式编程支持
2 环境与入门案例
2.1使用示例
2.1.1创建项目并导入相关jar包
mvc、aop、core相关包
2.1.2创建配置文件
新建spring-mvc.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="//www.springframework.org/schema/beans"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xmlns:p="//www.springframework.org/schema/p"
xsi:schemaLocation="//www.springframework.org/schema/beans //www.springframework.org/schema/beans/spring-beans-3.1.xsd
">
</beans>
2.1.3 配置前端过滤器
org.springframework.web.servlet.DispatcherServlet,继承HttpServlet,需要在Web.xml文件中定义
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="//java.sun.com/xml/ns/javaee"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="//java.sun.com/xml/ns/javaee
//java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
2.1.4创建控制器
创建控制器FirstAction.java,实现Controller接口
// action实现Controller接口,并实现handleRequest方法(类似service方法),与JSP内置对象偶合
public class FirstAction implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
System.out.println("传入的数据为");
String userName=request.getParameter("userName");
String pwd=request.getParameter("pwd");
System.out.println("userName:"+userName);
System.out.println("这里可以调用业务层处理业务。");
//封装数据,可以直接使用request对象,也可以使用封装等方式,真正使用时可以选择一种
request.setAttribute("rUserName", userName);
Map<String, String > map=new HashMap<String, String>();
map.put("mUserName",userName);
//返回视图层,如果使用map封装数据,需要作为(第二个)参数传递,也是request作用域。
return new ModelAndView("/jsp/first.jsp",map);
//返回视图层,不传递map。
//return new ModelAndView("/jsp/first.jsp");
//也可以使用如下方式传递,不使用Map,数据一样是request作用域
//return new ModelAndView("/jsp/first.jsp","mUserName",userName);
}
}
2.1.5修改配置文件,添加控制器信息
修改spring-mvc.xm.文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="//www.springframework.org/schema/beans"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xmlns:p="//www.springframework.org/schema/p"
xsi:schemaLocation="//www.springframework.org/schema/beans //www.springframework.org/schema/beans/spring-beans-3.1.xsd
">
<!--
1。配置action,实现controler接口
2。配置映射处理器,用来处理请求与action的映射,可以不用写id,
3。配置视图解析器:完成ModelAndView的解析
缺点:
1。与JSP偶合
2。只支持属性的注入,不支持封闭后对象注入
-->
<!-- 声明bean的name,因为使用了BeanNameUrlHandlerMapping,所以不是定义id,用户调用的URL将通过bean的name匹配 -->
<bean name="/first.action" class="cn.itcast.action.FirstAction" />
<!-- 声明 BeanNameUrlHandlerMapping,使用名称映射-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 支持servlet与jsp视图解析,可进行进一步处理,此步可省略, -->
<!-- InternalResourceViewResolver支持servlet与jsp视图解析,没有配置时,默认使用它,此步可省略, -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 可以加前缀或后缀 -->
<!--
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
-->
</bean>
2.1.6创建结果展现页面
新建目录jsp及目录下新建first.jsp,用来展现访问结果。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
这是/jsp/first.jsp页面.<br/>
<!-- 获取并展现控制层传递过来的值 -->
直接通过request传递的值:${requestScope.rUserName}<br/>通过Map传递的值:${requestScope.mUserName}
</body>
</html>
2.1.7编写测试(访问)页面
编写index.jsp用来访问控制器
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<a href="first.action?userName=zcf&pwd=admin">firstMVC</a>
</body>
</html>
- springmvc的入门篇
- 关于SpringMvc的入门
- springMVC的入门
- SpringMvc的入门案例
- springmvc的入门使用
- Springmvc的入门---配置
- SpringMVC入门篇
- 码农小汪-SpringMVC-入门篇
- springmvc入门篇
- 码农小汪-SpringMVC-入门篇
- springmvc学习指南-springmvc的CRUD入门
- 菜鸟的springMVC的入门
- 基于注解的SpringMVC入门
- SpringMVC入门篇(三)搭建实例遇到的错误
- SpringMVC入门之Annotation篇
- SpringMVC入门之Annotation篇
- SpringMvc学习之入门篇
- 秀外慧中的springMVC(一)---springMVC的xml配置入门例子
- Docker学习笔记-- 如何使用Dockerfile构建镜像
- hibernate 树状自关联 *.hbm.xml 配置
- js离开当前页面时触发的函数
- python3.5——Pandas模块使用(下)——缺失值处理和层次索引
- There is no getter for property named 'XXX' in 'class java.lang.XXX
- springmvc的入门篇
- 1014. 福尔摩斯的约会 (20)
- LLVM学习笔记(22)
- git权威指南总结三:git重置
- FCC算法:八、重复输出字符串--Repeat a string repeat a string
- MongoDB 查看所有用户账号信息
- Homebrew
- pvr与png的内存占用
- Eclipse 常用快捷键