JavaWeb Mysql数据库mvc模式实现用户登录

JavaWeb mvc模式用户登陆功能实现

准备工作

  1. eclipse关联tomcat
    window->preference->Server->RuntimeEnvironments
    没添加的话点右侧add添加已添加要修改可以先选中然后edit( 可以配置tomcat位置和installed JREs)
    参考下图:
    在这里插入图片描述
    2.mysql数据库建表字段及数据如下
    我的数据库名叫ajaxstu表名t_user 下面的LoginDao连接数据库查询会看到
    在这里插入图片描述
    在这里插入图片描述

第一步 新建Web项目MyJspProject

在这里插入图片描述

建项目时,这里的TargetRuntime选择自己的tomcat版本 Dynamic web module version即servlet版本选择2.5如下图在这里插入图片描述
点击next(不要finish)再next然后这里的对号√要勾上不然建的项目里没有web.xml要手动添加如下图
在这里插入图片描述

建好之后在MyJspProject项目上右键build path调整jdk版本为工作空间版本(一致不用改,不一致要remove然后重新添加)
add library 选择serverruntime配置tomcat(如果不配置tomcat import javax.servlet.Servlet会报错)
调整好之后libraries如下(mysql-connector-java为之后添加的这步还没有)
在这里插入图片描述

第二步 webContent目录下新建

1:s.jsp (body中加一个表单)

<form action="Login_Servlet2" method="post">
用户名:<input type="text" name="uname"><br/>                   
密码:<input type="password" name="upwd"><br/>                    
<input type="submit" >    
</form>

2:success.jsp :


 <body> 
      登陆成功! 欢迎您:
      <%  String name=request.getParameter("uname");
          out.print(name);
       %>  
 </body
             			                 	               	       

第三部:JavaResources目录下的src中新建servlet包:

JavaResources目录下的src中新建servlet包:
1.包中新建User.java持久化类方便保存传输信息内有账号密码两属性
添加构造方法和getset方法(数据存储model)


   String name; 
 String pwd;

  1. Login_Servlet2.java Servlet实现类接受拦截的请求 并在其中调用model层的LoginDao的login方法(controller)

public class Login_Servlet2 extends HttpServlet {
//继承HttpServlet类  重写其doget dopost方法用于处理get类型和post类型的请求//doget dopost逻辑相同dopost中调用doget避免重复代码       
private static final long serialVersionUID = 1L; 
 public Login_Servlet2() { 
         System.out.println("servlet创建");
             }  
 protected void doGet(HttpServletRequest request, HttpServletResponse  response) throws ServletException, IOException {     
         String uname = request.getParameter("uname");             String upwd = request.getParameter("upwd"); 
         User user=new User(uname,upwd); 
         int res=-1; 
         res= LoginDao.login(user); 
         if(res==-1) {
          System.out.println("登陆失败");                    	
          response.sendRedirect("s.jsp");
                       }else {
          request.getRequestDispatcher("success.jsp").forward(request,  response);             }   
              }
protected void doPost(HttpServletRequest request, HttpServletResponse  response) throws ServletException, IOException { 
                   doGet(request, response); 
                         }
            }

3.LoginDao.java(连接数据库,用传进来来的user对象的信息进行查询 若查到返回用户id否则放回-1)(逻辑处理model)

public static int login(User lu) {
             int flag=-1;
             try {
                    Class.forName("com.mysql.cj.jdbc.Driver");
             } catch (ClassNotFoundException e) {
                    System.out.println("加载驱动失败!");
                    e.printStackTrace();
             }
             //url格式==>jdbc协议:mysql协议//ip:端口/(你的数据库库名)
             String  url="jdbc:mysql://localhost:3306/ajaxstu?serverTimezone=UTC&characterEncoding=utf-8";
             String dbuser="root";//数据库用户名
             String  password="123456";//数据库密码
             
             Connection conn=null;
             try {
                    conn = DriverManager.getConnection(url, dbuser, password);
             } catch (SQLException e) {
                    System.out.println("建立连接失败");
                    e.printStackTrace();
             }
             String sql6="select * from t_user where username=?and password=?";
             PreparedStatement ps=null;
             try {
                    ps = conn.prepareStatement(sql6);
             } catch (SQLException e) {
                    System.out.println("获取执行语句对象失败");
                    e.printStackTrace();
             }
             try {
                    ps.setString(1, lu.getName());
                    ps.setString(2,lu.getPwd());
             } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
             }
       
             ResultSet rs=null;
             
             try {
                    rs = ps.executeQuery();
                    if(rs.next()) {
                           //System.out.println(rs.getInt(1));
                           flag=rs.getInt(1);
                    }
                    else {
                           System.out.println("未查到");
                    }
             } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
             }
             finally {
             try {
                    if(rs!=null) {
                           rs.close();
                    }
                    ps.close();
                    conn.close();
             } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
             }
             
             }
//           Statement s = conn.createS
             //System.out.println(flag);
             return flag;
             
       }

由于LoginDAO中要操作数据库,所以要导入mysql-connector-java-x.x.x.jar此jar包要放到WEBContent目录下的WEB-INF下的lib目录中,(放到其他地方会报错:
ClassNotFound"com.mysql.cj.jdbc.Driver";)

在WEB-INF目录下的web.xml中配置拦截器 (servlet2.5及以下) 3.0以上也可用注解//@WebServlet("/Login_Servlet2")
在这里插入图片描述

创建Tomcat服务器

在这里插入图片描述

添加项目MyJspProject

在这里插入图片描述
在这里插入图片描述

运行服务器
浏览器输入 http://localhost:8080/MyJspProject/s.jsp 即可进入

在这里插入图片描述
效果如下
在这里插入图片描述

登陆成功
在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值