700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql+jdbc连接数据库简单实现登录功能 --java

mysql+jdbc连接数据库简单实现登录功能 --java

时间:2019-12-15 08:44:52

相关推荐

mysql+jdbc连接数据库简单实现登录功能 --java

初识java web 实现简单的登录功能

mvc结构实现mysql 连接

什么是mvc

MVC是模型(model)、视图(view)、控制(controller)这三个单词上的首字母组成。它是一种应用模型,它的目的是实现Web系统的职能分工。避免all in one 所有代码全部写在一个文件里的一种分工模型。

实现简单登录功能

登录成功,进入sccess.jsp界面,失败返回首页,并输出密码错误

数据库简单编写

创建数据库

create database student;

创建表

create table tbl_user(userId varchar(11) not nullprimary key,passWord varchar(255) not null);

导入数据

insert into tbl_user (userId,passWord) values ('admin','1234');insert into tbl_user (userId,passWord) values ('张三','1234');

idea上准备工作

创建一个干净的meavn项目 把该项目添加web项目

导入依赖

junit 是为了便于测试其他是一些基础包 mysql 连接数据库servlet-api servlet服务jsp-apijstl 写el表达式

<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>

连接数据库

使用idea连接本地数据库

编写实体类User

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;}}

UserDao层接口

public interface UserDao {public boolean getUser(String userID,String userPassWord);}

UserDaoImpl实现类

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";@Overridepublic 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;}}

UserService层接口

public interface UserService {public boolean Login(String userId,String userPassWord);}

UserServiceImpl实现类

public class UserServiceImpl implements UserService{@Overridepublic boolean Login(String userId, String userPassWord) {boolean flag = false;UserDao userDao = new UserDaoImpl();flag = userDao.getUser(userId,userPassWord);return flag;}}

编写LoginServlet服务层

public class LoginServlet extends HttpServlet {@Overrideprotected 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);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}}

配置web.xml文件

servlet3.0之后可以使用注解,不用配置这个文件,但是是初学者,还是先学会配置web.xml文件

<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>

编写login.jsp 界面

简单的写了一下,一个表单的提交功能

<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>

写一个登录成功界面sccess.jsp

-这个文件在web问价夹下面,本来想写一个拦截器,没有登录不能直接访问后面的界面,现在还没有写

<h1><span style="text-align: center"><span style="color: deeppink" >欢迎您,${sessionScope.user.userId}登录成功</span></span></h1>

如果登录失败就返回登录界面

idea默认会先访问index.jsp界面,这里在web.xml配置一下,让他直接访问login.jsp

<welcome-file-list><welcome-file>/login.jsp</welcome-file></welcome-file-list>

####已经可以登录了,但是还是存在中文乱码,编写一个过滤器CharacterEncoding,让它处理中文乱码

这个包必须导入import javax.servlet.*;

public class CharacterEncoding implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {servletRequest.setCharacterEncoding("utf-8");servletRequest.setCharacterEncoding("utf-8");//不执行filterChain就会一直卡在这里,相当于一直拦截filterChain.doFilter(servletRequest,servletResponse);}@Overridepublic void destroy() {}}

为过滤文件配置web.xml

<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

张三

文件的整体结构

一些注意点

导包的时候一定要到对idea有可能在测试的时候没有lib包这个时候需要自己添加lib问价夹,并且把相应的依赖都添加进去 服务器报404 一般是路径错误(比较好解决)500 可能是一些代码错误,或者jar没到入

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。