springboot学习日记(三):springMVC

目录

一、springMVC入门案例

1.创建新模块和相关package

2.导入依赖包,在pom.xml中导入SpringMVC依赖包,并点击同步

3.接着我们选择Tomcat运行项目,并点击Edit Configurations,选择Deployment,注意:所有的web项目都需要利用Tomcat才能跑起来,所以我们选择Tomcat进行运行。先把之前发布的项目删掉,点击-号删除,再增加一个新项目,点击+号,点击第一个,然后选择SpringMVC:war包

4.在webapp下创建文件夹jsp,再在jsp文件夹下创建login.jsp页面

5.在controller层创建LoginController类

6.在resources文件夹下新建配置文件spring-servlet

7.升级web.xml

8.运行出现login.jsp内容

二、springMVC传值

1.Model是什么呢?它是用来携带参数的;修改LoginController类

2.修改login.jsp代码

3.运行,传值成功

三、课堂案例1

1.创建相应包和类

2.完成以上步骤后,接下来我们开始逐层调用:controller调用service层,service层调用dao层

3.运行

四、视图解析器

1.修改配置文件spring-servlet

2.修改LoginController类

3.运行

五、课堂案例2

1.在jsp文件夹下创建注册页面register.jsp

2.修改LoginController类

3.修改index.jsp

4.运行

5.更方便:修改index.jsp

六、课堂案例3

1.创建fail。jsp和success。jsp

2.修改login.jsp

3.修改LoginController类 

七、SpringMVC接收参数的方法1

1.新建pojo包,并创建User类

2.修改LoginController类

3.修改login.jsp

4.success.jsp添加代码

八、SpringMVC接收参数的方法2

1.在pojo文件夹下新建News实体类

2.LoginController类添加代码

3.创建news.jsp并添加代码

九、jstl标签

1.在pom.xml中导入依赖包,并同步

2.LoginController类添加代码

3.创建newslist.jsp并添加代码

十、SpringMVC返回JSON

1.在pom.xml中导入依赖包

2.修改spring-servlet配置文件,记住要选择mvc!


一、springMVC入门案例

1.创建新模块和相关package

2.导入依赖包,在pom.xml中导入SpringMVC依赖包,并点击同步

   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.22</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

3.接着我们选择Tomcat运行项目,并点击Edit Configurations,选择Deployment,注意:所有的web项目都需要利用Tomcat才能跑起来,所以我们选择Tomcat进行运行。先把之前发布的项目删掉,点击-号删除,再增加一个新项目,点击+号,点击第一个,然后选择SpringMVC:war包

4.在webapp下创建文件夹jsp,再在jsp文件夹下创建login.jsp页面

5.在controller层创建LoginController类

package com.mvc.controller;

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

@Controller
public class LoginController {
    @RequestMapping("login")
    public ModelAndView showlogin(){
        return new ModelAndView("/WEB-INF/jsp/login.jsp");
    }
}

6.在resources文件夹下新建配置文件spring-servlet

<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan base-package="com.mvc"/>
</beans>

7.升级web.xml

tomcat启动改文件会被加载
该文件加载时,启动spring容器
DispatcherServlet SpringMVC框架封装一个类 继承servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  <!-- tomcat启动改文件会被加载    该文件加载时,启动spring容器 -->
  <!--    DispatcherServlet springmvc框架封装一个类 继承servlet -->
  <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:spring-servlet.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!--    http://localhost:8080/SpringMVC_war/login-->
</web-app>

8.运行出现login.jsp内容

二、springMVC传值

1.Model是什么呢?它是用来携带参数的;修改LoginController类

package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class LoginController {
    @RequestMapping("login")
    public ModelAndView showlogin(Model model){
        model.addAttribute("name","fighting!");
        return new ModelAndView("/WEB-INF/login.jsp");
    }
}

2.修改login.jsp代码

3.运行,传值成功

三、课堂案例1

1.创建相应包和类

public interface UserDao {
    public String findUserName();
}



public class UserDaoImpl implements UserDao {
    public String findUserName() {
//        todo请求数据库
        return "从数据库中获取的用户名oooo";
    }
}  


public interface UserService {
    public String findUserName();
}


public class UserServiceImpl implements UserService {
    public String findUserName() {
        return null;
    }
}

2.完成以上步骤后,接下来我们开始逐层调用:controller调用service层,service层调用dao层

@Repository:代表dao层

@Component:这个惯用实体层

@Service : 这个用于service层

@Controller : 这个用于Controller

修改LoginController类代码

修改UserServiceImpl类

给UserDaoImpl增加注解

3.运行

四、视图解析器

1.修改配置文件spring-servlet

<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan base-package="com.mvc"/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

2.修改LoginController类

package com.mvc.controller;

import com.mvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class LoginController {
    @Autowired
    UserService userService;
    @RequestMapping("login")
    public String showlogin(Model model){
        model.addAttribute("name",userService.findUserName());
        return "login";
    }
}   

3.运行

五、课堂案例2

1.在jsp文件夹下创建注册页面register.jsp

2.修改LoginController类

package com.mvc.controller;

import com.mvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class LoginController {
    @Autowired
    UserService userService;
    @RequestMapping("login")
    public String showlogin(Model model){
        model.addAttribute("name",userService.findUserName());
        return "login";
    }

    @RequestMapping("register")
    public String showregister(Model model){
//        model.addAttribute("name",userService.findUserName());
        return "register";
    }
}

3.修改index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<a href="http://localhost:8080/SpringMVC_war/login">登录页面</a>
<a href="http://localhost:8080/SpringMVC_war/register">注册页面</a>
</body>
</html>

4.运行

5.更方便:修改index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<%--<a href="http://localhost:8080/SpringMVC_war/login">登录页面</a>--%>
<%--<a href="http://localhost:8080/SpringMVC_war/register">注册页面</a>--%>
<a href="${pageContext.request.contextPath}/login">登录页面</a>
<a href="${pageContext.request.contextPath}/register">注册页面</a>
</body>
</html>

六、课堂案例3

1.创建fail。jsp和success。jsp

2.修改login.jsp

<%--
  Created by IntelliJ IDEA.
  User: YOGA
  Date: 2023/10/15
  Time: 16:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
</head>
<body>
<h1>登录页面</h1>
<%--el表达式--%>
<div>${name}</div>
<form action="${pageContext.request.contextPath}/logincommit" method="post">
    <div>用户名:<input name="username"></div>
    <div>密码:<input name="password"></div>
    <div><input type="submit" value="提交"></div>
</form>
</body>
</html>

3.修改LoginController类 

package com.mvc.controller;

import com.mvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class LoginController {
    @Autowired
    UserService userService;
    @RequestMapping("login")
    public String showlogin(Model model){
        model.addAttribute("name",userService.findUserName());
        return "login";
    }

    @RequestMapping("register")
    public String showregister(Model model){
//        model.addAttribute("name",userService.findUserName());
        return "register";
    }

    @RequestMapping("logincommit")
    public String logincommit(Model model,String username,String password){
//        model.addAttribute("name",userService.findUserName());
        if(username.equals("admin") && password.equals("123456")){
            model.addAttribute("username",username);
            return "success";
        }
        return "fail";
    }
}

七、SpringMVC接收参数的方法1

1.新建pojo包,并创建User类

package com.mvc.pojo;


public class User {
    private String username;
    private String password;

    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;
    }
}


2.修改LoginController类

package com.mvc.controller;


import com.mvc.pojo.User;
import com.mvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoginController {
    @Autowired
    UserService userService;
    @RequestMapping("login")
    public String showlogin(Model model){
        model.addAttribute("name",userService.findUserName());
        return "login";
    }

    @RequestMapping("register")
    public String showregister(Model model){
//        model.addAttribute("name",userService.findUserName());
        return "register";
    }

    @RequestMapping("logincommit")
    public String logincommit(Model model,String username,String password){
//        model.addAttribute("name",userService.findUserName());
        if(username.equals("admin") && password.equals("123456")){
            model.addAttribute("username",username);
            return "success";
        }
        return "fail";
    }

    @RequestMapping("logincommit1")
    public String logincommit1(Model model, User user){
//        model.addAttribute("name",userService.findUserName());
        if(user.getUsername().equals("admin") && user.getPassword().equals("123456")){
           model.addAttribute("username1",user.getUsername());
            return "success";
        }
        return "fail";
    }


}

3.修改login.jsp

4.success.jsp添加代码

<h1>登录成功:${username1}</h1>

运行:

八、SpringMVC接收参数的方法2

1.在pojo文件夹下新建News实体类

package com.mvc.pojo;

public class News {
    private String id;
    private String title;
    private String content;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}


2.LoginController类添加代码

@RequestMapping("news/{newsid}/{newsid1}")
    public String news(Model model,@PathVariable("newsid") String newsid){
        //@PathVariable主要作用:映射URL绑定的占位符
        //带占位符的URL是 Spring3.0 新增的功能,URL中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法的入参中。
//        todo 根据id去数据库中查询新闻
        News news=new News();
        news.setId(newsid);
        news.setTitle("这是标题");
        news.setContent("这是内容");
//        model.addAttribute("name",userService.findUserName());
        model.addAttribute("news",news);
        return "news";
    }

3.创建news.jsp并添加代码

<h1>学校新闻详情</h1>
<h1>${news.id}</h1>
<h1>${news.title}</h1>
<div>${news.content}</div>

运行

九、jstl标签

(1)jstl-->java标准标签库

(2)为什么要使用JSTL?

  • 实现了JSP页面代码的复用
    • 基于标签库原理,重复
  • 书写JSP页面的可读性强
    • 长得很像XML,方便前端检查和参与修改

1.在pom.xml中导入依赖包,并同步

 <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>javax.servlet.jsp.jstl-api</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!-- jsp 标准标签库 -->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

2.LoginController类添加代码

@RequestMapping("newslist")
    public String newslist(Model model){
//        model.addAttribute("name",userService.findUserName());
//        todo 去数据库中查询新闻列表
        List<News> newsList=new ArrayList<News>();
        for(int i=0;i<=10;i++){
            News news=new News();
            news.setId("id:"+i);
            news.setTitle("title:"+i);
            news.setContent("content:"+i);
            newsList.add(news);
        }
        model.addAttribute("newslist",newsList);
        return "newslist";
    }

3.创建newslist.jsp并添加代码

<%--
  Created by IntelliJ IDEA.
  User: YOGA
  Date: 2023/10/17
  Time: 17:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>新闻列表</h1>
<%--jstl标签--%>
<table border="1">
    <tr>
        <td>新闻id</td>
        <td>新闻标题</td>
        <td>新闻内容</td>
    </tr>
    <c:forEach    var="news"  items="${newslist}">
        <tr>
            <td>${news.id}</td>
            <td>${news.title}</td>
            <td>${news.content}</td>
        </tr>
    </c:forEach>
</table>

</body>
</html>

运行:

十、SpringMVC返回JSON

1.在pom.xml中导入依赖包

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.13.3</version>
    </dependency>

2.修改spring-servlet配置文件,记住要选择mvc!

//改后的
<?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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--    开启Spring注解-->
    <context:component-scan base-package="com.mvc"/>
    <mvc:annotation-driven/>
    <!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>


//原来的
<?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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/cache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
    <!--    开启spring注解-->
    <context:component-scan base-package="com.mvc"/>
    <!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

运行:

 上课内容总结 及 参考实践该博客:

SpringBoot开发之SpringMVC_spring boot mvc_不服输的小乌龟的博客-CSDN博客

SpringBoot开发之SpringMVC(续)_不服输的小乌龟的博客-CSDN博客

代码资源:springboot(一)-(三)的代码资源-CSDN博客

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值