jsp登录注册代码(增删改查+网页+数据库)

简介: jsp登录注册代码(增删改查+网页+数据库)

一·登录注册代码以及效果



register.jsp:注册

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
<style>
 #a {
    width:50%;
    height:200px;
    border: 1px dashed ;
    background-color:lightyellow;
    text-align:center;
}
body{
background-color:lightblue;
}
</style>
</head>
<body>
  <form action="doregister.jsp" method="post">
  用户名:<input type="text" name="uname"><br>
  密码:<input type="password" name="upwd"><br>
  备注:<textarea rows="" cols="" name="uinfo">
  </textarea><br>
  <input type="submit" value="注册">
  <input type="reset" value="重置">
  </form>
</body>
</html>

doregister.jsp:注册信息弹框

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //设置编码-设置请求对象的编号
  request.setCharacterEncoding("utf-8");
  //接收注册页面传递的数据
  String uname = request.getParameter("uname");
  String upwd = request.getParameter("upwd");
  String uinfo = request.getParameter("uinfo");
  //连接数据库
  Class.forName("oracle.jdbc.driver.OracleDriver");
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  /*
  查询到用户的最大编号
  最大编号+1,做为新添加的用户的编号
  */
  //这里的代码是用来 得到最新编号的
  int nextId=1;//做为新用户的编号
  PreparedStatement ps = con.prepareStatement("select max(uuid) from T277");
  //执行sql语句
  ResultSet rs= ps.executeQuery();
  if(rs.next()){
  //查询到最大的编号,加1,就是新数据的编号
  nextId = rs.getInt(1)+1;
  }
  //这里的代码 开始执行添加用户操作
  ps = con.prepareStatement("insert into T277 values(?,?,?,?)");
  ps.setInt(1, nextId);
  ps.setString(2, uname);
  ps.setString(3, upwd);
  ps.setString(4, uinfo);
  //执行sql语句
  int i = ps.executeUpdate();
  if(i>0){
  out.print("<script>alert('注册成功');location.href='login.jsp'</script>");
  }else{
  out.print("<script>alert('注册失败');location.href='register.jsp'</script>");
  }
%>

login.jsp:登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
<style>
 #a {
    width:50%;
    height:200px;
    border: 1px dashed ;
    background-color:lightyellow;
    text-align:center;
}
body{
background-color:lightblue;
}
</style>
</head>
<body>
  <form action="dologin.jsp">
  用户名:<input type="text" name="uname"><br>
  密码:<input type="password" name="upwd"><br>
  <input type="submit" value="登录">
  <input type="button" value="注册" onclick="javascript:location.href='register.jsp'">  
  </form>
</body>
</html>


dologin.jsp:与数据库相连、存放登陆的用户

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //接收login页面传递的数据
  String uname = request.getParameter("uname");
  String upwd = request.getParameter("upwd");
  //连接数据库
  //注册驱动类
  //OracleDriver
  Class.forName("oracle.jdbc.driver.OracleDriver");
  //连接数据库
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  //创建对象
  PreparedStatement ps = con.prepareStatement("select * from T277 where uname=? and upwd=?");
  //给占位符赋值
  ps.setString(1, uname);
  ps.setString(2, upwd);
  //执行sql语句
  ResultSet rs = ps.executeQuery();
  //处理结果
  if(rs.next()){
  //转发
  request.getRequestDispatcher("index.jsp").forward(request, response);
  }else{
  //失败
    out.print("<script>alert('用户名或密码错误,请重新登录');location.href='login.jsp'</script>");
  }
  //关闭连接
%>


index.jsp:主界面

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主页面</title>
<style>
 #a {
    width:50%;
    height:200px;
    border: 1px dashed ;
    background-color:lightyellow;
    text-align:center;
}
body{
background-color:lightblue;
}
</style>
</head>
<body>
  <table border="1" align="center" width="80%">
  <tr>
    <td>编号</td>
    <td>用户名</td>
    <td>密码</td>
    <td>备注</td>
    <td>操作</td>
  </tr>
  <%
  //连接数据库 进行查询所有数据
  //注册驱动类
  Class.forName("oracle.jdbc.driver.OracleDriver");
  //连接数据库
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  //创建Pre对象
  PreparedStatement ps = con.prepareStatement("select * from T277 order by uuid");
  //执行sql语句
  ResultSet rs = ps.executeQuery();
  //处理结果-遍历结果集
  while(rs.next()){
  %>
    <tr align="center">
    <td><%=rs.getInt(1) %></td>
    <td><%=rs.getString("uname") %></td>
    <td><%=rs.getString("upwd") %></td>
    <td><%=rs.getString(4) %></td>
    <td>
      <a href="doup.jsp?uuid=<%=rs.getInt(1)%>">修改</a>
      <a href="info.jsp?uuid=<%=rs.getInt(1)%>">详情</a>
      <a href="dodel.jsp?uuid=<%=rs.getInt(1)%>">删除</a>
    </td>
    </tr>
    <%} %>
  </table>
</body>
</html>

update.jsp:修改

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //设置编码-设置请求对象的编号
  request.setCharacterEncoding("utf-8");
  //接收修改页面传递的数据
  String uname = request.getParameter("uname");
  String upwd = request.getParameter("upwd");
  String uinfo = request.getParameter("uinfo");
  //获取要修改的用户编号
  String id = request.getParameter("uuid");
  //把字符串转换为整数编号
  int uuid = Integer.valueOf(id);
  //JDBC 删除  
  Class.forName("oracle.jdbc.driver.OracleDriver");
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  PreparedStatement ps = con.prepareStatement("update T277 set uname=?,upwd=?, uinfo=? where uuid="+uuid);
  ps.setString(1, uname);
  ps.setString(2, upwd);
  ps.setString(3, uinfo);
  int i = ps.executeUpdate();
  if(i>0){
  out.print("<script>alert('修改成功');location.href='index.jsp'</script>");
  }else{
  out.print("<script>alert('修改失败');location.href='index.jsp'</script>");
  }
%>


doup.jsp:修改页面(帮助)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  //获取要修改的用户编号
  String id = request.getParameter("uuid");
  //把字符串转换为整数编号
  int uuid = Integer.valueOf(id);
  %>
  <form action="update.jsp?uuid=<%=uuid %>" method="post">
  用户名:<input type="text" name="uname"><br>
  密码:<input type="password" name="upwd"><br>
  备注:<textarea rows="" cols="" name="uinfo">
  </textarea><br>
  <input type="submit" value="修改">
  <input type="reset" value="重置">
  </form>
</body>
</html>


info.jsp:详情

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //获取要修改的用户编号
  String id = request.getParameter("uuid");
  //把字符串转换为整数编号
  int uuid = Integer.valueOf(id);
  //JDBC 删除
  Class.forName("oracle.jdbc.driver.OracleDriver");
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  PreparedStatement ps = con.prepareStatement("select * from T277 where uuid="+uuid);
  ResultSet rs= ps.executeQuery();
  if(rs.next()){
    %>
  <form>
    用户名:<input type="text" name="uname" value="<%=rs.getString("uname") %>"><br>
    密码:<input type="password" name="upwd" value="<%=rs.getString("upwd") %>"><br>
    备注:<textarea rows="" cols="" name="uinfo" >
    <%=rs.getString(4) %>
    </textarea><br>
    <a href="index.jsp">返回</a>
  </form>
  <%} %>

dodel.jsp:删除界面

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //获取要删除的用户编号
  String id = request.getParameter("uuid");
  //把字符串转换为整数编号
  int uuid = Integer.valueOf(id);
  //JDBC 删除
  Class.forName("oracle.jdbc.driver.OracleDriver");
  String url = "jdbc:oracle:thin:@localhost:1521:orcl";
  Connection con = DriverManager.getConnection(url, "scott", "tiger");
  PreparedStatement ps = con.prepareStatement("delete T277 where uuid="+uuid);
  int i = ps.executeUpdate();
  if(i>0){
  out.print("<script>alert('删除成功');location.href='index.jsp'</script>");
  }else{
  out.print("<script>alert('删除失败');location.href='index.jsp'</script>");
  }
%>


二·页面跳转的方式以及他们的区别


1、跳转路径并传递数据

//假设法:假设我的用户名为admin 密码为123
    if("admin".equals(name)&&"123".equals(pwd)){
        //说明登录成功 跳转到success.jsp
//1.重定向 将页面跳转 地址栏发生了改变
        //不能将值传递到下一个界面  可以跳转到任意资源  在客户端发挥作用
        response.sendRedirect("http://www.baidu.com");
//2.转发 将页面跳转 可以将值传递到下一个界面 
        //但是地址栏不发生改变 而是停留在了之前的页面 只能转发到当前项目内资源 在服务器端发挥作用
        //request.getRequestDispatcher("http://www.baidu.com").forward(request, response);
    }
    else{
        //说明登录失败 提示用户并返回登录界面login.jsp js的跳转属于重定向 地址栏发生了改变 login-->dologin-->login
        out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
    }

2、页面跳转的两种方式和区别

重定向:地址栏发生改变 不能传值 可以跳转到任意资源 在客户端发挥作用

转发:地址栏不发生改变 能传值 只能跳转到当前项目内资源 在服务器端发挥作用


语法:

重定向:response.sendR()


转发:request.getreq .for(request,response)


三·其他


1、jdbc连接Oracle

URL:jdbc:oracle:thin:@localhost:1521:orcl

2、乱码

request.setCharacterEncoding("utf-8");

3、添加数据时,获取最新编号

//这里的代码是用来 得到最新编号的   
    int nextId=1;//做为新用户的编号
    PreparedStatement ps = con.prepareStatement("select max(uuid) from T277");
    //执行sql语句
    ResultSet rs= ps.executeQuery();
    if(rs.next()){
        //查询到最大的编号,加1,就是新数据的编号
        nextId = rs.getInt(1)+1;
    }
相关文章
|
9月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
10月前
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
892 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
10月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
517 14
|
10月前
|
SQL 数据建模 关系型数据库
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
2190 4
|
9月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
11月前
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
311 0
Android常用的room增删改查语句(外部数据库)
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
483 158
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1163 152