SpringMVC(四)注册页面

Posted on 2021-04-23 08:43  MissRong  阅读(1267)  评论(0)    收藏  举报

SpringMVC(四)注册页面

一、index.jsp :首界面(登陆、注册需要指定跳转页面名)

<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
    <h1>欢迎来到登陆注册网站</h1>
    
    <!--a标签、-->
    <a href="">登陆</a>
    <a href="registerPage">注册</a>
  </body>
</html>

二、控制层--RegisterController

    @Controller
    //跳转到注册页面:
    @RequestMapping("registerPage")
    public String registerPage(){
        //这种写法就需要写视图解析器才好使(springmvc.xml 中的)
        return "register";
    }
    
    //跳转到注册页面后进行用户信息的注册
    @RequestMapping("register")
    public String register(User user) {
        System.out.println(user);
        boolean x = registerService.isRegister(user);
        if (x) {
            //如果成功就会跳转到登陆界面(后面完善)
            return "";
        }
        //如果不成功就继续注册界面
        return "register";
    }
    

三、 跳转需要web.xml文件拦截web目录下/目录的请求:

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        
        <!--获取请求之后,用根据DispatcherServlet中的setContextConfigLocation()来得到属性contextConfigLocation
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

四、需要扫描注解:springmvc.xml :

    <beans xmlns="http://www.springframework.org/schema/beans"
                xmlns:context="http://www.springframework.org/schema/context"
                xmlns:mvc="http://www.springframework.org/schema/mvc"
                xmlns:tx="http://www.springframework.org/schema/tx"
                xmlns:aop="http://www.springframework.org/schema/aop"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                                    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
                                    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                                    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!--包扫描-->
    <context:component-scan base-package="com.icss"></context:component-scan>
    <!--主要放开静态资源的,一般放开即可-->
    <mvc:annotation-driven></mvc:annotation-driven>
    
    <!--视图解析器,用于跳转到指定页面-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

五、实现注册页面方法、jsp:

1、JSP文件--注册页面--register.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="register" method="get">
    <table border="0" cellspacing="0" width="300px" height="500px" align="center">
        <tr>
            <td>
                用户名:
            </td>
            <td>
                <input type="text" name="name">
            </td>
        </tr>
        <tr>
            <td>
                密码:
            </td>
            <td>
                <input type="password" name="password">
            </td>
        </tr>
        <tr>
            <td>
                性别:
            </td>
            <td>
                <input type="radio" name="sex" value="男" checked><input type="radio" name="sex" value="女"></td>
        </tr>
        <tr>
            <td>
                爱好:
            </td>
            <td>
                <input type="checkbox" name="hobbys" value="吃"><input type="checkbox" name="hobbys" value="喝"><input type="checkbox" name="hobbys" value="玩"><input type="checkbox" name="hobbys" value="乐"></td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit"  value="提交">
            </td>
        </tr>
    </table>
</form>
</body>
</html>

--------------------------- 到此可以先进行一次检测
方法:

    @RequestMapping("register")
    public String register(User user){
        System.out.println(user); //可以用来检测提交功能是否能走
        boolean x = service.isRegister(user);
        if(x){
            return "";
        }
        //如果不成功就继续注册界面
        return "register";
    }

其中,判断是否注册成功方法service.isRegister(user)的实现需要到业务层-Service层进行。
User类则是根据数据库中表创建的。

2、pojo包--User类

package com.icss.pojo;

import java.util.Arrays;

public class User {
    private Integer id;
    private String name;
    private String password;
    private String sex;
    private String[] hobbys;

    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public String getSex() {
        return sex;
    }

    public String[] getHobbys() {
        return hobbys;
    }

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

    public void setName(String name) {
        this.name = name;
    }

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

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void setHobbys(String[] hobbys) {
        this.hobbys = hobbys;
    }

    public User(Integer id, String name, String password, String sex, String[] hobbys) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.sex = sex;
        this.hobbys = hobbys;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                ", hobbys=" + Arrays.toString(hobbys) +
                '}';
    }
}

3、Service

抽象类-RegisterService:

public interface RegisterService {
    boolean isRegister(User user);
}

它的实现类-RegisterServiceImpl:

@Service
public class RegisterServiceImpl implements RegisterService {

//    @Resource(name = "registerDaoImpl") 首字母小写
    @Autowired
    RegisterDao dao;
    
    @Override
    public boolean isRegister(User user) {
    //将爱好转换成String类型
        String hobby[] = user.getHobbys();
        String hobbys = "";
        for (int i = 0; i < hobby.length; i++) {
            if (i == hobby.length - 1) {
                hobbys += hobby[i];
            } else {
                hobbys += hobby[i] + ",";
            }
        }
        boolean x = dao.isRegister(user, hobbys);
        return x;
    }
}

由于注册的实现需要调用Dao层实现的注册方法来向数据库中插入数据,所以会涉及到Dao层,需要引相关的对象。

4、Dao层--操作数据库

抽象方法:

public interface RegisterDao {
    boolean isRegister(User user, String hobbys);
}

实现类:

@Repository
public class RegisterDaoImpl implements RegisterDao {
    @Autowired
    JdbcTemplate jdbcTemplate;
    
    @Override
    public boolean isRegister(User user, String hobbys) {
        int x = jdbcTemplate.update("insert into user(name, password, sex, hobbys) values(?, ?, ?, ?)",
                                        user.getName(), user.getPassword(), user.getSex(), hobbys);
        if (x > 0) {
            return true;
        } else {
            return false;
        }
    }
}

因为要操作数据库,所以就会涉及到JDBC的使用--JdbcTemplate类,创建他的对象然后调用update方法。

5、springmvc.xml文件中要添加关于连接数据库的依赖:

    <!--JdbcTemplate操作数据库-->
    <bean id="jdbc" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!--c3p0连接池  数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driverClass}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
    </bean>

    <!--引入properties文件-->
    <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
    

6、db.properties文件:

driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8&useSSL=false
user=root
password=123456

7、控制层跳转到注册页面功能的完善--RegisterController

    //跳转到注册页面后进行用户信息的注册
    @RequestMapping("register")
    public String register(User user) {
        System.out.println(user);
        boolean x = registerService.isRegister(user);
        if (x) {
            //如果成功就会跳转到登陆界面
            return "login";
        }
        //如果不成功就继续注册界面
        return "register";
    }

8、login.jsp文件内容:

<html>
<head>
    <title>Title</title>
</head>
<body>
登录页面
</body>
</html>

--------------登陆功能的实现和这个类似------------------

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3