blog管理系统------登录,注册

先来说一下思路:

  1. 实现jsp,form表单提交时,先做非空校验,发送post请求
  2. servlet获取请求,获取表单参数,做非空校验
  3. 调用model模型处理, 连接数据库,做select操作,用PreraredStatement预编译,把结果返回给servlet
  4. servlet返回响应
  5. 跳转页面显示结果                                                                                                                                                             

 注意:一定得是post请求会防止用户信息泄露,get会在地址栏显示信息

  1. //前端login.jsp页面
    <html>
    <head>
        <title>Title</title>
        <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
    </head>
    <body>
    <form method="post" action="login" id="loginform">
        用户名:<input type="text" name="username"><span id="un_msg"></span><br>
        密码:<input type="text" name="password"><span id="pw_msg"></span><br>
         <input type="button" id="btn2" value="登录"><span id="msg"></span>
        <script>
            $("#btn2").click(function(){
                var username=$("input[name='username']").val();
                console.log(username);
                var password=$("input[name='password']").val();
                console.log(password);
                //检验是否成功,页面再判断一下,如果为空的话就不在向服务器发送请求,目的减少向服务器发送请求。 前端后端都要写判断
                var checked=false;
                if(username==""){
                    checked=false;
                    $("#un_msg").html("请输入用户名!");
                }else{
                    checked=true;
                    $("#un_msg").html("");
                }
                if(password==""){
                    checked=false;
                    $("#pw_msg").html("请输入密码!");
                }else{
                    checked=true;
                    $("#pw_msg").html("");
                }
                if(checked){
    
                        $("#loginform").submit();
                }
            })
        </script>
    </form>
    </body>
    
    </html>
    

 

Servlet获取前端页面参数并且调用Model,把数据库的结果以User对象的形式返回给Servlet,并且跳转页面
LoginServlet:

package com.zrgj;

import com.blog.util.DBUtil;
import com.blog.util.Key;
import com.model.LoginModel;
import com.pojo.User;

import javax.servlet.ServletConfig;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private String charset=null;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session=req.getSession();//获取session对象
     
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        if (username != null && !"".equals(username)) {
            //表示正确
        } else {
            req.setAttribute("msg", "用户名不能为空,请您输入用户名");
            req.getRequestDispatcher("/reg_result.jsp").forward(req, resp);
        }
        if (password != null && !"".equals(password)) {
            //表示正确
        } else {
            req.setAttribute("msg", "密码不能为空,请您输入密码");
            req.getRequestDispatcher("/reg_result.jsp").forward(req, resp);
        }
        User user=null;
        LoginModel lm=new LoginModel();
        List list=null;
        try {
            user = lm.Loginmodel(username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(user !=null ){
            session.setAttribute(Key.SISSION_USER,user);
            req.getRequestDispatcher("/mgr/article.jsp").forward(req, resp);
        }else{
            req.setAttribute("msg", "用户名或密码输入错误,请重新输入");
            req.getRequestDispatcher("/reg_result.jsp").forward(req, resp);
        }

    }


    }

连接数据库,做查询操作
LoginModel:
package com.model;

import com.blog.util.DBUtil;
import com.pojo.User;

import java.sql.SQLException;
import java.util.List;

public class LoginModel {
    public User Loginmodel(String username,String password)throws ClassNotFoundException,SQLException {
        DBUtil dbUtil = new DBUtil();
        User user=null;
        try {
            String url = "jdbc:mysql://localhost:3306/blog?useSSL=false&serverTimezone=Asia/Shanghai";
            dbUtil.connect("com.mysql.cj.jdbc.Driver", url, "root", "root");
            String sql = "select id, username,password from t_user where username=? and password=?";
            List list = dbUtil.query(sql, username, password);
            if(list!=null && list.size()>0){
                user=new User();
                Object[] arr=(Object[])list.get(0);

                String id=(String)arr[0];
                String usernameDB=(String)arr[1];
                String passwordDB=(String)arr[2];

                user.setId(id);
                user.setUsername(usernameDB);
                user.setPassword(passwordDB);
            }
        } finally {
            if(dbUtil!=null){
              try{
                  dbUtil.close();
              }catch (SQLException throwables){
                  throwables.printStackTrace();
              }
            }
        }
        return user;
    }

}
通过getter和setter方法创建User对象
User:
package com.pojo;

public class User {
    private String id;
    private String username;
    private String password;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值