使用jsp+servlet+jdbc做的简单的登陆注册案例(二)

简单注册页面

package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class RegServelt extends HttpServlet {
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // 可以直接调用下面的那个
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // 1,设置两个会出现乱码的编码
  request.setCharacterEncoding("UTF-8");
  response.setCharacterEncoding("UTF-8");
  // 设置响应格式
  response.setContentType("text/html");
  // 2,接收请求中的参数
  String name = request.getParameter("name");
  String paw = request.getParameter("paw");
  // 等下用来判断是否注册成功
  boolean isTrue = false;
  // 3,写注册相关的逻辑,jdbc代码
  // 注册就相当于插入语句 insert into student(name,paw)values(?,?);
  // 就调用DBHelper 工具了哦
  Connection conn = DBHelper.getConn();
  // 准备sql语句
  String sql = "insert into student (name,paw) values(?,?)";
  System.out.println("mmmm");
  // 与数据库做交互
  PreparedStatement ps = null;
  try {
   ps = conn.prepareStatement(sql);
   // 设置 ?代表的内容
   ps.setString(1, name);
   ps.setString(2, paw);
   // 用int接收数据
   int count = ps.executeUpdate();
   if (count > 0) {
    // 注册成功
    isTrue = true;
   } else {
    isTrue = false;
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
  DBHelper.colse(conn, ps, null);
  // 4 发送响应
  PrintWriter out = response.getWriter();
  if (isTrue == true) {
   // 注册成功跳转到登录页面
   response.sendRedirect("login.jsp");
   // out.print("<h1 style='color:red'/>注册成功!</h1>");
  } else {
   // 注册失败的话就还回到注册页面
   response.sendRedirect("index.jsp");
   // out.print("<h1 style='color:green'/>注册失败!</h1>");
  }
  out.flush();
  out.close();
 }
}

简单登录页面

package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class LoginServelt extends HttpServlet{
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {  
  //设置字符编码:
  request.setCharacterEncoding("UTF-8");//地址栏
  response.setCharacterEncoding("UTF-8");//浏览器的显示 
  //设置浏览器的响应格式
  response.setContentType("text/html"); 
  //接收请求中的参数
  String name=request.getParameter("name");
  String paw=request.getParameter("paw");
  //设置boolean 类型的数据验证是否登录成功
  boolean is=false;
  //jdbc代码,调用DBHelper 中的方法
  Connection conn=DBHelper.getConn(); 
  //准备sql语句
  String sql="select * from student where name=? and paw=?"; 
  //和数据库中做交互
  PreparedStatement ps=null;
   ResultSet rs=null;
  try {
    ps=conn.prepareStatement(sql);
    ps.setString(1, name);
    ps.setString(2, paw);   
    //用ResultSet接收
     rs=ps.executeQuery();
     //判断
     if(rs.next()){
      is=true;
     }else{
      is=false;
     } 
  } catch (SQLException e) {
   e.printStackTrace();
  } 
  //关闭
  DBHelper.colse(conn, ps, rs); 
  //发送响应
  PrintWriter out=response.getWriter();
  if(is==true){
   //跳转到查询到的数据库的内容  从 ListServlet 中调过来
   response.sendRedirect("listServlet");
  }else{
   //登陆失败跳转到注册页面
   response.sendRedirect("index.jsp"); 
   //out.print("<h1 style='color:green'></h1>登陆失败");
  }
  out.flush();
  out.close();
 }
}

web.xml 文件

这里的名字要和index中表达 action=" " 中的一样
在这里插入图片描述

对应注册 index.jsp 页面的 form 表单注册格式

在这里插入图片描述

对应登录 login.jsp 页面的 form 表单注册格式

在这里插入图片描述

在浏览器把查询到的数据以StringBuffer 的形式输出

package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class ListServlet extends HttpServlet {
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // 设置字符编码:
  request.setCharacterEncoding("UTF-8");// 地址栏
  response.setCharacterEncoding("UTF-8");// 浏览器的显示
  // 设置浏览器的响应格式
  response.setContentType("text/html");
  // 设置boolean 类型的数据验证是否登录成功
  boolean is = false;
  // jdbc代码,调用DBHelper 中的方法
  Connection conn = DBHelper.getConn();
  // 准备sql语句
  String sql = "select * from student";
  // 和数据库中做交互
  PreparedStatement ps = null;
  ResultSet rs = null; 
  //字符串
  StringBuffer sbBuffer = new StringBuffer();
  try {
   ps = conn.prepareStatement(sql);
   // 用ResultSet接收
   rs = ps.executeQuery();
   // 循环获得表中的数据 append() 是添加的意思
   sbBuffer.append("<html><head><meta charset=\"utf-8\"><title></title><style type=\"text/css\">table,tr,td,th{border: 1px solid salmon;border-collapse: collapse;margin: 0 auto;padding: 10px;}</style></head><body><table><tr><td>ID</td><td>用户名</td><td>密码</td></tr>");
   while (rs.next()) {
    sbBuffer.append("<tr><td>"+rs.getString("id")+"</td><td>"+rs.getString("name")+"</td><td>"+ rs.getString("paw")+"</td></tr>");
   }
   sbBuffer.append("</table></body></html>");   
  } catch (SQLException e) {
   e.printStackTrace();
  }
  // 关闭
  DBHelper.colse(conn, ps, rs);
  // 发送响应
  PrintWriter out = response.getWriter();
  out.print(sbBuffer.toString());
  out.flush();
  out.close();
 }
}

对应的部分html的代码,我是在HBuilder 中先写好按照需要的格式添加

在这里插入图片描述

下面这个图是我自己整的一个登录注册结合的页面,可以根据自己是登陆还是注册进行点击并进行相应的注册和登录

在这里插入图片描述

以下就是我登陆和注册和整个数据查询的运行结果图

**1.把数据库中的结果以表格的形式输出,访问的时候要对应相应的web.xml 中的 name 名字 **
在这里插入图片描述

2,注册页面 点击了注册时可以跳转到登录页面的,具体代码里面都有详细解释
在这里插入图片描述
3,登录
在这里插入图片描述

登录和页面结合的运行结果 还是一样点击注册或者登录都可以跳转到相应的页面

在这里插入图片描述

一定要记得他们之间相对应的关系!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值