java SpringMVC3 的例子

来源:互联网 发布:安卓服务端数据库 编辑:程序博客网 时间:2024/05/21 18:32

今天学习了Spring MVC3的内容,写了一些示例,由于关于Spring MVC的资料网上特别多,这里就不在赘述。

开发环境:

jdk:1.7+MyEclipse10+Spring3.0+Apache Tomcat 7.0

1.入门级

1)新建index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Spring MVC3 Demo</title></head><body> <a href="test.html">Spring MVC 示例</a> <a href="login.do">login</a> <a href="test.xx">test xx</a></body></html>

2) 配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>spring</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>        <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>            org.springframework.web.servlet.DispatcherServlet        </servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

3) 配置springmvc-servlet.xml

这个文件类似于之前的ApplicationContext.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"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.0.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-3.0.xsd" default-autowire="byName"><context:component-scan base-package="com.wicresoft.controller" /><bean id="viewResolver"class="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/" /><property name="suffix" value=".jsp" /></bean></beans>

4)添加HomeController

package com.wicresoft.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HomeController {@RequestMapping("/test.html")public ModelAndView GetMessage(){String str = "This Spring MVC Demo Return From Server";return new ModelAndView("message","str",str);}@RequestMapping("/test.xx")public ModelAndView GetMessage2(){String str = "test.xx return";return new ModelAndView("message","str",str);}}

5) 添加Jar包

6)使用Tomcat 启动(非MyEclipse自带的)

7) 访问

点击两个链接分别返回

总结:

(1).Spring MVC 支持注解的方式完成Url和Action方法的映射,这个跟ASP.NET MVC 的属性一样的。

(2).Spring MVC  不负责根据后缀名选择如何处理,完全由程序控制。

(3).Spring MVC 通过配置的方式来约定映射规则。

2.页面传值

1)新增LoginController

package com.wicresoft.controller;import javax.servlet.http.HttpServletRequest;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.servlet.ModelAndView;import com.wicresoft.model.*;@Controllerpublic class LoginController {/*@RequestMapping("/login.do")public ModelAndView GetMessage(){String str = "success";return new ModelAndView("message","str",str);}*/@RequestMapping(value = "/login.do", method = RequestMethod.POST)public ModelAndView onSubmit(HttpServletRequest request, ModelMap modelMap){String username = request.getParameter("username");           String password = request.getParameter("password");         LoginForm form = new LoginForm();        form.setUsername(username);        form.setPassword(password);        if(username.equals("Admin")&&password.equals("12345")){        return new ModelAndView("success","username",form);        }        else{        return new ModelAndView("success","username","error");        }}}
 

登录页面

<%@ page contentType="text/html;charset=utf-8"%>  <html> <head><title></title></head> <body> <form method="post" action=login.do>    <table>      <tr><td>姓名</td><td><input id="user" name="username" type="text" /></td></tr>      <tr><td>密码</td><td><input id="psw" name="password"  type="text" /></td></tr>      <tr><td colSpan="2" align="center"><input type="submit" value="提交" width="180px"/></td></tr>  </table>  </form> </body> </html> 

登录成功的页面

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%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 'success.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>  <h1>final</h1>     ${username.getUsername()}  </body></html>


登录效果

登录之后

总结:

1)在Controller中可以使用request对象获取页面输入的参数

2)controller可以返回对象给页面,并且自动序列化,在页面接收的时候,自动进行反序列化!类似ASP.NET MVC 的模型传递!

3)注解可以注解post/get方法


0 0