User login requirements Case:
1. Log in page write login.html
username & password two input boxes
2. Druid database connection pooling, operation mysql, day14 user database tables
3. JdbcTemplate art package the JDBC
4. Jump successful login SuccessServlet to show: a successful login! User name, you are welcome
5. Jump to FailServlet show login failure: Login failed for user name or password is incorrect
Without try () {} catch two errors occurred !!!!!!
java.lang.NoClassDefFoundError: org / springframework / jdbc / core / RowMappers error debugging get through
for servlet [servlet.LoginServlet] in context with path [/tom] threw excepti..............
The principle is to log on by entering a query the database, if it means to the user password is correct, otherwise an error, you can use when implementing try () {} catch {}
The right to return an object, an error is returned null: this error will not!
UserDaos
Package UserDao; Import JdbcUtils.JdbcUtility; Import domain.User; Import org.springframework.dao.DataAccessException; Import org.springframework.jdbc.core.BeanPropertyRowMapper; Import org.springframework.jdbc.core.JdbcTemplate; / ** * database operations @date 2019/9/22 16:42 * * / public class UserDaos { Private the JdbcTemplate Templates = new new the JdbcTemplate (JdbcUtility.getDataSource ()); public the user Login (the user logs) { // from a database lookup to obtain the user name and password package data inside loginuser.getUser () to find the corresponding database data the try { //Note !!!! If the query is returned to the user otherwise return null (does not complain !!!) // so the data in the database so you can determine whether there is an input of String sql = "select * from log where user =? And pass = "? ; the User User = templates.queryForObject (SQL, new new BeanPropertyRowMapper <> (the User. class ), logs.getUser (), logs.getPass ()); return User; } the catch (the DataAccessException E) { e.printStackTrace ( ); return null ; } } }
LoginServlet
package servlet; import UserDao.UserDaos; import domain.User; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/one") public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.设置编码 req.setCharacterEncoding("utf-8"); //2.获取请求参数 String username = req.getParameter("username"); String password = req.getParameter("password"); //3.封装对象 User loginuser=new User(); loginuser.setUser(username); loginuser.setPass(password); //4.调用userDaos UserDaos userDaos=new UserDaos(); User user = userDaos.login(loginuser); System.out.println(user); //5.判断user if (user!=null){ req.setAttribute("user",user);//共享数据 req.getRequestDispatcher("/su").forward(req,resp);//重定向 }else { req.getRequestDispatcher("/fa").forward(req,resp); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }
package JdbcUtils;
import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; /** * 数据库工具类 * @date 2019/9/22 16:00 */ public class JdbcUtility { static DataSource dataSource=null; static {//加载配置文件 Properties pro=new Properties(); InputStream rs JdbcUtility =. Class .getClassLoader () the getResourceAsStream ( "druid.properties." ); The try { pro.load (RS); the dataSource = DruidDataSourceFactory.createDataSource (Pro); } the catch (IOException E) { e.printStackTrace (); } the catch (Exception E) { e.printStackTrace (); } } // returns a data pool object public static the DataSource getDataSource () { return the dataSource; } // Get link Connection object public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }
user
package domain; /** * s实体封装数据库表 * @date 2019/9/22 16:40 */ public class User { private int id; private String user; private String pass; @Override public String toString() { return "User{" + "id=" + id + ", user='" + user + '\'' + ", pass='" + pass + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; }
fail
package servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 登录失败转发到此页面 * @date 2019/9/22 20:47 */ @WebServlet("/fa") public class FailServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException { // the response.setContentType ( "text / HTML; charset = UTF-. 8" ); // output response.getWriter () write ( "login failed, user name or password is wrong." ); } Protected void the doGet (the HttpServletRequest Request, the HttpServletResponse Response) throws ServletException, IOException { the this .doPost (Request, Response); } }
sucess
package servlet; import domain.User; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 登录失败转发到此页面 * @date 2019/9/22 20:47 */ @WebServlet("/su") public class SuecessServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.setContentType("text/html;charset=utf-8");//输出为中文格式 //输出 User user =(User) request.getAttribute("user"); if (user!=null){ response.getWriter().write("登录成功,欢迎你"+user.getUser()); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } }
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/one" method="post"> 用户名:<input type="text" name="username"> <br>of the typethe INPUT< Password:="password" name="password"><br> <input type="submit" value="登录"> </form> </body> </html>
database
DROP TABLE IF EXISTS `log`; CREATE TABLE `log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `pass` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of log -- ---------------------------- INSERT INTO `log` VALUES (1, 'zou', '123'); SET FOREIGN_KEY_CHECKS = 1;
Profiles
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql:///login username=root password=123 initialSize=5 maxActive=10 maxWait=3000