mvc结构实现mysql 连接
什么是mvc
实现简单登录功能
create database student;
create table tbl_user( userId varchar(11) not null primary key, passWord varchar(255) not null );
insert into tbl_user (userId,passWord) values ('admin','1234'); insert into tbl_user (userId,passWord) values ('张三','1234');
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b02</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies>
public class User { private String userId; private String passWord; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
public interface UserDao { public boolean getUser(String userID,String userPassWord); }
public class UserDaoImpl implements UserDao{ private String driver = "com.mysql.cj.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/student"; private String root = "root"; private String password = "123456"; @Override public boolean getUser(String userID,String userPassWord) { boolean flag = false; Connection conn = null; PreparedStatement pstm = null; ResultSet rs = null; String sql = "select * from tbl_user where userId = ? and passWord = ?"; try { Class.forName(driver); conn = DriverManager.getConnection(url,root,password); pstm = conn.prepareStatement(sql); pstm.setString(1,userID); pstm.setString(2,userPassWord); rs = pstm.executeQuery(); if(rs.next()){ flag = true; } } catch (Exception e) { e.printStackTrace(); }finally{ try { rs.close(); pstm.close(); conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } return flag; } }
public interface UserService { public boolean Login(String userId,String userPassWord); }
public class UserServiceImpl implements UserService{ @Override public boolean Login(String userId, String userPassWord) { boolean flag = false; UserDao userDao = new UserDaoImpl(); flag = userDao.getUser(userId,userPassWord); return flag; } }
public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { boolean flag = false; String userId = req.getParameter("userName"); String userPassWord = req.getParameter("userPassWord"); UserService userService = new UserServiceImpl(); flag = userService.Login(userId,userPassWord); if(flag){ User user = new User(); user.setUserId(userId); user.setPassWord(userPassWord); req.getSession().setAttribute("user",user); resp.sendRedirect("jsp/success.jsp"); }else{ req.setAttribute("msg","用户错误"); req.getRequestDispatcher("login.jsp").forward(req,resp); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
<servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.hjk.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
<form action="login" method="post"> <table> <tr><span style="color: aquamarine">${requestScope.msg}</span></tr> <tr> <td>用户名:</td><td><input type="text" name="userName"/></td> </tr> <tr> <td>密码</td><td><input type="password" name="userPassWord"/></td> </tr> <tr> <td></td> <td> <input type="submit" value="submit"/> <input type="reset" value="reset"> </td> </tr> </table> </form>
<h1><span style="text-align: center"><span style="color: deeppink" >欢迎您,${sessionScope.user.userId}登录成功</span></span></h1>
<welcome-file-list> <welcome-file>/login.jsp</welcome-file> </welcome-file-list>
import javax.servlet.*;
public class CharacterEncoding implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8"); servletRequest.setCharacterEncoding("utf-8"); //不执行filterChain就会一直卡在这里,相当于一直拦截 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
<filter> <filter-name>characterEncoding</filter-name> <filter-class>com.hjk.filter.CharacterEncoding</filter-class> </filter> <filter-mapping> <filter-name>characterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
初始界面
登录失败界面
登录成功;不加过滤器张山是不能登录成功的
admin
张三
评论已关闭。