草庐IT

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

天蝎座的程序媛 2023-04-15 原文

目录

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

doregister.jsp:注册信息弹框

login.jsp:登录

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

index.jsp:主界面

update.jsp:修改

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

info.jsp:详情

dodel.jsp:删除界面

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

1、跳转路径并传递数据

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

三·其他

1、jdbc连接Oracle

2、乱码

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

以上就是今天的分享,谢谢大家的观赏!!


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

 

 

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

以上就是今天的分享,谢谢大家的观赏!!!

有关jsp登录注册代码(增删改查+网页+数据库)的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  4. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  5. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  6. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  7. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  8. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  9. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  10. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

随机推荐