springmvc

在这里插入图片描述
.
在这里插入图片描述
在这里插入图片描述

.
在这里插入图片描述

.
.

package com.zhuzhu.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//控制器类
@Controller
public class HelloController {

    @RequestMapping(path = "/hello")
    public String sayHello(){
        System.out.println("hello stringmvc");
        return "success";
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
.
pom.xml

<dependencies>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>


    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.6.RELEASE</version>
    </dependency>

      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>


  </dependencies>




@RequestMapping
@RequestMapping中的path和value都是指定路径
在这里插入图片描述

在这里插入图片描述

.
.
.
请求方式post请求方式
在这里插入图片描述

表示必须传一个username属性,如果不传那这个方法就不会执行
在这里插入图片描述
这样传:在这里插入图片描述
。。
。。
如果配置这样写在这里插入图片描述
,那这里也要传heihei
在这里插入图片描述


请求头

在这里插入图片描述
启动 、、浏览器:
在这里插入图片描述


请求参数的绑定
在这里插入图片描述

/**
 * 请求参数绑定
 */
@Controller
@RequestMapping("/param")
public class ParamController {

    /**
     * 请求参数绑定入门
     *
     * return
     */
    @RequestMapping("/testParam")
    public String testParam(){
        System.out.println("执行了。。。");
        return "sucess";
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--请求参数绑定--%>
<a href="param/testParam">请求参数绑定</a>
</body>
</html>


传参数
在这里插入图片描述
在这里插入图片描述

传多个:
在这里插入图片描述
在这里插入图片描述
Controller里的参数名要和jsp里的一样

.
请求参数的绑定
在这里插入图片描述

package com.zhuzhu.controller;

import com.zhuzhu.domain.Account;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 请求参数绑定
 */
@Controller
@RequestMapping("/param")
public class ParamController {

    /**
     * 请求参数绑定入门
     *  @return
     */
    @RequestMapping("/testParam")
    public String testParam(String username,String password){
        System.out.println("执行了。。。");
        System.out.println("用户名"+username);
        System.out.println("密码"+password);
        return "success";
    }

    /**
     * 请求参数绑定把数据封装到JavaBean的类中
     * @return
     */
    @RequestMapping("/saveAccount")
    public String saveAccount(Account account){
        System.out.println("执行了。。。");
        System.out.println(account);
        return "success";
    }
}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--请求参数绑定--%>
<%--  <a href="param/testParam?username=haha&password=123">请求参数绑定</a>  --%>

<form action="/param/saveAccount" method="post">
    姓名:<input type="text" name="username"> <br/>
    密码:<input type="text" name="password"> <br/>
    金额:<input type="text" name="money"> <br/>
    用户姓名:<input type="text" name="user.uname"> <br/>
    用户年龄:<input type="text" name="user.age"> <br/>
    <input type="submit" value="提交">
</form>
</body>
</html>



List、map集合

package com.zhuzhu.domain;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public class Account implements Serializable {

    private String username;
    private String password;
    private String money;

    private List<User> list;
    private Map<String,User> map;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMoney() {
        return money;
    }

    public void setMoney(String money) {
        this.money = money;
    }

    public List<User> getList() {
        return list;
    }

    public void setList(List<User> list) {
        this.list = list;
    }

    public Map<String, User> getMap() {
        return map;
    }

    public void setMap(Map<String, User> map) {
        this.map = map;
    }

    @Override
    public String toString() {
        return "Account{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", money='" + money + '\'' +
                ", list=" + list +
                ", map=" + map +
                '}';
    }
}


<form action="/param/saveAccount" method="post">
    姓名:<input type="text" name="username"> <br/>
    密码:<input type="text" name="password"> <br/>
    金额:<input type="text" name="money"> <br/>
    用户姓名:<input type="text" name="list[0].uname"> <br/>
    用户年龄:<input type="text" name="list[0].age"> <br/>
    用户姓名:<input type="text" name="map['one'].uname"> <br/>
    用户年龄:<input type="text" name="map['one'].age"> <br/>
    <input type="submit" value="提交">
</form>
</body>
</html>

ParamController不变
在这里插入图片描述
。。
。。

自定义类型转换器
在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--请求参数绑定--%>
<%--  <a href="param/testParam?username=haha&password=123">请求参数绑定</a>  --%>

<form action="/param/saveUser" method="post">
    姓名:<input type="text" name="uname"> <br/>
    年龄:<input type="text" name="age"> <br/>
    日期:<input type="text" name="date"> <br/>
      <input type="submit" value="提交">
</form>
</body>
</html>

在这里插入图片描述

package com.zhuzhu.controller;

import org.springframework.core.convert.converter.Converter;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 把字符串转换日期
 */
public class StringToDateConverter implements Converter<String, Date> {

    /**
     * String source    传入进来字符串
     * @param source
     * @return
     */
    public Date convert(String source) {
        //判断
        if (source==null){
            throw new RuntimeException("请您传入数据");
        }
        try {
            String type="yyyy/MM/dd";
            if(source.indexOf("-")!=-1){
                type="yyyy-MM-dd";
            }

            DateFormat df=new SimpleDateFormat(type);

            //把字符串转换日期
            return df.parse(source);
        } catch (Exception e) {
            throw new RuntimeException("数据类型转换出现错误");
        }
    }
}

springmvc.xml

    <!--开启注解扫描--><!-- 配置spring创建容器时要扫描的包 -->
    <context:component-scan base-package="com.zhuzhu"/>

    <!-- 配置视图解析器对象-->
    <bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--配置自定义类型转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.zhuzhu.controller.StringToDateConverter"/>
            </set>
        </property>
    </bean>

    <!--开启springMVC框架注解的支持-->
    <mvc:annotation-driven conversion-service="conversionService"/>
</beans>

RuntimeException----运行时异常

<mvc:annotation-driven conversion-service="conversionService"/>
annotation-driven会默认把适配器,处理器,映射器那些组件都生效,类型转换需要配置

.
/
获取原生的API

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--请求参数绑定--%>
<%--  <a href="param/testParam?username=haha&password=123">请求参数绑定</a>  --%>

<a href="/param/testServlet">Servlet原生的api</a>
</body>
</html>

在这里插入图片描述
.
.
常用注解

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<!-- 常用的注解-->
<a href="anno/testRequestParam?name=哈哈哈哈">RequestParam</a>
</body>
</html>

在这里插入图片描述
.
.
@RequestBody
在这里插入图片描述

    /**
     * 获取到请求体的内容
     *
     * @param body
     * @return
     */
    @RequestMapping("/testRequestBody")
    public String testRequestBody(@RequestBody String body){
        System.out.println("执行了。。");
        System.out.println(body);
        return "success";
    }
}



testPathVariable
在这里插入图片描述
在这里插入图片描述
jsp传过来的sid赋给id



在这里插入图片描述
在这里插入图片描述



@ModelAttribute
在这里插入图片描述
在这里插入图片描述

有返回值
在这里插入图片描述
在这里插入图片描述

    user.setUname(uname);
    user.setAge(20);

这两条数据:你没提交数据就不会帮你封装就直接返回,要是提交数据了,那就根据你表单提交的数据帮你封装上再返回出去给上一个方法


无返回值:

 /**
     * ModelAttribute注解
     *
     * @return
     */
    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(@ModelAttribute("abc") User user){//下面存了abc,所以要取abc给user对象
        System.out.println("testModelAttribute执行了。。");
        System.out.println(user);
        return "success";
    }

    @ModelAttribute    //放方法上,该方法会优先执行
    public void showUser(String uname, Map<String,User> map){
        System.out.println("showUser执行了");
        //假如表单没有提交完实体类User中的数据(uname,age,date)
        //通过用户查询数据库(模拟)
        User user = new User();
        user.setUname(uname);
        user.setAge(20);
        user.setDate(new Date());
        map.put("abc",user);//从数据库查询出来的对象存到map集合中        (key,value)
    }
}




SessionAttributes
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值