eclipse經常使用快捷鍵css
- ctrl+shfit+s:get、set方法
- shift+Alt+L:快捷生成變量
**spring boot建立工具:**https://start.spring.io/ html
修改下載依賴java
repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } }
Eclipse下載插件: buildship、spring-tool-sitemysql
配置項目編碼爲UTF-8 web
項目配置 spring
#服務器端口號 server.port=8080 #配置JSP視圖的位置和後綴 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp #數據源配置 spring.datasource.url=jdbc:mysql://localhost:3308/registerdemo?useUnicode=true&characeterEncoding=utf-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #Hibernate配置 spring.jpa.hibernate.ddl-auto=create spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
配置依賴 sql
plugins { id 'org.springframework.boot' version '2.1.4.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.lys' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compile 'org.springframework.boot:spring-boot-devtools'#在修改程序以後,可以自動重啓服務器;修改靜態文件(html、css)時不會頻繁地重啓服務器 runtime 'org.springframework.boot:spring-boot-starter-tomcat' runtime 'org.apache.tomcat.embed:tomcat-embed-jasper' runtimeOnly 'mysql:mysql-connector-java' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
項目架構 數據庫
控制器 apache
package com.lys.register.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/register") public class RegisterControll { @RequestMapping(method=RequestMethod.GET) public String home(){ return "register"; } }
package com.lys.register.controller; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.lys.register.bean.LoginFrom; import com.lys.register.model.User; import com.lys.register.service.UserService; @Controller @RequestMapping("/login") public class LoginController { @Autowired UserService UserService; @RequestMapping(method=RequestMethod.GET) public String home(){ return "login"; } @RequestMapping(value="doLogin",method=RequestMethod.POST) public String doLogin(LoginFrom login,Model model,HttpSession session) { User user = new User(login.getName(),login.getPwd()); System.out.println(user); User loginUser=UserService.checkLogin(user, model); if(loginUser==null) { return "login"; }else { session.setAttribute("user", loginUser); return "loginSuccess"; } } @RequestMapping(value="doLogout",method=RequestMethod.GET) public String doLogout(HttpSession session) { session.invalidate(); return "login"; } }
bean文件tomcat
package com.lys.register.bean; public class LoginFrom { private String name; private String pwd; public LoginFrom() { } public LoginFrom(String name, String pwd) { super(); this.name = name; this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
package com.lys.register.bean; public class RegisterFrom { private String name; private String pwd; private String email; public RegisterFrom() { } public RegisterFrom(String name, String pwd, String email) { super(); this.name = name; this.pwd = pwd; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
dao文件
package com.lys.register.dao; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.lys.register.model.User; @Repository public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username);//數據庫查詢,約定find或get }
model文件
package com.lys.register.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="user") public class User { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) private Long id; private String username; private String email; private String password; public User() { } public User(String username, String email, String password) { super(); this.username = username; this.email = email; this.password = password; } public User(String username, String password) { super(); this.username = username; this.password = password; } public Long getId() { return id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
service
package com.lys.register.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; import com.lys.register.dao.UserRepository; import com.lys.register.model.User; @Service public class UserService { @Autowired UserRepository userRepository; public User addUser(User user,Model model) { try { User registerUser=userRepository.save(user); return registerUser; } catch (Exception e) { e.printStackTrace(); model.addAttribute("error",e.getMessage()); } return null; } public User checkLogin(User user,Model model) { User findUser = userRepository.findByUsername(user.getUsername()); if(findUser==null) { model.addAttribute("error","用戶名不存在"); return null; }else { if(findUser.getPassword().equals(user.getPassword())) { return findUser; }else { model.addAttribute("error","用戶名和密碼不匹配"); return null; } } } }
jsp文件 login.jsp
<%@page import="com.lys.register.model.User"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶登陸</title> <style type="text/css"> .error{ color:red; } </style> </head> <body> <% User user = (User)session.getAttribute("user"); if(user==null){ String error = (String)request.getAttribute("error"); if(error !=null){ %> <div class="error"> ${error} </div> <% } %> <form action="/login/doLogin" method="post"> 用戶名: <input type="text" name="name"><br/> 密碼: <input type="password" name="pwd"><br/> <input type="submit" name="登陸" value="登陸"><br/> </form> <% }else{ out.println("歡迎"+user.getUsername()+"<a href=\"/login/doLogout\">退出登陸</a>"); } %> </body> </html>
loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶登陸</title> </head> <body> 恭喜${sessionScope.user.username}<${sessionScope.user.email}>登陸成功! </body> </html>
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶註冊</title> </head> <body> <form action="/register/doRegister" method="post"> 用戶名: <input type="text" name="name"><br/> 郵箱: <input type="text" name="email"><br/> 密碼: <input type="password" name="password"><br/> <input type="submit" name="註冊" value="註冊"><br/> </form> </body> </html>
registerSuccess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶註冊</title> </head> <body> 註冊成功!<a herf="/login">轉到登陸</a> </body> </html>
registerFailed
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用戶註冊</title> </head> <body> 註冊失敗!失敗緣由 ${error} </body> </html>