Spring4 + SpringMVC + MyBatis logon registration details, spring4mybatis
Project Structure:
Package com. mstf. controller; import org. springframework. stereotype. controller; import org. springframework. web. bind. annotation. pathVariable; import org. springframework. web. bind. annotation. requestMapping;/*** dynamic page Jump controller */@ Controllerpublic class FormController {@ RequestMapping (value = "/{formName}") public String loginForm (@ PathVariable String formName) {// return formName ;}}
Package com. mstf. controller; import javax. servlet. http. httpSession; import org. springframework. beans. factory. annotation. autowired; import org. springframework. beans. factory. annotation. qualifier; import org. springframework. stereotype. controller; import org. springframework. web. bind. annotation. modelAttribute; import org. springframework. web. bind. annotation. requestMapping; import org. springframework. web. servlet. ModelAndView; import org. springframework. web. servlet. view. redirectView; import com. mstf. domain. user; import com. mstf. service. userService;/*** process user request controller */@ Controllerpublic class UserController {/*** automatically injects UserService */@ Autowired @ Qualifier ("userService") private UserService userService; /*** process/login requests */@ RequestMapping (value = "/login") public ModelAndView login (String username, String password, Mode LAndView mv, HttpSession session) {// find a User based on the login name and password, and determine the user login user User = userService. login (username, password); if (user! = Null) {// login successful. Set the user object to the domain session in the range of HttpSession. setAttribute ("user", user); // forward to the main request, forwarding address mv. setView (new RedirectView ("/Demo4/index");} else {// Logon Failed, set the failure prompt, and jump to the logon page mv. addObject ("message", "the logon name or password is incorrect. enter a new one! "); Mv. setViewName ("loginForm");} return mv;}/*** process/regeist requests */@ RequestMapping (value = "/regeist ") public String regeist (@ ModelAttribute ("user") User user) {userService. regeist (user); return "success ";}}
package com.mstf.domain;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 1L;private int id;private String username;private String password;private String phone;private String email;public int getId() {return id;}public void setId(int id) {this.id = id;}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;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public User(int id, String username, String password, String phone, String email) {super();this.id = id;this.username = username;this.password = password;this.phone = phone;this.email = email;}public User() {super();}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + ", phone=" + phone + ", email="+ email + "]";}}
Package com. mstf. mapper; import org. apache. ibatis. annotations. select; import com. mstf. domain. user; import org. apache. ibatis. annotations. insert; import org. apache. ibatis. annotations. param; /*** UserMapper interface */public interface UserMapper {/*** query the user name and password ** @ param String * username * @ param String * password * @ return user object, null */@ Select ("select * from loginuser where username = # {username} and password = # {password}") User findWithLoginnameAndPassword (@ Param ("username") not found ") string username, @ Param ("password") String password);/*** register */@ Insert ("insert into loginuser (username, 'Password', phone, email) values (# {username}, # {password}, # {phone}, # {email}) ") int regeist (@ Param (" username ") String username, @ Param ("password") String password, @ Param ("phone") String phone, @ Param ("email") String email );}
Package com. mstf. service; import com. mstf. domain. user; /*** User service layer interface */public interface UserService {/*** determine User logon ** @ param String * username * @ param String * password * @ return User object, null */User login (String username, String password) not found;/*** int */int regeist (User user User) returned by User registration );}
Package com. mstf. service. impl; import org. springframework. beans. factory. annotation. autowired; import org. springframework. stereotype. service; import org. springframework. transaction. annotation. isolation; import org. springframework. transaction. annotation. propagation; import org. springframework. transaction. annotation. transactional; import com. mstf. domain. user; import com. mstf. mapper. userMapper; import com. mstf. service. userService;/*** User Service layer interface implementation class @ Service ("userService") is used to comment the current class into a Spring bean, the name is userService */@ Transactional (propagation = Propagation. REQUIRED, isolation = Isolation. DEFAULT) @ Service ("userService") public class UserServiceImpl implements UserService {/*** automatically injects UserMapper */@ Autowiredprivate UserMapper userMapper; /*** implement the login method of the UserService interface ** @ see {UserService} */@ Transactional (readOnly = true) @ Overridepublic User login (String username, String password) {return userMapper. findWithLoginnameAndPassword (username, password);}/*** UserService interface regeist method implementation ** @ see {UserService} */@ Overridepublic int regeist (User user User) {System. out. println (user); return userMapper. regeist (user. getUsername (), user. getPassword (), user. getPhone (), user. getEmail ());}}
dataSource.driverClass=com.mysql.jdbc.DriverdataSource.jdbcUrl=jdbc:mysql://127.0.0.1:3306/demo4dataSource.user=rootdataSource.password=rootdataSource.maxPoolSize=20dataSource.maxIdleTime = 1000dataSource.minPoolSize=6dataSource.initialPoolSize=5
# Global logging configurationlog4j.rootLogger=ERROR, stdout# MyBatis logging configuration...log4j.logger.org.fkit.mapper.UserMapper=DEBUGlog4j.logger.org.fkit.mapper.BookMapper=DEBUG# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
Index. jsp
<% @ Page language = "java" import = "java. util. * "pageEncoding =" UTF-8 "%> <% String path = request. getContextPath (); String basePath = request. getScheme () + ": //" + request. getServerName () + ":" + request. getServerPort () + path + "/"; %> <! Doctype html public "-// W3C // dtd html 4.01 Transitional // EN">
LoginForm. JSP
<% @ Page language = "java" contentType = "text/html; charset = UTF-8" pageEncoding = "UTF-8" %> <! DOCTYPE html PUBLIC "-// W3C // dtd html 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose.dtd">
REGEISTER. JSP
<% @ Page language = "java" import = "java. util. * "pageEncoding =" UTF-8 "%> <% String path = request. getContextPath (); String basePath = request. getScheme () + ": //" + request. getServerName () + ":" + request. getServerPort () + path + "/"; %> <! Doctype html public "-// W3C // dtd html 4.01 Transitional // EN">
SUCCESS. JSP
<% @ Page language = "java" import = "java. util. * "pageEncoding =" UTF-8 "%> <% String path = request. getContextPath (); String basePath = request. getScheme () + ": //" + request. getServerName () + ":" + request. getServerPort () + path + "/"; %> <! Doctype html public "-// W3C // dtd html 4.01 Transitional // EN">
ApplicationContext
<? Xml version = "1.0" encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: mybatis = "http://mybatis.org/schema/mybatis-spring" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: tx = "http://www.springframework.org/schema/tx" xsi: schemaLocatio Http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/tx G/schema/tx/spring-tx-4.1.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd "> <! -- Mybatis: scan will. mstf. all interfaces in the ER er package are configured as mapper, and then the mapper class can be automatically introduced --> <mybatis: scan base-package = "com. mstf. mapper "/> <! -- Scan org. if the java file under the fkit package contains Spring-related annotation classes, register these classes as Spring beans --> <context: component-scan base-package = "com. mstf "/> <! -- Use propertyoverridemo-er to load data source parameters --> <context: property-override location = "classpath: db. properties"/> <! -- Configure the c3p0 data source --> <bean id = "dataSource" class = "com. mchange. v2.c3p0. ComboPooledDataSource"/> <! -- Configure SqlSessionFactory, org. mybatis. spring. sqlSessionFactoryBean is a bean developed by the Mybatis community to integrate Spring --> <bean id = "sqlSessionFactory" class = "org. mybatis. spring. sqlSessionFactoryBean "p: dataSource-ref =" dataSource "/> <! -- JDBC Transaction Manager --> <bean id = "transactionManager" class = "org. springframework. jdbc. datasource. cetcetransactionmanager" p: dataSource-ref = "dataSource"/> <! -- Enable transaction Management in annotation mode --> <tx: annotation-driven transaction-manager = "transactionManager"/> </beans>
Springmvc-config
<? 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: mvc = "http://www.springframework.org/schema/mvc" xmlns: context = "http://www.springframework.org/schema/context" xsi: schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/mvc htt P: // www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context Co., http://www.springframework.org/schema/context/spring-context-4.2.xsd. "> <! -- Automatically scans this package. SpringMVC registers the class with the @ controller annotation under the package as the controller of Spring --> <context: component-scan base-package = "com. mstf. controller "/> <! -- Set the default configuration scheme --> <mvc: annotation-driven/> <! -- Use the default Servlet to respond to static files --> <mvc: default-servlet-handler/> <! -- View parser --> <bean id = "viewResolver" class = "org. springframework. web. servlet. view. InternalResourceViewResolver"> <! -- Prefix --> <property name = "prefix"> <value>/WEB-INF/jsp/</value> </property> <! -- Suffix --> <property name = "suffix"> <value>. jsp </value> </property> </bean> </beans>
WEB. XML
<? Xml version = "1.0" encoding = "UTF-8"?> <Web-app xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi: schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id = "WebApp_ID" version = "3.1"> <! -- Configure the spring core listener, which defaults to/WEB-INF/applicationContext. xml is used as the configuration file --> <listener-class> org. springframework. web. context. contextLoaderListener </listener-class> </listener> <! -- ContextConfigLocation parameter is used to specify the Spring configuration file --> <context-param> <param-name> contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext *. xml </param-value> </context-param> <! -- Define the front-end controller of Spring MVC --> <servlet-name> springmvc </servlet-name> <servlet-class> org. springframework. web. servlet. dispatcherServlet </servlet-class> <init-param> <param-name> contextConfigLocation </param-name> <param-value>/WEB-INF/springmvc-config.xml </param-value> </init-param> <load-on-startup> 1 </load-on-startup> </servlet> <! -- Let the front-end controller of Spring MVC intercept all requests --> <servlet-mapping> <servlet-name> springmvc </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <! -- Encoding filter --> <filter-name> characterEncodingFilter </filter-name> <filter-class> org. springframework. web. filter. characterEncodingFilter </filter-class> <init-param> <param-name> encoding </param-name> <param-value> UTF-8 </param-value> </init- param> </filter> <filter-mapping> <filter-name> characterEncodingFilter </filter-name> <url-pattern>/* </url-pattern> </filter- mapping> </web-app>