zoukankan      html  css  js  c++  java
  • SpringMVC基本使用步骤

    使用Spring MVC,第一步就是使用Spring提供的前置控制器,即Servlet的实现类DispatcherServlet拦截url:org.springframework.web.servlet.DispatcherServlet;

    拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller来处理;

    创建一个SpringMVC项目,使用MyEclipse:

    1)创建web项目;

    2)添加spring相关jar包,不需要格外导入其他的jar包,创建application.xml配置文件;

    3)在web.xml上配置DispatcherServlet选项,并指明初始化参数位置为application.xml;

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <servlet>
      	<servlet-name>xxx</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>
      </servlet>
      <servlet-mapping>
      	<servlet-name>xxx</servlet-name>
      	<url-pattern>*.do</url-pattern>
      </servlet-mapping>	
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

    4)在application.xml中配置扫描器context,扫描包中类的所有注解,进行自动装配;配置视图解析器InternalResourceViewResolver;

    <?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"
    	xmlns:context="http://www.springframework.org/schema/context"
    	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
    	">
    
    	<!-- 扫描器:扫描包中的所有的注解 进行自动装配 -->
    	<context:component-scan base-package="com.it"/>
    	<!-- 视图解析器 -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp"/>
    
    </beans>
    5)创建实体类javabean;

    package com.it.entity;
    
    /**
     * 登陆账户实体类
     */
    public class Account {
    	private int id;
    	private String cardNo;
    	private String pwd;
    	private int balance;
    	private String nickName;
    
    	public Account() {
    		super();
    	}
    
    	public Account(int id, String cardNo, String pwd, int balance,
    			String nickName) {
    		super();
    		this.id = id;
    		this.cardNo = cardNo;
    		this.pwd = pwd;
    		this.balance = balance;
    		this.nickName = nickName;
    	}
    
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getCardNo() {
    		return cardNo;
    	}
    
    	public void setCardNo(String cardNo) {
    		this.cardNo = cardNo;
    	}
    
    	public String getPwd() {
    		return pwd;
    	}
    
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    
    	public int getBalance() {
    		return balance;
    	}
    
    	public void setBalance(int balance) {
    		this.balance = balance;
    	}
    
    	public String getNickName() {
    		return nickName;
    	}
    
    	public void setNickName(String nickName) {
    		this.nickName = nickName;
    	}
    
    }

    6)创建controller类并进行注解配置(@Controller,@RequestMaping);

    LoginController.java

    package com.it.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.SessionAttributes;
    
    import com.it.entity.Account;
    
    /**
     * 登陆后端控制器
     */
    @Controller
    // Session范围 将acc存入到session中
    @SessionAttributes(value = "acc")
    public class LoginController {
    	// 页面和方法参数一一对应
    	@RequestMapping(value = "login.do")
    	// Modelmap参数携带者
    	public String login(String textName, String textPwd, ModelMap map) {
    		// 模拟登陆
    		if ("tom".equals(textName) && "123".equals(textPwd)) {
    			Account acc = new Account(1001, textName, textPwd, 1000, "游泳的鸟");
    			map.put("acc", acc);
    			// 重定向
    			return "redirect:/list.do";
    		}
    		map.put("msg", "登录失败。。。");
    		return "login";
    	}
    
    	// 页面参数和方法参数不一致时,需要requeparam转换
    	@RequestMapping(value = "login2.do")
    	public String login2(@RequestParam("name") String textName,@RequestParam("pwd") String textPwd, ModelMap map) {
    		// 模拟登陆
    		if ("tom".equals(textName) && "123".equals(textPwd)) {
    			Account acc = new Account(1001, textName, textPwd, 1000, "游泳的鸟");
    			map.put("acc", acc);
    			// 转向list.jsp
    			return "list";
    		}
    		map.put("msg", "登录失败。。。");
    		// 转向login.jsp
    		return "login";
    	}
    
    	// 使用实体类参数
    	@RequestMapping(value = "login3.do", method = RequestMethod.POST)
    	public String login3(Account a, ModelMap map) {
    		// 模拟登陆
    		if ("tom".equals(a.getCardNo()) && "123".equals(a.getPwd())) {
    			Account acc = new Account(1001, a.getCardNo(), a.getPwd(), 1000,
    					"游泳的鸟");
    			map.put("acc", acc);
    			return "list";
    		}
    		map.put("msg", "登录失败。。。");
    		return "login";
    	}
    
    }
    ListController.java
    package com.it.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.SessionAttributes;
    
    import com.it.entity.Account;
    
    @Controller
    @SessionAttributes(value = "ls")
    public class ListController {
    	
    	@RequestMapping(value = "list.do")
    	public String list(ModelMap map) {
    		List<Account> ls = new ArrayList<Account>();
    		ls.add(new Account(1001, "tom", "123", 1000, "会飞的鱼"));
    		ls.add(new Account(1002, "tony", "111", 1500, "会游泳的鸟"));
    		ls.add(new Account(1003, "jack", "000", 2000, "开飞机的乌龟"));
    		map.put("ls", ls);
    		return "list";
    	}
    }

    7)创建jsp页面,页面上的数据使用EL表达式来显示;

    login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    </head>
    
    <body>
    	<form action="login.do" method="post">
    		<input name="textName" /> <input name="textPwd" /> <input
    			type="submit" value="登陆...">
    	</form>
    	<span style="color: red;">${msg }</span>
    </body>
    </html>

    login2.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    </head>
    
    <body>
    	<form action="login2.do" method="post">
    		<input name="name" /> <input name="pwd" /> <input
    			type="submit" value="登陆...">
    	</form>
    	<span style="color: red;">${msg }</span>
    </body>
    </html>

    login3.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    </head>
    
    <body>
    	<form action="login3.do" method="post">
    		<input name="cardNo" /> <input name="pwd" /> <input
    			type="submit" value="登陆...">
    	</form>
    	<span style="color: red;">${msg }</span>
    </body>
    </html>
    list.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    </head>
    
    <body>
    <center>
    	<h1>欢迎你,${sessionScope.acc.nickName }</h1>
    </center>
    <table align="center" border="1px;" width="40%">
    	<tr align="center">
    		<td>序号</td>
    		<td>账号</td>
    		<td>密码</td>
    		<td>余额</td>
    		<td>昵称</td>
    		<td>操作</td>
    	</tr>
    	<c:forEach var="acc" items="${ls }">
    		<tr align="center">
    			<td>${acc.id }</td>
    			<td>${acc.cardNo }</td>
    			<td>${acc.pwd }</td>
    			<td>${acc.balance }</td>
    			<td>${acc.nickName }</td>
    			<td>
    				<a href="#">删除</a>
    				<a href="#">修改</a>
    			</td>
    		</tr> 
    	</c:forEach>
    </table>
    </body>
    </html>

    8)配置服务器即可测试。



  • 相关阅读:
    10种颜色 线性渐变 web buttons按钮 兼容IE6
    10个款优秀的jquery图片特效插件推荐 值得分享
    【转载】C#中多线程间的同步
    【转载】JavaScript获取当前Url路径
    【转载】MVC 强类型视图
    【转载】jQuery遍历
    【转载】MVC Ajax Helper或jQuery异步方式加载部分视图
    【转载】MVCHtmlHelper简单总结
    【转载】ASP.NET MVC之下拉框绑定四种方式
    【转载】MVC Ajax Helpers
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537403.html
Copyright © 2011-2022 走看看