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>
--------------登陆功能的实现和这个类似------------------
浙公网安备 33010602011771号