JSP连接数据库实现查询

创建MySQL的表

database db_shop;
use db_shop;
create table admin_info(
idint(11) NOT NULL AUTO_INCREMENT,namevarchar(32) NOT NULL,pwdvarchar(64) DEFAULT NULL, PRIMARY KEY (id`)
);
插入数据进行操作

主页面(login.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>
<%=session.getId() %>
<%
String username = "";
String pwd = "";
//读取cookie
Cookie[] cookies = request.getCookies();
for(Cookie cookie:cookies){if("username".equals(cookie.getName())){username = cookie.getValue();}if("password".equals(cookie.getName())){pwd = cookie.getValue();}
}
%>
<form action="check.jsp" method="post">
用     户     名:<input type="text" name="username"/><br/>
用户密码 :<input type="text" name="password"/><br/>
<input type="submit" value="登录"/>
<input type="reset" value="取消"/><br/>
</form>
</body>
</html>

check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%-- <%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%> --%>
<%@page import="java.sql.*" %>
<%@page import="com.weihai.dao.*" %><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");UserDao userDao = new UserDao();
boolean t = userDao.login(username,password);if(t){//查询
//if("username".equals(name)&& "pwd".equals(psw)){Cookie cookie1 = new Cookie("username",username);Cookie cookie2 = new Cookie("password",password);//存储cookie需要设置存活时间 秒cookie1.setMaxAge(7*24*60*60);cookie2.setMaxAge(7*24*60*60);response.addCookie(cookie1);response.addCookie(cookie2);session.setAttribute("username", username);session.setAttribute("password", password);session.setMaxInactiveInterval(1);/* rs.close();userDao.pt.close();userDao.conn.close(); */response.sendRedirect("success.jsp");
}
else{
response.sendRedirect("error.jsp");
}
%>
</body>
</html>

成功界面(success.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%-- <%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%> --%>
<%@page import="java.sql.*" %>
<%@page import="com.weihai.dao.*" %><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");UserDao userDao = new UserDao();
boolean t = userDao.login(username,password);if(t){//查询
//if("username".equals(name)&& "pwd".equals(psw)){Cookie cookie1 = new Cookie("username",username);Cookie cookie2 = new Cookie("password",password);//存储cookie需要设置存活时间 秒cookie1.setMaxAge(7*24*60*60);cookie2.setMaxAge(7*24*60*60);response.addCookie(cookie1);response.addCookie(cookie2);session.setAttribute("username", username);session.setAttribute("password", password);session.setMaxInactiveInterval(1);/* rs.close();userDao.pt.close();userDao.conn.close(); */response.sendRedirect("success.jsp");
}
else{
response.sendRedirect("error.jsp");
}
%>
</body>
</html>

失败界面(error.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>错误页面</title>
</head>
<body>
<p>登录失败</p><br/>
<a href="login.jsp">重新登录</a>
</body>
</html>

validate.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 name = (String)session.getAttribute("username");
if(name==null||name.isEmpty()){response.sendRedirect("error.jsp");
}
%>
</body>
</html>

创建Java包

1.创建com.weihai.dao包并创建UserDao.java文件

package com.weihai.dao;import java.awt.desktop.UserSessionEvent;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;import com.mysql.jdbc.Connection;
import com.weihai.bean.User;public class UserDao {
//成员变量
//成员方法:方法定义三要素:方法名、参数、返回值public Connection conn = null;public PreparedStatement pt = null;public boolean login(String username,String password) {ResultSet rs = null;boolean t = false;try {Class.forName("com.mysql.jdbc.Driver");}catch (ClassNotFoundException e) {e.printStackTrace();}//创建数据库的连接try {conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/db_shop?serverTimezone=UTC","root","root");}catch (SQLException e) {e.printStackTrace();}//解决sql注入利用PreparedStatement//PreparedStatement允许在sql语句中使用占位符?//PreparedStatement的优点//1.解决sql注入//2.提高程序的可读性和可维护性//3.执行效率高String sql = "select * from admin_info where name=?and pwd=?";try {pt = conn.prepareStatement(sql);//执行sql语句之前需要给参数赋值pt.setString(1,username);pt.setString(2,password);//执行sql语句rs = pt.executeQuery();if(rs.next()) {t = true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(rs!=null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(pt!=null) {try {pt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return t;}public ArrayList<User> queryAll() {//2.访问数据库,查询用户名密码//(1)加载数据库驱动ArrayList<User> users = new ArrayList<User>();ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");}catch (ClassNotFoundException e) {e.printStackTrace();}//创建数据库的连接Connection conn = null; try {conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/db_shop?serverTimezone=UTC","root","root");}catch (SQLException e) {e.printStackTrace();}//创建语句容器Statement st = null;try {st = conn.createStatement();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//执行sql语句try {rs = st.executeQuery("select * from admin_info");} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//遍历结果集try {while(rs.next()) {User user = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("name"));user.setPassword(rs.getString("pwd"));users.add(user);}} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//关闭数据库连接if(rs!=null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(st!=null) {try {st.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return users;}}

2.创建com.weihai.Bean包并创建User.java文件

package com.weihai.bean;import java.io.Serializable;/** 表示数据的JavaBean* 成员变量必须私有* 提供公开的set和get方法*/
public class User implements Serializable{/***  成员变量根据表中的字段确定*/private static final long serialVersionUID = 109786136096189804L;private int id;private String username;private String password;public int getId() {return id;}public void setId(int 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;}}

效果如下

JSP连接数据库实现查询相关推荐

  1. JSP连接数据库实现查询功能

    查询db_shop数据库中admin_info表中的数据 login.jsp <%@ page language="java" contentType="text/ ...

  2. 成绩查询系统源java代码_基于jsp的成绩查询系统-JavaEE实现成绩查询系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的成绩查询系统, 该项目可用各类java课程设计大作业中, 成绩查询系统的系统架构分为前后台两部分, 最终实现在线上 ...

  3. java城市公交查询系统案例_013JAVA.JSP城市公交查询系统.zip

    [实例简介] 本人上传的资源大多是工作学习时的积累, 大部分上传的资源具有 源码+论文+答辩PPT+运行视频 四部分组成. 仅供学习参考,不得用于商业途径,希望能够帮助到大家,谢谢. [实例截图] [ ...

  4. JSP核心——分页查询

    JSP核心--分页查询 业务背景 当数据量较多时,用户需要拖动页面才能浏览更多信息数据定位不便:采用分页技术实现批量数据的页面显示.例如百度搜索: 分页实现 ①确定每页显示的数据数量 ②确定分页显示所 ...

  5. C# 连接数据库,查询数据

    //获取数据 private void GetData() {//查询条件int day11,day12,day21,day22,month;day11 = 61; day12 = 90; //时间段 ...

  6. JAVA JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

    JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

  7. 连接数据库实现查询员工信息

    连接数据库实现查询员工信息 按步骤操作实现查询 package com.zheng.z;import java.sql.Connection; import java.sql.DriverManage ...

  8. JAVA实现查询系统_基于jsp的车辆查询系统-JavaEE实现车辆查询系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的车辆查询系统, 该项目可用各类java课程设计大作业中, 车辆查询系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. java连接数据库代码查询music表和斗地主排序

    斗地主排序代码 package com.zhongruan;import java.util.*;public class DouDiZhu2 {public static void main(Str ...

最新文章

  1. java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法
  2. form左上角有个锁的符号_第三章 表单笔记
  3. Docker的容器运行时组件Containerd
  4. html中文字过长 自动隐藏,css 实现文字过长自动隐藏功能
  5. c# .Net 缓存 使用System.Runtime.Caching 做缓存 平滑过期,绝对过期
  6. C++混淆点-构造函数参数
  7. 人工智障学习笔记——机器学习(16)降维小结
  8. 祝学校计算机系的新年贺词,[学校班级新年祝福语]班级新年贺词
  9. Halcon 注册说明
  10. fw313r路由器上网方式服务器无响应,迅捷(FAST)路由器fw313r手机设置上网方法
  11. RMS数据采集分布式架构
  12. jenkins k8s 动态增减 jenkins-salve (2) 实现 slave 节点动态构建
  13. db2 日期英式写法_英文日期写法 英文日期格式正确写法
  14. python webpy启动服务
  15. 平台如何接入微信支付
  16. 2014秋冬季校招时间表,持续更新
  17. DIX和DIF该诉你,什么叫端到端数据一致性
  18. 保存阿里云的邮件模板提示错误Template Text is too large.
  19. Mask Rcnn目标分割-项目搭建及跑通测试代码
  20. 使用uni-app开发一个取流播放器(网络电视)app简陋版

热门文章

  1. leaflet 使用 wmts
  2. JS对象中的属性类型、属性定义和属性读取
  3. 基于串级PID的箱体自动恒温控制系统
  4. C语言 全局变量和局部变量的特点
  5. Java游戏开发组件LGame简易测试版发布(版本号 0 1 5)
  6. Spring Boot打包
  7. Edgecam2016基础编程到车铣复合加工视频教程
  8. int,long,long long对应10的数量级【c语言】
  9. 四元数和欧拉角优缺点
  10. 51单片机学习:红外遥控实验