1.项目目录结构
2.POM配置
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--web相关jar包--> <!--Servlet包--> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!--mysql驱动包--> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> <scope>runtime</scope> </dependency> <!--jstl包--> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--taglib包--> <!-- https://mvnrepository.com/artifact/taglibs/standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>80</port> <path>/</path> </configuration> </plugin> </plugins> </build>
3.Jsp页面
css配置 加样式
img配置 加图片
index.jsp
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html lang="zxx"> <head> <title>登录页面</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="css/style.css" type="text/css" media="all"> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap" rel="stylesheet"> </head> <body> <section class="main"> <div class="logo text-center"> <h1> <a href="index.jsp"> Login</a></h1> </div> <div class="content-w3ls text-center"> <img src="images/bj.jpg" alt="" class="img-responsive"> <form action="login" method="post"> <div class="copyright"><p style="color:red">${loginErrorInfo }</p></div> <div class="wthree-field"> <input name="phone" id="text1" type="text" value="" placeholder="Phone" required> </div> <div class="wthree-field"> <input name="pwd" id="myInput" type="Password" placeholder="Password" required> </div> <div class="wthree-field"> <button type="submit" class="btn">Sign In</button> </div> <div class="login-bottom"> <a href="#url" class="">Create An Account</a> </div> </form> </div> <div class="copyright"> <p>© 2020 Universe Signin Form. Made with love | Designed by <a href="https://w3layouts.com" target="_blank">W3layouts</a></p> </div> </section> </body> </html>
main.jsp页面
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>个人中心</title> </head> <body> <h1>欢迎${user.phone}来到我的世界</h1> </body> </html>
4.java代码
UserDao
package com.imnu.dao; import com.imnu.entity.User; import com.imnu.utils.MyDBUtils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; public class UserDao { public User getUser(int phone, String pwd) { try { //得到连接对象,工具类获取 Connection conn = MyDBUtils.getConnection(); //获取预执行对象 PreparedStatement stmt = conn.prepareStatement("select * from user where phone=? and pwd=?"); stmt.setInt(1, phone); stmt.setString(2, pwd); //获取结果集对象 ResultSet rs = stmt.executeQuery(); User user = null; if (rs.next()) { user = new User(); user.setUid(rs.getInt("uid")); user.setPhone(rs.getInt("phone")); user.setPwd(rs.getString("pwd")); } return user; } catch (Exception e) { e.printStackTrace(); return null; } } }
User
package com.imnu.entity; public class User { private int uid; private int phone; private String pwd; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public int getphone() { return phone; } public void setPhone(int phone) { this.phone = phone; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "uid=" + uid + ", phone='" + phone + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
UserService
package com.imnu.service; import com.imnu.dao.UserDao; import com.imnu.entity.User; public class UserService { public User checkUser(int phone,String pwd){ UserDao ud = new UserDao(); User user = ud.getUser(phone, pwd); return user; } }
LoginServlet
package com.imnu.servlet; import com.imnu.entity.User; import com.imnu.service.UserService; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "LoginServlet", value = "/login") public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取表单提交的数据 int phone =Integer.parseInt(request.getParameter("phone")); String pwd = request.getParameter("pwd"); //2.创建user业务对象 UserService us = new UserService(); User user = us.checkUser(phone, pwd); //3.根据结果进行跳转 if(user!=null){ //跳转到主页 //当前的登录对象保存session request.getSession().setAttribute("user",user); request.getRequestDispatcher("main.jsp").forward(request,response); }else{ request.setAttribute("loginErrorInfo","用户名或密码不正确"); request.getRequestDispatcher("index.jsp").forward(request,response); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
MyDBUtils
package com.imnu.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * 属于操作数据库工具类 * static :方便使用,类名直接调用方法 */ public class MyDBUtils { //得到一个连接对象 public static Connection getConnection(){ try{ Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager .getConnection("jdbc:mysql://localhost:3306/web?serverTimezone = GMT", "root", "root"); return conn; }catch (Exception e){e.printStackTrace();return null;} } //释放资源 public static void releaseDB(ResultSet rs, Statement stmt,Connection conn){ try { if(rs!=null){ rs.close();} stmt.close(); conn.close(); }catch (Exception e){ e.printStackTrace(); } } }
5.数据库
Tomact运行报错可修改