Skip to content

Commit ffd36ec

Browse files
committed
User Registration & Login Using Spring MVC
1 parent 71dd89a commit ffd36ec

31 files changed

+1073
-0
lines changed

SpringMvcUser/.classpath

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" output="target/classes" path="src/main/java">
4+
<attributes>
5+
<attribute name="optional" value="true"/>
6+
<attribute name="maven.pomderived" value="true"/>
7+
</attributes>
8+
</classpathentry>
9+
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10+
<attributes>
11+
<attribute name="maven.pomderived" value="true"/>
12+
</attributes>
13+
</classpathentry>
14+
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15+
<attributes>
16+
<attribute name="optional" value="true"/>
17+
<attribute name="maven.pomderived" value="true"/>
18+
</attributes>
19+
</classpathentry>
20+
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.8.0_102">
21+
<attributes>
22+
<attribute name="maven.pomderived" value="true"/>
23+
</attributes>
24+
</classpathentry>
25+
<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
26+
<attributes>
27+
<attribute name="maven.pomderived" value="true"/>
28+
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
29+
</attributes>
30+
</classpathentry>
31+
<classpathentry kind="output" path="target/classes"/>
32+
</classpath>

SpringMvcUser/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target/

SpringMvcUser/.project

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>SpringMvcUser</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.jdt.core.javabuilder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
<buildCommand>
19+
<name>org.eclipse.wst.common.project.facet.core.builder</name>
20+
<arguments>
21+
</arguments>
22+
</buildCommand>
23+
<buildCommand>
24+
<name>org.eclipse.m2e.core.maven2Builder</name>
25+
<arguments>
26+
</arguments>
27+
</buildCommand>
28+
<buildCommand>
29+
<name>org.eclipse.wst.validation.validationbuilder</name>
30+
<arguments>
31+
</arguments>
32+
</buildCommand>
33+
<buildCommand>
34+
<name>org.springframework.ide.eclipse.core.springbuilder</name>
35+
<arguments>
36+
</arguments>
37+
</buildCommand>
38+
</buildSpec>
39+
<natures>
40+
<nature>org.springframework.ide.eclipse.core.springnature</nature>
41+
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
42+
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
43+
<nature>org.eclipse.jdt.core.javanature</nature>
44+
<nature>org.eclipse.m2e.core.maven2Nature</nature>
45+
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
46+
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
47+
</natures>
48+
</projectDescription>

SpringMvcUser/.settings/.jsdtscope

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src/main/webapp"/>
4+
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="target/m2e-wtp/web-resources"/>
5+
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
6+
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
7+
<attributes>
8+
<attribute name="hide" value="true"/>
9+
</attributes>
10+
</classpathentry>
11+
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
12+
<classpathentry kind="output" path=""/>
13+
</classpath>

SpringMvcUser/.settings/org.eclipse.jdt.core.prefs

+293
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
eclipse.preferences.version=1
2+
formatter_profile=_JBR-JavaCodeFormatter
3+
formatter_settings_version=12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
activeProfiles=
2+
eclipse.preferences.version=1
3+
resolveWorkspaceProjects=true
4+
version=1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2+
<wb-module deploy-name="SpringMvcUser">
3+
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
4+
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
5+
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
6+
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
7+
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
8+
<property name="context-root" value="SpringMvcUser"/>
9+
<property name="java-output-path" value="/SpringMvcUser/target/classes"/>
10+
</wb-module>
11+
</project-modules>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<faceted-project>
3+
<fixed facet="wst.jsdt.web"/>
4+
<installed facet="java" version="1.5"/>
5+
<installed facet="jst.web" version="2.3"/>
6+
<installed facet="wst.jsdt.web" version="1.0"/>
7+
</faceted-project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Window
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
disabled=06target
2+
eclipse.preferences.version=1

SpringMvcUser/.springBeans

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<beansProjectDescription>
3+
<version>1</version>
4+
<pluginVersion><![CDATA[3.8.0.201606301005-RELEASE]]></pluginVersion>
5+
<configSuffixes>
6+
<configSuffix><![CDATA[xml]]></configSuffix>
7+
</configSuffixes>
8+
<enableImports><![CDATA[false]]></enableImports>
9+
<configs>
10+
</configs>
11+
<autoconfigs>
12+
<config>src/main/webapp/WEB-INF/spring-mvc-servlet.xml</config>
13+
</autoconfigs>
14+
<configSets>
15+
</configSets>
16+
</beansProjectDescription>

SpringMvcUser/pom.xml

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>jbr</groupId>
5+
<artifactId>SpringMvcUser</artifactId>
6+
<packaging>war</packaging>
7+
<version>0.1</version>
8+
<name>SpringMvcUser Maven Webapp</name>
9+
<url>http://maven.apache.org</url>
10+
11+
<properties>
12+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13+
<spring.version>4.3.2.RELEASE</spring.version>
14+
<junit.version>4.12</junit.version>
15+
<servlet.version>3.1.0</servlet.version>
16+
<mysql.connector.version>5.1.9</mysql.connector.version>
17+
</properties>
18+
19+
<dependencies>
20+
<!-- Junit -->
21+
<dependency>
22+
<groupId>junit</groupId>
23+
<artifactId>junit</artifactId>
24+
<version>${junit.version}</version>
25+
<scope>test</scope>
26+
</dependency>
27+
28+
<!-- Spring Framework -->
29+
<dependency>
30+
<groupId>org.springframework</groupId>
31+
<artifactId>spring-core</artifactId>
32+
<version>${spring.version}</version>
33+
</dependency>
34+
35+
<dependency>
36+
<groupId>org.springframework</groupId>
37+
<artifactId>spring-beans</artifactId>
38+
<version>${spring.version}</version>
39+
</dependency>
40+
41+
<dependency>
42+
<groupId>org.springframework</groupId>
43+
<artifactId>spring-context</artifactId>
44+
<version>${spring.version}</version>
45+
</dependency>
46+
47+
<dependency>
48+
<groupId>org.springframework</groupId>
49+
<artifactId>spring-jdbc</artifactId>
50+
<version>${spring.version}</version>
51+
</dependency>
52+
53+
<dependency>
54+
<groupId>org.springframework</groupId>
55+
<artifactId>spring-test</artifactId>
56+
<version>${spring.version}</version>
57+
<scope>test</scope>
58+
</dependency>
59+
60+
<dependency>
61+
<groupId>org.springframework</groupId>
62+
<artifactId>spring-webmvc</artifactId>
63+
<version>${spring.version}</version>
64+
</dependency>
65+
66+
<!-- Servlet API -->
67+
<dependency>
68+
<groupId>javax.servlet</groupId>
69+
<artifactId>javax.servlet-api</artifactId>
70+
<version>${servlet.version}</version>
71+
</dependency>
72+
73+
<!-- MySQL database driver -->
74+
<dependency>
75+
<groupId>mysql</groupId>
76+
<artifactId>mysql-connector-java</artifactId>
77+
<version>${mysql.connector.version}</version>
78+
</dependency>
79+
80+
</dependencies>
81+
<build>
82+
<finalName>SpringMvcUser</finalName>
83+
</build>
84+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package jbr.springmvc.controller;
2+
3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Controller;
8+
import org.springframework.web.bind.annotation.ModelAttribute;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestMethod;
11+
import org.springframework.web.servlet.ModelAndView;
12+
13+
import jbr.springmvc.model.Login;
14+
import jbr.springmvc.model.User;
15+
import jbr.springmvc.service.UserService;
16+
17+
@Controller
18+
public class LoginController {
19+
20+
@Autowired
21+
UserService userService;
22+
23+
@RequestMapping(value = "/login", method = RequestMethod.GET)
24+
public ModelAndView showLogin(HttpServletRequest request, HttpServletResponse response) {
25+
ModelAndView mav = new ModelAndView("login");
26+
mav.addObject("login", new Login());
27+
28+
return mav;
29+
}
30+
31+
@RequestMapping(value = "/loginProcess", method = RequestMethod.POST)
32+
public ModelAndView loginProcess(HttpServletRequest request, HttpServletResponse response,
33+
@ModelAttribute("login") Login login) {
34+
ModelAndView mav = null;
35+
36+
User user = userService.validateUser(login);
37+
38+
if (null != user) {
39+
mav = new ModelAndView("welcome");
40+
mav.addObject("firstname", user.getFirstname());
41+
} else {
42+
mav = new ModelAndView("login");
43+
mav.addObject("message", "Username or Password is wrong!!");
44+
}
45+
46+
return mav;
47+
}
48+
49+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package jbr.springmvc.controller;
2+
3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Controller;
8+
import org.springframework.web.bind.annotation.ModelAttribute;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestMethod;
11+
import org.springframework.web.servlet.ModelAndView;
12+
13+
import jbr.springmvc.model.User;
14+
import jbr.springmvc.service.UserService;
15+
16+
@Controller
17+
public class RegistrationController {
18+
@Autowired
19+
public UserService userService;
20+
21+
@RequestMapping(value = "/register", method = RequestMethod.GET)
22+
public ModelAndView showRegister(HttpServletRequest request, HttpServletResponse response) {
23+
ModelAndView mav = new ModelAndView("register");
24+
mav.addObject("user", new User());
25+
26+
return mav;
27+
}
28+
29+
@RequestMapping(value = "/registerProcess", method = RequestMethod.POST)
30+
public ModelAndView addUser(HttpServletRequest request, HttpServletResponse response,
31+
@ModelAttribute("user") User user) {
32+
33+
userService.register(user);
34+
35+
return new ModelAndView("welcome", "firstname", user.getFirstname());
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package jbr.springmvc.dao;
2+
3+
import jbr.springmvc.model.Login;
4+
import jbr.springmvc.model.User;
5+
6+
public interface UserDao {
7+
8+
void register(User user);
9+
10+
User validateUser(Login login);
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package jbr.springmvc.dao;
2+
3+
import java.sql.ResultSet;
4+
import java.sql.SQLException;
5+
import java.util.List;
6+
7+
import javax.sql.DataSource;
8+
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.jdbc.core.JdbcTemplate;
11+
import org.springframework.jdbc.core.RowMapper;
12+
13+
import jbr.springmvc.model.Login;
14+
import jbr.springmvc.model.User;
15+
16+
public class UserDaoImpl implements UserDao {
17+
18+
@Autowired
19+
DataSource datasource;
20+
21+
@Autowired
22+
JdbcTemplate jdbcTemplate;
23+
24+
public void register(User user) {
25+
26+
String sql = "insert into users values(?,?,?,?,?,?,?)";
27+
28+
jdbcTemplate.update(sql, new Object[] { user.getUsername(), user.getPassword(), user.getFirstname(),
29+
user.getLastname(), user.getEmail(), user.getAddress(), user.getPhone() });
30+
}
31+
32+
public User validateUser(Login login) {
33+
34+
String sql = "select * from users where username='" + login.getUsername() + "' and password='" + login.getPassword()
35+
+ "'";
36+
37+
List<User> users = jdbcTemplate.query(sql, new UserMapper());
38+
39+
return users.size() > 0 ? users.get(0) : null;
40+
}
41+
42+
}
43+
44+
class UserMapper implements RowMapper<User> {
45+
46+
public User mapRow(ResultSet rs, int arg1) throws SQLException {
47+
User user = new User();
48+
49+
user.setUsername(rs.getString("username"));
50+
user.setPassword(rs.getString("password"));
51+
user.setFirstname(rs.getString("firstname"));
52+
user.setLastname(rs.getString("lastname"));
53+
user.setEmail(rs.getString("email"));
54+
user.setAddress(rs.getString("address"));
55+
user.setPhone(rs.getInt("phone"));
56+
57+
return user;
58+
}
59+
}

0 commit comments

Comments
 (0)