实验报告5-Spring MVC实现页面

实验报告5-SpringMVC实现页面

一、需求分析

使用Spring MVC框架,从视图、控制器和模型三方面实验动态页面。模拟实现用户登录,模拟的用户名密码以模型属性方式存放在Spring容器中,控制器相应用户请求并映射参数,页面收集用户数据或者展示控制器返回信息。

二、编码实现

1、新建项目

项目:maven,Archetype:maven-archetype-webapp,GroupID:com.sw

引入pom依赖

2、补充项目目录

src.main目录下,新建Java功能目录,resources功能目录,

java包下,新建com.sw.controller包、com.sw.service包、com.sw.dao包、com.sw.pojo包

3、配置Spring

resources目录,applicationContext.xml

XML 复制代码
    <!-- 配置 Spring MVC 要扫描的包 -->
    <context:component-scan base-package="com.sw"/>
    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

WEB-INF目录下,新建pages目录

4、配置Servlet

web.xml文件

XML 复制代码
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置初始化参数,读取Spring MVC的配置文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
5、数据封装类

com.sw.pojo包,User类

java 复制代码
@Data
@Component
public class User {
    private int id;
    @Value("zhangsan")
    private String username;
    @Value("123456")
    private String password;
}
6、dao层

com.sw.dao包,UserDao接口

java 复制代码
public interface UserDao {
    boolean login(User loginUser);
}

com.sw.dao.impl包,UserDaoImpl实现类

java 复制代码
@Repository
public class UserDaoImpl implements UserDao {
​
    @Resource(name = "user")
    private User dbUser;
​
    @Override
    public boolean login(User loginUser) {
        if (loginUser.getUsername().equals(dbUser.getUsername())&&
                loginUser.getPassword().equals(dbUser.getPassword())){
            return true;
        }
        return false;
    }
}
7、service层

com.sw.service包,UserService接口

java 复制代码
public interface UserService {
    boolean login(User loginUser);
}

com.sw.service.impl包,UserServiceImpl实现类

java 复制代码
@Service
public class UserServiceImpl implements UserService {
​
    @Resource
    private UserDao userDao;
​
    @Override
    public boolean login(User loginUser) {
        return userDao.login(loginUser);
    }
}
8、controller层

com.sw.controller包,UserController类

java 复制代码
@Controller
@RequestMapping("/user")
public class UserController {
​
    @Resource
    private UserService userService;
​
    @GetMapping("/index")
    public String index(){
        return "user/index";
    }
​
    @GetMapping("/login")
    public String login(){
        return "user/login";
    }
​
    @PostMapping("/login")
    public String login(User loginUser){
        boolean login = userService.login(loginUser);
        if (login){
            return "user/index";
        }
        return "user/login";
    }
}
9、jsp页面

WEB-INF/pages目录,新建user/index.jsp

html 复制代码
<body>
    <h2>用户首页</h2>
</body>

WEB-INF/pages目录,新建user/login.jsp

html 复制代码
<body>
<h2>用户登录页</h2>
<form action="/user/login" method="post">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password" ></td>
        </tr>
        <tr>
            <td><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>
</body>
10、Add Configurations

Add New Configuration→Tomcat Server→Local

Server:

Name:Tomcat8

Application server:配置本机的Tomcat

Deployment:

Add→Artifact...→项目名:war

Application context:/项目名 或者 /

11、测试
相关推荐
过期动态3 小时前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
JavaGuide8 小时前
推荐一个基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0 的大模型项目!
java·spring boot·spring
NE_STOP9 小时前
spring6-多种类型的注入方式
spring
小马爱打代码9 小时前
Spring Boot :使用 Spring Cache 注解方式集成 Redis
spring boot·redis·spring
有味道的男人10 小时前
1688获得商品类目调取商品榜单
java·前端·spring
灵感菇_10 小时前
详细解析 MVC/MVP/MVVM/MVI 架构
架构·mvc·mvvm·mvp·mvi
树码小子10 小时前
SpringMCV(9)响应:返回静态页面 & 修改响应数据
spring·mvc
Remember_99311 小时前
Spring 事务深度解析:实现方式、隔离级别与传播机制全攻略
java·开发语言·数据库·后端·spring·leetcode·oracle
roman_日积跬步-终至千里11 小时前
【Java并发】用 JMM 与 Happens-Before 解决多线程可见性与有序性问题
java·开发语言·spring
独断万古他化11 小时前
【Spring 核心:AOP】基础到深入:思想、实现方式、切点表达式与自定义注解全梳理
java·spring·spring aop·aop·切面编程