Intellij IDEA 构建Spring Web项目 — 用户登录功能
package baobaotao.domain; import java.io.Serializable; import java.util.Date; /*** Created by gao on 16-3-17.*/ public class User implements Serializable {private int userId;private String userName;private String password;private int credits;private String lastIp;private Date lastVisit;public User() {}public int getUserId() {return userId;}public void setUserId(int userid) {this.userId = userid;}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 int getCredits() {return credits;}public void setCredits(int credits) {this.credits = credits;}public String getLastIp() {return lastIp;}public void setLastIp(String lastIp) {this.lastIp = lastIp;}public Date getLastVisit() {return lastVisit;}public void setLastVisit(Date lastVisit) {this.lastVisit = lastVisit;} }
登录日志领域对象:LoginLog.java
package baobaotao.domain; import java.io.Serializable; import java.util.Date; /*** Created by gao on 16-3-17.*/ public class LoginLog implements Serializable {private int loginLogId;private int userId;private String ip;private Date loginDate;public int getLoginLogId() {return loginLogId;}public void setLoginLogId(int loginLogId) {this.loginLogId = loginLogId;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public Date getLoginDate() {return loginDate;}public void setLoginDate(Date loginDate) {this.loginDate = loginDate;}public LoginLog() {} }
package baobaotao.dao; import baobaotao.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.stereotype.Repository; import java.sql.ResultSet; import java.sql.SQLException; /*** Created by gao on 16-3-17.*/ @Repository public class UserDao {@Autowiredprivate JdbcTemplate jdbcTemplate;public UserDao() {//System.out.println("UserDao"); }public int getMatchCount(String userName, String password) {String sqlStr = "select count(*) from t_user where user_name = ? and password = ?";return jdbcTemplate.queryForInt(sqlStr, new Object[]{userName, password});}public User findUserByUserName(final String userName) {String sqlStr = " SELECT user_id,user_name,credits "+ " FROM t_user WHERE user_name =? ";final User user = new User();jdbcTemplate.query(sqlStr, new Object[] { userName },new RowCallbackHandler() {public void processRow(ResultSet rs) throws SQLException {user.setUserId(rs.getInt("user_id"));user.setUserName(userName);user.setCredits(rs.getInt("credits"));}});return user;}public void updateLoginInfo(User user) {String sqlStr = " UPDATE t_user SET last_visit=?,last_ip=?,credits=? "+ " WHERE user_id =?";jdbcTemplate.update(sqlStr, new Object[] { user.getLastVisit(),user.getLastIp(),user.getCredits(),user.getUserId()});} }
LoginLogDao:
package baobaotao.dao; import baobaotao.domain.LoginLog; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; /*** Created by gao on 16-3-17.*/ @Repository public class LoginLogDao {@Autowiredprivate JdbcTemplate jdbcTemplate;public void insertLoginLog(LoginLog loginLog) {String sqlStr = "INSERT INTO t_login_log(user_id,ip,login_datetime) "+ "VALUES(?,?,?)";Object[] args = {loginLog.getUserId(), loginLog.getIp(),loginLog.getLoginDate()};jdbcTemplate.update(sqlStr, args);} }
package baobaotao.service; import baobaotao.dao.LoginLogDao; import baobaotao.dao.UserDao; import baobaotao.domain.LoginLog; import baobaotao.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /*** Created by gao on 16-3-17.*/ @Service public class UserService {@Autowiredprivate UserDao userDao;@Autowiredprivate LoginLogDao loginLogDao;public boolean hasMatchUser(String userName, String password){int matchCount = userDao.getMatchCount(userName,password);return matchCount > 0;}public User findUserByUserName(String userName) {return userDao.findUserByUserName(userName);}public void loginSuccess(User user) {user.setCredits( 5 + user.getCredits());LoginLog loginLog = new LoginLog();loginLog.setUserId(user.getUserId());loginLog.setIp(user.getLastIp());loginLog.setLoginDate(user.getLastVisit());userDao.updateLoginInfo(user);loginLogDao.insertLoginLog(loginLog);} }
<?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:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 --><context:annotation-config/><context:component-scan base-package="baobaotao.dao"/><context:component-scan base-package="baobaotao.service"/><!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 --><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/sampledb"/><property name="username" value="root"/><property name="password" value="123456"/></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"p:dataSource-ref="dataSource"/><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"p:dataSource-ref="dataSource" /> </beans>
package baobaotao.service; import baobaotao.domain.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.Date; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /*** Created by gao on 16-3-17.*/ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"/applicationContext.xml"}) public class TestUserService {@Autowiredprivate UserService userService;@Testpublic void hasMatchUser(){boolean b1 = userService.hasMatchUser("admin","123456");boolean b2 = userService.hasMatchUser("admin","1111");assertTrue(b1);assertTrue(!b2);}@Testpublic void testFindUserByUserName() {User user = userService.findUserByUserName("admin");assertEquals(user.getUserName(), "admin");}@Testpublic void testAddLoginLog() {User user = userService.findUserByUserName("admin");user.setUserId(1);user.setUserName("admin");user.setLastIp("192.168.12.7");user.setLastVisit(new Date());userService.loginSuccess(user);} }
package baobaotao.web; /*** Created by gao on 16-3-17.*/ public class LoginCommand {private String userName;private String password;public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;} }
LoginController:
package baobaotao.web; import baobaotao.domain.User; import baobaotao.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.Date; /*** Created by gao on 16-3-17.*/ @Controller public class LoginController{@Autowiredprivate UserService userService;@RequestMapping(value = "/index.html")public String loginPage(){return "login";}@RequestMapping(value = "/loginCheck.html")public ModelAndView loginCheck(HttpServletRequest request,LoginCommand loginCommand){boolean isValidUser =userService.hasMatchUser(loginCommand.getUserName(),loginCommand.getPassword());if (!isValidUser) {return new ModelAndView("login", "error", "用户名或密码错误。");} else {User user = userService.findUserByUserName(loginCommand.getUserName());user.setLastIp(request.getLocalAddr());user.setLastVisit(new Date());userService.loginSuccess(user);request.getSession().setAttribute("user", user);return new ModelAndView("main");}} }
<%@ page contentType="text/html;charset=utf-8" %> <jsp:forward page="login.jsp"/>
login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head><title>宝宝淘论坛登录</title> </head> <body> <c:if test="${!empty error}"><font color="red"><c:out value="${error}" /></font> </c:if> <form action="<c:url value="/loginCheck.html"/>" method="post">用户名:<input type="text" name="userName"><br>密 码:<input type="password" name="password"><br><input type="submit" value="登录" /><input type="reset" value="重置" /> </form> </body> </html>
<%--Created by IntelliJ IDEA.User: gaoDate: 16-3-17Time: 下午8:42To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>宝宝淘论坛</title> </head> <body> ${user.userName},欢迎您进入宝宝淘论坛,您当前积分为${user.credits}; </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>baobaotao</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>baobaotao</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>baobaotao</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>
2)在WEB-INF下创建一个文件baobaotao-servlet.xml
<?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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描web包,应用Spring的注解 --><context:component-scan base-package="baobaotao.web"/><!-- 配置视图解析器,将ModelAndView及字符串解析为具体的页面 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:viewClass="org.springframework.web.servlet.view.JstlView"p:prefix="/"p:suffix=".jsp" /> </beans>
登录成功进入主界面。
转载于:https://www.cnblogs.com/lonelyxmas/p/5337618.html
Intellij IDEA 构建Spring Web项目 — 用户登录功能相关推荐
- Java Web实现用户登录功能
java web 学习记录一下 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用模型,它的 ...
- crm项目案列 java_Java CRM系统用户登录功能实现代码实例
用户登录功能后台代码实现: UserMapper接口查询方法定义 /** * * @param userName * @param userPwd * @param roleName * 查询用户记录 ...
- Maven-EclipseEE使用Maven构建Java web项目从0到1
Maven是什么 安装Maven 解压apache-maven-350-binzip 新建变量M2_HOME配置Maven主目录 在 Path 变量中添加 Maven的bin目录 命令窗口mvn -v ...
- spring(5)构建 spring web 应用程序
[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review "spring(5)构建 spring web 应用 ...
- Vue + Spring Boot 学习笔记01:实现用户登录功能
Vue + Spring Boot 学习笔记01:实现用户登录功能 一.创建后端Spring Boot项目Book Management 二.创建前端Vue项目bm-vue 三.修改后端项目Book ...
- Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
Spring Boot--2分钟构建spring web mvc REST风格HelloWorld 之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介 ...
- Maven+Spring Web 项目结构在Eclipse下面的实现
软件151 马清友 我们在这里所要实现的关键就是如何保证 Maven 规定的目录结构. 这里对于Maven的目录结构做一个简单的说明: src/main /Java src/main/resour ...
- Spring实战 | 第二部分 Web中的Spring(第五章 构建Spring Web应用程序)
第五章 构建Spring Web应用程序 映射请求到Spring控制器 透明地绑定表单参数 校验表单提交 一.Spring MVC起步 1.跟踪spring MVC的请求 在请求离开浏览器时,会带有用 ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- 在IntelliJ IDEA中创建Web项目
在IntelliJ IDEA中创建Web项目 在IntelliJ IDEA中创建Web项目 1,创建Maven WebProject 选择File>New>Project 出现New Pr ...
最新文章
- 网络编程学习笔记(SIGPIPE信号触发)
- 坚持学习打卡的人,将来会变成什么样?
- Elastic-Job配置步骤
- 【解题报告+感想感言】2019年第十届蓝桥杯【C++省赛B组】【第五题:迷宫】
- Oracle插数据timeout,oracle 11g 频繁报kmgs_parameter_update_timeout
- c++如何禁用指定的键盘布局_Karabiner Elements for Mac 键盘键位自定义改键工具
- C语言指针变量--图示易懂
- 004 - PHP git
- 假如苹果构建了一个搜索引擎
- 关于windows的进程处理(三)
- Python zipfile – Python ZIP
- TDirectory.GetDirectoryRoot获取指定目录的根目录
- 执行安装操作的时候,出现丢失MSVCR120.dll的解决方法
- Youtube视频传输规律
- 个人如何申请支付宝支付接口(免签约支付)
- 深圳大学历届计算机文化节,第十二计算机文化节 | 与计算机应用能力大赛面对面...
- html生成邮件签名之路(一)
- vue3+ts+vite后台管理模板
- ISP——坏点矫正(Defective Pixel Correction,DPC)
- 手机app开发制作流程是怎样的?
热门文章
- yii 2 中生成自定义模块
- parse data from Nacos error
- Consider defining a bean of type ‘com.bsj.system.service.RedisService‘ in your configuration.
- extern C的思考
- xtrabackup mysql 5.1_编译支持mysql-5.1.73版本的xtrabackup
- java mysql 单例模式_java 单例模式(singleton)连接 mysql 数据库
- python ftp timeout_Python ftp client 处理含有中文的文件名详解
- 重置系统_WIN10系统如何创建密码重置盘
- python gdbm_linux下python安装
- python钓鱼网站_Python+MySQL获取PhishTank的钓鱼网站列表作业笔记