unit03_01

unit03_02

springmvc流程图

案例:hello示例

/hello.do --> springmvc --> /WEB-INF/hello.jsp

/hello.do

--> DispatcherServlet

-->HandlerMapping

-->HelloController

-->ViewResolver

-->hello.jsp

a。搭建Spring Web MVC开发环境

--引入ioc,webmvc开发包

--src下添加applicationContext.xml

b。编写HelloController

2.显示登录页面

/tologin.do

-->DispatcherServlet

-->handlermapping

-->ToLoginController

-->ViewResolver

-->/WEB-INF/login.jsp

3.单机登陆按钮处理

/login.do(提交表单)

-->DispatcherServlet

-->handlermapping

-->LoginController(获取提交的用户名和密码,如果用户名为root,密码为1234,正确)

-->ViewResolver

-->错误进入/WEB-INF/login.jsp。正确进入/WEB-INF/ok.jsp

完整代码:

spring 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:util="http://www.springframework.org/schema/util"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

<!-- 配置handlermapping -->

<bean id="handlermapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<!-- 指定请求和controller对应关系 -->

<property name="mappings">

<props>

<prop key="/hello.do">helloController</prop>

<prop key="/tologin.do">tologinController</prop>

<prop key="/login.do">loginController</prop>

</props>

</property>

</bean>

<!-- 配置controller -->

<bean id="helloController" class="org.alexhe.controller.HelloController"></bean>

<bean id="tologinController" class="org.alexhe.controller.ToLoginController"></bean>

<bean id="loginController" class="org.alexhe.controller.LoginController"></bean>

<!-- 配置ViewResolver -->

<bean id="viewresolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/"></property>

<property name="suffix" value=".jsp"></property>

</bean>

</beans>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

<display-name>dnspringmvc1</display-name>

<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:applicationContext.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<servlet>

<description>JAX-RS Tools Generated - Do not modify</description>

<servlet-name>JAX-RS Servlet</servlet-name>

<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>JAX-RS Servlet</servlet-name>

<url-pattern>/jaxrs/*</url-pattern>

</servlet-mapping>

</web-app>

HelloController.java:

package org.alexhe.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 HelloController implements Controller{

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

ModelAndView mav=new ModelAndView();

mav.setViewName("hello");//设置视图名字,也就是hello.jsp 从spring的xml里prefix,suffix加上

mav.getModel().put("msg", "模型数据");//等价于request.setAttribute("msg","data");

return mav;

}

}

ToLoginController.java:

package org.alexhe.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 ToLoginController implements Controller{

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav=new ModelAndView();
mav.setViewName("login");//设置视图名字,也就是hello.jsp 从spring的xml里prefix,suffix加上

return mav;
}

}

LoginController.java:

package org.alexhe.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 LoginController implements Controller{

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav=new ModelAndView();
String username=request.getParameter("username");
String password=request.getParameter("password");
if("root".equals(username)&&"1234".equals(password)){
mav.setViewName("ok");//设置视图名字,也就是hello.jsp 从spring的xml里prefix,suffix加上
}else{
mav.setViewName("login");
}
return mav;
}

}

login.jsp:

<form action="login.do" method="post">

用户名:<input type="text" name="username"><br>

密码:<input type="password" name="password"><br>

<input type="submit" value="登陆">

</form>

ok.jsp:略

hello.jsp:略

springMVC01,使用xml的更多相关文章

  1. springMvc的一些简介 和基于xml的handlerMapping基本流程

    其它步骤就不在介绍了 在大多数情况,都会使用基于annotation的方式进行HandlerMapping处理,在这里基于对这个流程的了解,就采用了基于xml配置了一个HandlerMapping & ...

  2. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

  3. Springmvc案例1----基于spring2.5的採用xml配置

    首先是项目和所须要的包截图: 改动xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  4. SpringMVC-01 什么是SpringMVC

    SpringMVC-01 什么是SpringMVC 回顾MVC 1.什么是MVC MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑 ...

  5. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  6. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  7. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

  8. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  9. UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)

    最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...

随机推荐

  1. js -- 绑定的click addEventListener 事件只触发一次

    var btn = document.getElementById('btn'); // 添加事件绑定 btn.addEventListener('click', btnClick, false); ...

  2. C# Task ContinueWith的实现

    看了上一篇C# Task 是什么?返回值如何实现? Wait如何实现 我们提到FinishContinuations方法中会调用TaskContinuation实例,那么我们的ContinueWith ...

  3. Velocity日期格式化

    1.pom.xml添加依赖 <dependency> <groupId>velocity-tools</groupId> <artifactId>vel ...

  4. edis更新的正确方法

    Redis更新的正确方法 https://www.cnblogs.com/westboy/p/8696607.html redis做缓存,怎么更新里面的数据 https://blog.csdn.net ...

  5. [Python设计模式] 第22章 手机型号&软件版本——桥接模式

    github地址:https://github.com/cheesezh/python_design_patterns 紧耦合程序演化 题目1 编程模拟以下情景,有一个N品牌手机,在上边玩一个小游戏. ...

  6. 【转载】浅谈事件冒泡与事件捕获 - javascript 事件代理

    原文:https://segmentfault.com/a/1190000000749838 事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发 ...

  7. Elasticsearch模糊查询

    前缀查询 匹配包含具有指定前缀的项(not analyzed)的字段的文档.前缀查询对应 Lucene 的 PrefixQuery . 案例 GET /_search { "query&qu ...

  8. Python中的三元运算符

    Python中的三元运算符 对于如下需求: if var1>1 : goal = "执行表达式1" else: goal = "执行表达式2" 1.在其他 ...

  9. test001

    #include <iostream> using namespace std; ][]; int main() { int num; ; ; i <= ; i++) dp[i][] ...

  10. linux下access函数

    Linux内核总是根据进程的有效用户ID和有效组ID来决定一个进程是否有权访问某个文件. 因此,在编写调整用户ID的程序时,在读写一个文件之前必须明确检查其用户是否原本就有对此文件的访问权限. 为了实 ...