SprigMVC基础测试

  1. 创建POJO

    1.  1 package org.entity;
       2
       3
       4 public class User {
       5     private int id;
       6     private String userName;
       7     private String email;
       8     private Address address;
       9     public User(int id, String userName, String email, Address address) {
      10         super();
      11         this.id = id;
      12         this.userName = userName;
      13         this.email = email;
      14         this.address = address;
      15     }
      16     @Override
      17     public String toString() {
      18         return "User [id=" + id + ", userName=" + userName + ", email=" + email + ", address=" + address + "]";
      19     }
      20     public User(int id, String userName, String email) {
      21         super();
      22         this.id = id;
      23         this.userName = userName;
      24         this.email = email;
      25     }
      26     public Address getAddress() {
      27         return address;
      28     }
      29     public void setAddress(Address address) {
      30         this.address = address;
      31     }
      32     public int getId() {
      33         return id;
      34     }
      35     public void setId(int id) {
      36         this.id = id;
      37     }
      38     public String getUserName() {
      39         return userName;
      40     }
      41     public void setUserName(String userName) {
      42         this.userName = userName;
      43     }
      44     public String getEmail() {
      45         return email;
      46     }
      47     public void setEmail(String email) {
      48         this.email = email;
      49     }
      50     public User() {
      51 }
      52 }
    2.  1 package org.entity;
       2
       3 public class Address {
       4 private String provience;
       5 private String city;
       6 public String getProvience() {
       7     return provience;
       8 }
       9 public void setProvience(String provience) {
      10     this.provience = provience;
      11 }
      12 public String getCity() {
      13     return city;
      14 }
      15 public void setCity(String city) {
      16     this.city = city;
      17 }
      18 @Override
      19 public String toString() {
      20     return "Address [provience=" + provience + ", city=" + city + "]";
      21 }
      22 }
  2. 配置web.xml
    1.  1 <?xml version="1.0" encoding="UTF-8"?>
       2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
       5     id="WebApp_ID" version="3.1">
       6 <!--配置DispatcherServlet  -->
       7 <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
       8     <servlet>
       9         <servlet-name>springDispatcherServlet</servlet-name>
      10         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      11         <!-- 配置DiapacherServlet初始化参数 -->
      12         <init-param>
      13             <param-name>contextConfigLocation</param-name>
      14             <param-value>classpath:springmvc.xml</param-value>
      15         </init-param>
      16         <!--   -->
      17         <load-on-startup>1</load-on-startup>
      18     </servlet>
      19
      20     <!-- Map all requests to the DispatcherServlet for handling -->
      21     <servlet-mapping>
      22         <servlet-name>springDispatcherServlet</servlet-name>
      23         <url-pattern>/</url-pattern>
      24     </servlet-mapping>
      25 </web-app>
  3. 配置SpringMVC.xml
    1.  1 <?xml version="1.0" encoding="UTF-8"?>
       2 <beans xmlns="http://www.springframework.org/schema/beans"
       3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       4     xmlns:context="http://www.springframework.org/schema/context"
       5     xmlns:mvc="http://www.springframework.org/schema/mvc"
       6     xmlns:task="http://www.springframework.org/schema/task"
       7     xmlns:aop="http://www.springframework.org/schema/aop"
       8     xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       9         http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd
      10         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
      11         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
      12         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      13         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
      14         http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.0.xsd
      15         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
      16         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
      17 <!-- 配置自定义扫描得包 -->
      18     <context:component-scan base-package="org.handler"></context:component-scan>
      19 <!-- 配置视图解析器:如何把handler返回值解析为实际的物理视图 -->
      20         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      21         <property name="prefix" value="/WEB-INF/views/"></property>
      22         <property name="suffix" value=".jsp"/>
      23     </bean>
      24 <!-- 自定义图 视图解析器   使用视图的名字来解析视图-->
      25 <!-- 通过order属性来定义视图优先级 order值越小优先级越高-->
      26     <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
      27     <property name="order" value="100"></property>
      28     </bean>
      29     <!-- 配置直接转发的页面 -->
      30     <mvc:view-controller path="/success" view-name="success"/>
      31     <!-- 在实际开发中需要配置mvc:annotation-driven标签  -->
      32     <mvc:annotation-driven></mvc:annotation-driven>
      33 <!-- 配置国际化资源文件 -->
      34 <bean id="messageSource"
      35         class="org.springframework.context.support.ResourceBundleMessageSource">
      36         <property name="basename" value="i18n"></property>
      37         </bean>
      38
      39 </beans>
  4. 编写jsp
    1.   index.jsp

       1 <%@ page language="java" contentType="text/html; charset=UTF-8"
       2     pageEncoding="UTF-8"%>
       3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
       4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
       5 <html>
       6 <head>
       7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
       8 <title>Insert title here</title>
       9 </head>
      10 <body>
      11     <a href="helloword">Hello Word</a>
      12     <br>
      13     <form action="testUser">
      14         id:<input type="text" name="id"/>
      15         <br>
      16         userName:<input type="text" name="userName"/>
      17         <br>
      18         email:<input type="text" name="email"/>
      19         <br>
      20         provience:<input type="text" name="address.provience"/>
      21         <br>
      22         city:<input type="text" name="address.city"/>
      23         <input type="submit" value="提交"/>
      24     </form>
      25     <br/>
      26     <a href="testServletAPI">testServletAPI</a>
      27     <br>
      28     <a href="testModelAndView">testModelAndView</a>
      29     <br>
      30     <a href="testMap">test Map</a>
      31     <br>
      32     <a href="testSessionAttributes">testSessionAttributes</a>
      33
      34     <br><br>
      35     <!--
      36         模拟修改操作
      37         1.原始数据为  1 tom @tom.com
      38         2.名字不能被修改
      39         3.表单回显,模拟操作直接在表单填写对应的属性值
      40      -->
      41     <form action="testModelAttribute">
      42         <input type="hidden" name = "id" value="1"/>
      43         email:<input type="text" name ="email" value="@tom.com"/>
      44         <input type="submit" value="提交"/>
      45     </form>
      46     <br><br>
      47
      48     <a href="testViewSourceAndViewResolver">testViewSourceAndViewResolver</a>
      49
      50         <br><br>
      51     国际化:
      52     <br>
      53     <fmt:message key="i18n.username"></fmt:message>
      54     <br>
      55     <fmt:message key="i18n.password"></fmt:message>
      56
      57     <br><br>
      58     <a href="testView">testView</a>
      59     <br><br>
      60     <a href=testRedirect>testRedirect</a>
      61 </body>
      62 </html>
    2.   success.jsp
     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     8 <title>Insert title here</title>
     9 </head>
    10 <body>
    11     hello SpringMVC
    12     <br>
    13     time: ${requestScope.time}
    14     <br>
    15     name: ${requestScope.names}
    16     <br><br>
    17     request user: ${requestScope.user}
    18     <br>
    19     session user: ${sessionScope.user}
    20     <br><br>
    21     request email: ${requestScope.email}
    22     <br>
    23     session email: ${sessionScope.email}
    24     <br>
    25     <br><br>
    26     国际化:
    27     <br>
    28     <fmt:message key="i18n.username"></fmt:message>
    29     <br>
    30     <fmt:message key="i18n.password"></fmt:message>
    31 </body>
    32 </html>
  5. 编写Handler
    1.   1 package org.handler;
        2
        3 import java.io.IOException;
        4 import java.io.Writer;
        5 import java.util.Arrays;
        6 import java.util.Date;
        7 import java.util.HashMap;
        8 import java.util.Map;
        9
       10 import javax.servlet.http.HttpServletRequest;
       11 import javax.servlet.http.HttpServletResponse;
       12 import javax.xml.ws.soap.MTOM;
       13
       14 import org.apache.catalina.startup.Tomcat;
       15 import org.apache.taglibs.standard.lang.jstl.test.beans.PublicInterface2;
       16 import org.entity.User;
       17 import org.omg.PortableInterceptor.SUCCESSFUL;
       18 import org.springframework.stereotype.Controller;
       19 import org.springframework.validation.Errors;
       20 import org.springframework.web.bind.annotation.ModelAttribute;
       21 import org.springframework.web.bind.annotation.RequestMapping;
       22 import org.springframework.web.bind.annotation.RequestParam;
       23 import org.springframework.web.bind.annotation.SessionAttributes;
       24 import org.springframework.web.servlet.ModelAndView;
       25 import com.sun.net.httpserver.Authenticator.Success;
       26 import com.sun.org.apache.bcel.internal.generic.NEW;
       27 import com.sun.org.apache.regexp.internal.recompile;
       28 //@SessionAttributes(value={"user"},types={String.class})
       29 @Controller
       30 public class SpringMVC {
       31 public    static String SUCCESS = "success";
       32     /**
       33      * 使用@RequestMapping注解来映射请求的URL
       34      * @return
       35      */
       36 @RequestMapping("/helloword")
       37 public String testhello() {
       38     System.out.println("helloword");
       39     return "success";
       40 }
       41 /**
       42  * 支持提交pojo  会根据name与pojo属性进行匹配 支持级联属性
       43  * @param user
       44  * @return
       45  */
       46 @RequestMapping("/testUser")
       47 public String  testUser(User user) {
       48     System.out.println("User:"+user.toString());
       49     return "success";
       50 }
       51 /**
       52  * 支持使用servlet原生api
       53  * HttpServletReqyest
       54  * HttpServletResponse
       55  * HttpSession
       56  * java.security.Prinipal
       57  * Locale
       58  * InputStream
       59  * OutputStream
       60  * Reader
       61  * Writer
       62  * @throws IOException
       63  */
       64 @RequestMapping("testServletAPI")
       65 public String testServletAPI(HttpServletRequest request,
       66         HttpServletResponse response,
       67         Writer out) throws IOException {
       68
       69     System.out.println("testServletAPI:"+request+"\n"+response+"\n"+out);
       70     out.write("hello writer");
       71     out.write(1111);
       72     return "success";
       73 }
       74 /**
       75  * ModelAndView
       76  * Map及Model
       77  * @sessionAttributes
       78  * @ModelAttribute
       79  * 目标方法的返回值可以是ModelAndView类型其中包含视图和模型信息
       80  */
       81 @RequestMapping("testModelAndView")
       82 public ModelAndView testModelAndView() {
       83     String viewName="success";
       84     ModelAndView modelAndView = new ModelAndView(viewName);
       85     modelAndView.addObject("time",new Date());
       86     return modelAndView;
       87 }
       88 /**
       89  * 目标方法可以添加map(也可以是Model类型或ModelMap类型)类型参数
       90  * @param map
       91  * @return
       92  */
       93 @RequestMapping("testMap")
       94 public String testMap(Map<String,Object> map) {
       95     map.put("names",Arrays.asList("tom","jerry","mike"));
       96     return "success";
       97 }
       98 /**
       99  * map 默认在request域里不会装进Session域
      100  * 用sessionAttributes在controller类上做注解使属性值进入session域
      101  * 其括号内可放键、值  如上设置
      102  * @SessionAttributes(value={"user"},types={String.class})
      103  * 表示将   键 为"user" 或  值为String类型的   键值对放入session域
      104  * 注意 :该注解只能放在类上
      105  */
      106
      107 @RequestMapping("testSessionAttributes")
      108 public String  testSessionAttributes(Map<String, Object> map) {
      109     User user = new User(121,"tom","@qwqx.com");
      110     map.put("user", user);
      111     map.put("email", "@myemail.com");
      112     return  SUCCESS;
      113 }
      114 /**@RequestMapping("testModelAttribute")
      115  * 如果数据库中的数据进行修改操作,默认的表单提交会new一个对象传回后台
      116  * 如果规定某些属性无法修改,在表单里我们是不需要列出来的,而表单里我们不对属性进行赋值,
      117  * 会造成对象属性为null,在写入数据库时造成麻烦,
      118  * 当然我们可以用hidden赋值,但如果是私密属性又会有麻烦
      119  * 在这里我们可以选择先从数据库插叙获取到对象,传送到页面,表单提交只是对属性值作出更改,而不是新建对象
      120  */
      121 @RequestMapping("testModelAttribute")
      122 public String testModelAttribute(@ModelAttribute("user")User user) {
      123     System.out.println("修改:"+user);
      124     return SUCCESS;
      125 }
      126 /**
      127  * 由@ModelAttribute标记的方法会在每个目标方法执行之前被SpringMVC调用
      128  * 在ModelAttribute修饰的方法中,放入到Map时的键需要和目标方法参数类型的第一个字母小写的字符串一致
      129  * 可以在目标方法的参数上用@ModelAttribute("user") 用于指定获取对象时需要查找的键
      130  * testModelAttribute(@ModelAttribute("user")User user)
      131  */
      132 @ModelAttribute
      133 public void getUser(@RequestParam(value="id",required=false) Integer  id,
      134                     Map<String, Object> map) {
      135     if(id!=null) {
      136 //        假设user为数据库查询出来的对象
      137         User user = new User(2,"Tom", "@tom.com");
      138         System.out.println("数据库查询出来的对象:"+user.toString());
      139         map.put("user",user);
      140     }
      141 }
      142 @RequestMapping("testViewSourceAndViewResolver")
      143 public String testViewSourceAndViewResolver() {
      144
      145     return SUCCESS;
      146 }
      147 @RequestMapping("testView")
      148 public String  testView() {
      149     System.out.println("testView");
      150     return "helloView";
      151 }
      152 @RequestMapping("testRedirect")
      153 public String testRedirect() {
      154     System.out.println("testRedirect");
      155     return "redirect:/index.jsp";
      156 }
      157 }

自定义视图测试:

    

 1 package org.views;
 2
 3 import java.util.Date;
 4 import java.util.Map;
 5
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8
 9 import org.springframework.stereotype.Component;
10 import org.springframework.web.servlet.View;
11
12 @Component
13 public class HelloView implements View{
14
15     @Override
16     public String getContentType() {
17         return "text/html";
18     }
19
20     @Override
21     public void render(Map<String, ?> arg0, HttpServletRequest arg1, HttpServletResponse arg2) throws Exception {
22     arg2.getWriter().print("hello view .time"+new Date());
23     }
24
25 }

原文地址:https://www.cnblogs.com/the-wang/p/8108095.html

时间: 2024-10-01 17:22:08

SprigMVC基础测试的相关文章

我完成基础测试啦!!!!

今天我终于把黑马入学流程里的基础测试提交了,有一种如释重负的感觉.下一步就是OC的入学基础测试了,fight!fight!fight! 这几天主要任务是C语言基础测试,但是也夹杂这学了一些OC基础知识.主要学习了: 先复习下类的本质:其实类也是一个对象,对象都有类型,类对象本身是个class类型的对象 创建类对象的过程: 先利用class某某类对象,获取内存中的类对象 class(在class中的声明中已经包含*) c(变量名) = [类对象  class]->这就是class类型的类对象 *一

一张图Get基础测试专业术语

所谓术语是在特定学科领域用来表示概念的集合.表示每个专业的特殊概念,所以使用范围也仅限于某个行业或产品.这一节的专业术语仅针对软件测试领域,也有少部分涉及到了软件开发和管理范围. 对于初入软件测试的新人来说,有些基本的测试术语一定需要了解(组内例会或需求评审时经常会有其他成员运用术语描述),而对于面向国际化测试的公司产品,则需要更广泛的术语词汇量. 以下是在工作过程中积累的软件测试术语汇总表,这里只摘出了部分基础术语,并按照测试分类.缺陷相关.工具相关.测试过程等类别对术语进行系统化整理,更方便

mysql fabric基础测试

IP规划 主:192.168.1.2, 从:192.168.1.4, 管理主机:192.168.1.5 管理主机要安装mysql-connector-python和mysql-utilities Mysql-python连接器下载地址:http://dev.mysql.com/downloads/connector/python/ rpm -ivh mysql-connector-python-2.0.4-1.el6.src.rpm # wget -c http://dev.mysql.com/

Linux基础测试--11道题

000.创建一个目录/data 1 mkdir /data 001.在/data 下面创建一个文件oldboy.txt 1 touch /data/oldboy.txt 002.为oldboy.txt 增加内容为"I am studying linux." 1 vi /data/oldboy.txt #点按i键进入编辑模式 2 I am studying linux. #点按ESC键退出编辑模式 3 ~ 4 ~ 5 ~ :wq 003.把oldboy.txt 文件拷贝到/tmp 下 c

mysql基础测试

测试原因   为什么需要做性能测试 模拟比当前系统更高的负载,找出性能瓶颈 重现线上异常 测试不同硬件软件配置 规划未来的业务增长 测试分类   性能测试的分类 设备层的测试 业务层的测试 数据库层的测试   设备层的测试 关注哪些指标 服务器,磁盘性能 磁盘坏块率 服务器寿命 业务层测试 针对业务进行测试 数据库层的测试 什么情况下要做Mysql的测试 测试不同的Mysql分之版本 测试不同的mysql版本 测试不同的mysql参数搭配 mysql测试分类 CPU Bound --全内存的测试

java基础测试

测试一: 第1题:Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点? 答:Collection是集合操作的接口,Set和List都继承自它:Collections是一个集合工具类,其中方法sort()可以对实现了Comparable 接口的类进行排序.addAll()方法为集合添加内容,binarySearch()方法用于集合检索,reverse()将集合内容翻转等.两者关系: Collections提供了操作Collecti

Hive基础测试操作

一.Hive测试 1.查看数据库 show databases; 2.使用某个数据库,如默认数据库 user default; 3.创建表 create table if not exist itstar(id int,name string); 4.插入数据 insert into table itstar values(1,"wyh"); 5.查询 select * from itstar; 6.删除表 drop table itstar; 7.删除数据库 create datab

基础测试(选择题)

cron 后台常驻程序 (daemon) 用于: D A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ? B A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 下面哪个Linux命令可以一次显示一页内容?C A. pause B. cat C. more D. grep 怎样了解在当前目录下还有多大空间? C A. Use df B. Use d

UI基础测试题目--实现gif图片演示的操作效果