1 springmvc 框架

1.1  回顾mvc结构

1.2springmvc的介绍

是一个基于mvc的web层框架,使用spring的一个子项目

在使用springmvc的时候,不用单独和spring进行集成。

2 第一个springmvc的应用

2.1新建web项目

2.2加入jar包

2.3建立Controller

Controller:应用控制器,就是一个普通的javabean

模拟用户登录:

 package org.guangsoft.controller;

 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller; public class UserController implements Controller
{ /**
* ModelAndView:对象汇总封装了需要响应到客户端额的数据的视图的页面
*/
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception
{
//获得页面请求数据
String username = request.getParameter("username");
String password = request.getParameter("password"); //创建一个ModelAndView对象,封装了需呀显示的视图和视图上需要显示的数据
ModelAndView mav = new ModelAndView();
if(username.equals("root") && password.equals("root"))
{
//请求转发
mav.setViewName("success.jsp");
mav.addObject("username",username);
}
else
{
mav.setViewName("error.jsp");
mav.addObject("msg", "用户名或密码错误!");
}
return mav;
} }

2.4建立springmvc.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- name是usercontroller请求的url -->
<bean name="/userController.action" class="org.guangsoft.controller.UserController"></bean>
</beans> 

2.5在web.xml中配置springmvc的核心控制器

Springmvc的核心控制器是一个servlet

 package org.guangsoft.controller;

 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller; public class UserController implements Controller
{ /**
* ModelAndView:对象汇总封装了需要响应到客户端额的数据的视图的页面
*/
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception
{
//获得页面请求数据
String username = request.getParameter("username");
String password = request.getParameter("password");
//床架一个ModelAndView对象,封装了需呀显示的视图和视图上需要显示的数据
ModelAndView mav = new ModelAndView();
if(username.equals("root") && password.equals("root"))
{
//请求转发
mav.setViewName("success.jsp");
mav.addObject("username",username);
}
else
{
mav.setViewName("error.jsp");
mav.addObject("msg", "用户名或密码错误!");
}
return mav;
} }

2.6建立视图页面

建立登陆页面:

建立成功提示页面:

2.7发布测试

3第一个程序问题总结

Springmvc.xml的文件加载问题:

如果不配置,默认/WEB-INF/springmvc-servlet.xml

请求url的问题:

核心控制的路径:/* 会导致jsp页面404错误,要用*.action

4 controller应用控制器的不同实现

Handler的不同实现方式,UserHandler

4.1实现Controller接口

4.2实现HttpRequestHandler

最原始的servlet写法,获得请求参数和进行跳转都是用原始的servletapi。

 package org.guangsoft.controller;

 import java.io.IOException;

 import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.HttpRequestHandler;
import org.springframework.web.servlet.ModelAndView; public class UserController2 implements HttpRequestHandler
{ @Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//获得页面请求数据
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username.equals("root") && password.equals("root"))
{
//请求转发
request.setAttribute("username", username);
response.sendRedirect("success.jsp");
}
else
{
response.sendRedirect("error.jsp");
}
} }

4.3自定义javabean(重点)

不需要实现任何接口,处理请求的方法自己定义(参数和返回值),配合注解一起使用

4.3.1定义Controller

通过扫描将controller纳入spring容器

 package org.guangsoft.controller;

 import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class UserController3
{
/**
* 返回值:stirng表示跳转的路径
* username:接受客户端请求的username
* passowrd:接受客户端请求的password
* model:封装需要响应到客户端的数据
* 参数名称必须和客户端请求的参数名称一致
* @return
*/
@RequestMapping("/userLogin")//客户端请求的url
public String userLogin(String username, String password, Model model)
{
if(username.equals("root") && password.equals("root"))
{
model.addAttribute("username",username);
return "success.jsp";//完成页面的跳转
}
else
{
model.addAttribute("msg", "您的用户名或密码错误!");
return "error.jsp";
}
}

4.3.2进行UserController3的配置

 <?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- name是usercontroller请求的url -->
<bean name="/userController.action" class="org.guangsoft.controller.UserController"></bean>
<context:component-scan base-package="org.guangsoft.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
</beans>

SpringMVC基本配置的更多相关文章

  1. SpringMVC、SpringMVC XML配置(纯XML方式)

    1.引入SrpingMVC所使用的Java包: cglib-nodep-2.1_3.jar.commons-logging.jar.spring-aspects-4.1.7.RELEASE.jar.s ...

  2. Springmvc中配置Quartz使用,实现任务实时调度。

    菜鸡的自我修炼,第一次接触quartz,做个记录.-------jstarseven 最近在项目中,第一次在springmvc中配置实用quartz,深刻的感受到quartz带来的方便,顺手做个记录. ...

  3. springMVC+Hibernate配置

    本文描述下 sypro 项目中使用 springMVC+Hibernate配置,初学SpringMVC做下简单整理解. 1.web项目首先我们要使用 web.xml文件将 spring配置引入进来 & ...

  4. SpringMVC简单配置

    SpringMVC简单配置 一.eclipse安装Spring插件 打开help下的Install New Software 点击add,location中输入http://dist.springso ...

  5. Idea简单SpringMVC框架配置

    前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势,首先Struts是需要对action进行配置,页面发送不同的请求,就需要配置不同的acti ...

  6. SpringMVC常用配置(二),最简洁的配置实现文件上传

    Spring.SpringMVC持续介绍中,基础配置前面已经介绍了很多,如果小伙伴们还不熟悉可以参考这几篇文章: 1.Spring基础配置 2.Spring常用配置 3.Spring常用配置(二) 4 ...

  7. SpringMVC常用配置

    关于Spring.SpringMVC我们前面几篇博客都介绍了很多,但是还不够,这些框架中涉及到的注解.配置非常多,那么我们今天再来介绍一个SpringMVC的基本配置,灵活的使用这些配置,可以让我们在 ...

  8. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  9. maven+springmvc的配置

    1. 首先创建1个mavenweb项目  如果没有的话最好是去官网下载一个最新版本的eclipse  里面什么都有 maven/gradle 啥的 2. 选择路径   没啥影响 就是一个路径 默认就行 ...

  10. SpringMVC的配置和使用

    SpringMVC的配置和使用 什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于 ...

随机推荐

  1. Python2.7.6标准库内建函数

        Built-in Functions     abs() divmod() input() open() staticmethod() all() enumerate() int() ord( ...

  2. Android studio2.2 ndk 错误 :format not a string literal and no format arguments!

    在Android Studio2.2 进行NDK编程,在对*char 字符串 进行日志输出时,报错: error: format not a string literal and no format  ...

  3. 关于XML序列化与CultureInfo

    不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016. 这样的话带来一个问题,例如在中文环境下 ...

  4. C语言拾遗(一)

    越来越体会到C语言的重要性,不管是在计算机底层的理解上,还是在算法数据结构上,所以遂决定重新拾起C语言,不定期更新一些知识点. 推荐博客:http://blog.csdn.net/itcastcpp ...

  5. 菜鸟初识python request属性及方法说明

    if  request.REQUEST.has_key('键值'): HttpRequest对象的属性 参考: 表 H-1. HttpRequest对象的属性 属性 描述 path 表示提交请求页面完 ...

  6. svn 上传出现Cannot accept non-LF lind endings in 'svn:log'

    可能是你到cimmit日志的字有svn不认的,重新把长传日志删掉,重新敲一遍就好了

  7. css-css权威指南学习笔记5

    第六章 文本属性 1.text-indent只能作用于块级元素(如p或inline-block或block后的span/a/i等). 2.text-align只能作用于块级元素(如p或inline-b ...

  8. icon图标

     http://images2015.cnblogs.com/blog/575577/201609/575577-20160901194344636-1596119396.png  http://im ...

  9. Beta阶段第二次Scrum Meeting

    此文章已于 2:51:42 2016/12/8 重新发布到 buaa_overwatch Beta阶段第二次Scrum Meeting 情况简述 BETA阶段第二次Scrum Meeting 敏捷开发 ...

  10. NPOI操作Excel时使用列头来读取数据的方法

    首先定义扩展方法: public static ICell GetCell(this IRow row, string clounmName) { IRow firstRow = row.Sheet. ...