飞道的博客

SSM框架+jsp+mysql入门案例之一 登录注册功能

504人阅读  评论(0)

            学完ssm框架后的入门案例一:注册登录功能.如果登录页面觉得low,自己可以使用我写好的登录页面,具体效果页面在下面.

            1.运行环境:

  • jdk1.8
  • Tomcat 8.5
  • IDEA
  • MAVEN
  • MYSQL                         

             2.目录结构

red.html和test包与此项目无关,懒得删了.

 

             3.  配置文件

     applicationContext.xml


  
  1. <?xml version= "1.0" encoding= "UTF-8"?>
  2. <beans xmlns= "http://www.springframework.org/schema/beans"
  3. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context= "http://www.springframework.org/schema/context"
  5. xmlns:aop= "http://www.springframework.org/schema/aop"
  6. xmlns:tx= "http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <!--开启注解扫描,仅不扫描Controller-->
  16. <context:component-scan base- package= "it.cast">
  17. <context:exclude-filter type= "annotation" expression= "org.springframework.stereotype.Controller"/>
  18. </context:component-scan>
  19. <!--spring整合mybatis框架-->
  20. <!--配置连接池-->
  21. <bean id= "dataSource" class= "com.mchange.v2.c3p0.ComboPooledDataSource">
  22. <property name= "driverClass" value= "com.mysql.jdbc.Driver"/>
  23. <property name= "jdbcUrl" value= "jdbc:mysql:///ssm"/>
  24. <property name= "user" value= "root"/>
  25. <property name= "password" value= "123456"/>
  26. </bean>
  27. <!--配置sqlsessionfactory工厂-->
  28. <bean id= "sqlSessionFactoryBean" class= "org.mybatis.spring.SqlSessionFactoryBean">
  29. <property name= "dataSource" ref= "dataSource"/>
  30. </bean>
  31. <!--配置StudentDao接口所在包-->
  32. <bean id= "mapperScanner" class= "org.mybatis.spring.mapper.MapperScannerConfigurer">
  33. <property name= "basePackage" value= "it.cast.dao"/>
  34. </bean>
  35. <!--配置声明式事务管理-->
  36. <!--配置事务管理-->
  37. <bean id= "transactionManager " class= "org.springframework.jdbc.datasource.DataSourceTransactionManager">
  38. <property name= "dataSource" ref= "dataSource"></property>
  39. </bean>
  40. <!--配置事务通知-->
  41. <tx:advice id= "txAdvice" transaction-manager= "transactionManager " >
  42. <tx:attributes>
  43. <!--从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据)-->
  44. <tx:method name= "find*" propagation= "SUPPORTS" read-only= "true"/>
  45. <tx:method name= "select*" propagation= "SUPPORTS" read-only= "true"/>
  46. <tx:method name= "*" isolation= "DEFAULT"/>
  47. </tx:attributes>
  48. </tx:advice>
  49. <!--增强aop-->
  50. <aop:config>
  51. <aop:advisor advice-ref= "txAdvice" pointcut= "execution(* it.cast.service.*ServiceImpl.*(..))"/>
  52. </aop:config>
  53. </beans>

log4j.properties


  
  1. # Global logging configuration
  2. log4j.rootLogger=DEBUG, stdout
  3. # Console output...
  4. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  5. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  6. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

springmvc.xml


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context= "http://www.springframework.org/schema/context"
  5. xmlns:mvc= "http://www.springframework.org/schema/mvc"
  6. 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">
  7. <!--开启注解扫描,只扫描Controller-->
  8. <context:component-scan base-package="it.cast">
  9. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  10. </context:component-scan>
  11. <!--配置视图解析器-->
  12. <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  13. <property name="prefix" value="/WEB-INF/pages/"/>
  14. <property name="suffix" value=".jsp"/>
  15. </bean>
  16. <!--静态资源过滤-->
  17. <mvc:resources mapping="/css/" location="css/**"/>
  18. <mvc:resources mapping="/images/" location="images/**"/>
  19. <mvc:resources mapping="/js/" location="js/**"/>
  20. <!--开启springmvc框架支持-->
  21. <mvc:annotation-driven/>
  22. </beans>

web.xml


  
  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application </display-name>
  6. <welcome-file-list>
  7. <welcome-file>index.jsp </welcome-file>
  8. </welcome-file-list>
  9. <servlet>
  10. <servlet-name>dispatcherServlet </servlet-name>
  11. <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class>
  12. <init-param>
  13. <!--记载springmvc配置文件-->
  14. <param-name>contextConfigLocation </param-name>
  15. <param-value>classpath:springmvc.xml </param-value>
  16. </init-param>
  17. <!--启动服务器,创建该servlet-->
  18. <load-on-startup>1 </load-on-startup>
  19. </servlet>
  20. <servlet-mapping>
  21. <servlet-name>dispatcherServlet </servlet-name>
  22. <url-pattern>/ </url-pattern>
  23. </servlet-mapping>
  24. <!--监听器-->
  25. <listener>
  26. <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
  27. </listener>
  28. <!--加载spring配置文件-->
  29. <context-param>
  30. <param-name>contextConfigLocation </param-name>
  31. <param-value>classpath:applicationContext.xml </param-value>
  32. </context-param>
  33. <!--解决中文乱码-->
  34. <filter>
  35. <filter-name>characterEncodingFilter </filter-name>
  36. <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class>
  37. <init-param>
  38. <param-name>encoding </param-name>
  39. <param-value>UTF-8 </param-value>
  40. </init-param>
  41. </filter>
  42. <filter-mapping>
  43. <filter-name>characterEncodingFilter </filter-name>
  44. <url-pattern>/* </url-pattern>
  45. </filter-mapping>
  46. </web-app>

pom.xml


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0 </modelVersion>
  5. <groupId>cn.abc </groupId>
  6. <artifactId>example-ssm </artifactId>
  7. <version>1.0-SNAPSHOT </version>
  8. <packaging>war </packaging>
  9. <name>example-ssm Maven Webapp </name>
  10. <!-- FIXME change it to the project's website -->
  11. <url>http://www.example.com </url>
  12. <properties>
  13. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  14. <maven.compiler.source>1.8 </maven.compiler.source>
  15. <maven.compiler.target>1.8 </maven.compiler.target>
  16. <spring.version>5.0.2.RELEASE </spring.version>
  17. <slf4j.version>1.6.6 </slf4j.version>
  18. <log4j.version>1.2.12 </log4j.version>
  19. <mysql.version>5.1.6 </mysql.version>
  20. <mybatis.version>3.4.5 </mybatis.version>
  21. </properties>
  22. <dependencies>
  23. <!-- spring -->
  24. <dependency>
  25. <groupId>org.aspectj </groupId>
  26. <artifactId>aspectjweaver </artifactId>
  27. <version>1.6.8 </version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework </groupId>
  31. <artifactId>spring-aop </artifactId>
  32. <version>${spring.version} </version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework </groupId>
  36. <artifactId>spring-context </artifactId>
  37. <version>${spring.version} </version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework </groupId>
  41. <artifactId>spring-web </artifactId>
  42. <version>${spring.version} </version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework </groupId>
  46. <artifactId>spring-webmvc </artifactId>
  47. <version>${spring.version} </version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework </groupId>
  51. <artifactId>spring-test </artifactId>
  52. <version>${spring.version} </version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework </groupId>
  56. <artifactId>spring-tx </artifactId>
  57. <version>${spring.version} </version>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework </groupId>
  61. <artifactId>spring-jdbc </artifactId>
  62. <version>${spring.version} </version>
  63. </dependency>
  64. <dependency>
  65. <groupId>junit </groupId>
  66. <artifactId>junit </artifactId>
  67. <version>4.12 </version>
  68. <scope>compile </scope>
  69. </dependency>
  70. <dependency>
  71. <groupId>mysql </groupId>
  72. <artifactId>mysql-connector-java </artifactId>
  73. <version>${mysql.version} </version>
  74. </dependency>
  75. <dependency>
  76. <groupId>javax.servlet </groupId>
  77. <artifactId>servlet-api </artifactId>
  78. <version>2.5 </version>
  79. <scope>provided </scope>
  80. </dependency>
  81. <dependency>
  82. <groupId>javax.servlet.jsp </groupId>
  83. <artifactId>jsp-api </artifactId>
  84. <version>2.0 </version>
  85. <scope>provided </scope>
  86. </dependency>
  87. <dependency>
  88. <groupId>jstl </groupId>
  89. <artifactId>jstl </artifactId>
  90. <version>1.2 </version>
  91. </dependency>
  92. <!-- log start -->
  93. <dependency>
  94. <groupId>log4j </groupId>
  95. <artifactId>log4j </artifactId>
  96. <version>${log4j.version} </version>
  97. </dependency>
  98. <dependency>
  99. <groupId>org.slf4j </groupId>
  100. <artifactId>slf4j-api </artifactId>
  101. <version>${slf4j.version} </version>
  102. </dependency>
  103. <dependency>
  104. <groupId>org.slf4j </groupId>
  105. <artifactId>slf4j-log4j12 </artifactId>
  106. <version>${slf4j.version} </version>
  107. </dependency>
  108. <!-- log end -->
  109. <dependency>
  110. <groupId>org.mybatis </groupId>
  111. <artifactId>mybatis </artifactId>
  112. <version>${mybatis.version} </version>
  113. </dependency>
  114. <dependency>
  115. <groupId>org.mybatis </groupId>
  116. <artifactId>mybatis-spring </artifactId>
  117. <version>1.3.0 </version>
  118. </dependency>
  119. <dependency>
  120. <groupId>c3p0 </groupId>
  121. <artifactId>c3p0 </artifactId>
  122. <version>0.9.1.2 </version>
  123. <type>jar </type>
  124. <scope>compile </scope>
  125. </dependency>
  126. </dependencies>
  127. <build>
  128. <finalName>example-ssm </finalName>
  129. <pluginManagement> <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  130. <plugins>
  131. <plugin>
  132. <artifactId>maven-clean-plugin </artifactId>
  133. <version>3.1.0 </version>
  134. </plugin>
  135. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
  136. <plugin>
  137. <artifactId>maven-resources-plugin </artifactId>
  138. <version>3.0.2 </version>
  139. </plugin>
  140. <plugin>
  141. <artifactId>maven-compiler-plugin </artifactId>
  142. <version>3.8.0 </version>
  143. </plugin>
  144. <plugin>
  145. <artifactId>maven-surefire-plugin </artifactId>
  146. <version>2.22.1 </version>
  147. </plugin>
  148. <plugin>
  149. <artifactId>maven-war-plugin </artifactId>
  150. <version>3.2.2 </version>
  151. </plugin>
  152. <plugin>
  153. <artifactId>maven-install-plugin </artifactId>
  154. <version>2.5.2 </version>
  155. </plugin>
  156. <plugin>
  157. <artifactId>maven-deploy-plugin </artifactId>
  158. <version>2.8.2 </version>
  159. </plugin>
  160. </plugins>
  161. </pluginManagement>
  162. </build>
  163. </project>

              4.数据库

               5.详细代码

User.java


  
  1. package it.cast.pojo;
  2. public class User {
  3. private int id;
  4. private String username;
  5. private String password;
  6. public int getId () {
  7. return id;
  8. }
  9. public void setId ( int id ) {
  10. this.id = id;
  11. }
  12. public String getUsername () {
  13. return username;
  14. }
  15. public void setUsername ( String username ) {
  16. this.username = username;
  17. }
  18. public String getPassword () {
  19. return password;
  20. }
  21. public void setPassword ( String password ) {
  22. this.password = password;
  23. }
  24. @Override
  25. public String toString () {
  26. return "User{" +
  27. "id=" + id +
  28. ", username='" + username + '\'' +
  29. ", password='" + password + '\'' +
  30. '}';
  31. }
  32. }

dao层:对与简单的增删改查用注解比较方便

UserDao.java


  
  1. package it.cast.dao;
  2. import it.cast.pojo.User;
  3. import org.apache.ibatis.annotations.Insert;
  4. import org.apache.ibatis.annotations.Select;
  5. public interface UserDao {
  6. //添加用户
  7. @Insert( "insert into user(username,password) values(#{username},#{password})")
  8. public int insert ( User user );
  9. //查询用户
  10. @Select( "select * from user where username=#{username}")
  11. public User finbyUsername ( String username );
  12. }

UserService.java


  
  1. package it.cast.service;
  2. import it.cast.pojo.User;
  3. public interface UserService {
  4. //添加用户
  5. public void add(User user);
  6. //校验用户名和密码
  7. public User checkUsernameAndPassword(String username,String password);
  8. //判断用户是否存在
  9. public boolean IsUsername( String username);
  10. }

UserServiceImpl.java


  
  1. package it.cast.service;
  2. import it.cast.dao.UserDao;
  3. import it.cast.pojo.User;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. @Service
  7. public class UserServiceImpl implements UserService {
  8. @Autowired
  9. private UserDao userDao;
  10. //添加用户
  11. @Override
  12. public void add ( User user ) {
  13. userDao.insert(user);
  14. }
  15. //校验用户名和密码
  16. @Override
  17. public User checkUsernameAndPassword ( String username, String password ) {
  18. User user = userDao.finbyUsername(username);
  19. if (user != null && user.getPassword().equals(password)) {
  20. return user;
  21. }
  22. return null;
  23. }
  24. //校验用户名是否存在
  25. @Override
  26. public boolean IsUsername ( String username ) {
  27. User user = userDao.finbyUsername(username);
  28. if (user == null) { //用户不存在
  29. return true;
  30. }
  31. return false;
  32. }
  33. }

UserController.java


  
  1. package it.cast.controller;
  2. import it.cast.pojo.User;
  3. import it.cast.service.UserService;
  4. import org.springframework.beans.factory. annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.web.bind. annotation.RequestMapping;
  8. @Controller
  9. public class UserController {
  10. @Autowired
  11. private UserService userService;
  12. //登录
  13. @RequestMapping("/login")
  14. public String login ( String username, String password) {
  15. User user = userService.checkUsernameAndPassword(username, password);
  16. if (user != null) {
  17. return "success";
  18. }
  19. return "error";
  20. }
  21. //注册
  22. @RequestMapping("/register")
  23. public String register ( String username, String password ) {
  24. Boolean user = userService.IsUsername(username);
  25. if (user == true) { //true:用户不存在
  26. User user2 = new User();
  27. user2.setUsername(username);
  28. user2.setPassword(password);
  29. userService.add(user2);
  30. return "success";
  31. }
  32. return "error";
  33. }
  34. }

index.jsp


  
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <br>
  3. <br>
  4. <h2>Hello World! </h2>
  5. <a href="/findAll">入门程序 </a> </br>
  6. <form action="/login" method="post">
  7. 用户: <input type="text" name="username"> <br/>
  8. 密码: <input type="text" name="password"> <br/>
  9. <input type="submit" value="登录"> <br/>
  10. </form>
  11. <form action="/register" method="post">
  12. 用户: <input type="text" name="username"> <br/>
  13. 密码: <input type="text" name="password"> <br/>
  14. <input type="submit" value="注册"> <br/>
  15. </form>
  16. </body>
  17. </html>

error.jsp


  
  1. <%@ page contentType= "text/html;charset=UTF-8" language= "java" %>
  2. <html>
  3. <head>
  4. <title>Title </title>
  5. </head>
  6. <body>
  7. 失败
  8. </body>
  9. </html>

success.jsp


  
  1. <%@ page contentType= "text/html;charset=UTF-8" language= "java" %>
  2. <html>
  3. <head>
  4. <title>Title </title>
  5. </head>
  6. <body>
  7. 成功
  8. </body>
  9. </html>


转载:https://blog.csdn.net/qq_37068474/article/details/104843983
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场