首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jsp js 实现增删改查

JSP(Java Server Pages)和JavaScript是实现Web应用中常见的两种技术。JSP主要用于服务器端,而JavaScript主要用于客户端。下面我将详细介绍如何使用这两种技术实现增删改查功能,并解释相关基础概念、优势、类型、应用场景以及可能遇到的问题和解决方法。

基础概念

JSP

  • JSP是一种动态网页技术标准,允许在HTML或XML等静态页面中嵌入Java代码。
  • 它运行在服务器端,生成HTML页面后发送给客户端。

JavaScript

  • JavaScript是一种脚本语言,主要用于增强网页交互性。
  • 它运行在客户端浏览器中,可以直接操作DOM(文档对象模型)。

实现增删改查

1. 数据库连接

首先,需要在JSP页面中建立数据库连接。可以使用JDBC(Java Database Connectivity)来实现。

代码语言:txt
复制
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";

try {
    Connection conn = DriverManager.getConnection(url, username, password);
    // 进行数据库操作
} catch (SQLException e) {
    e.printStackTrace();
}

2. 增加数据

在JSP页面中创建一个表单,用户可以通过表单提交数据。然后使用Java代码处理表单数据并插入数据库。

代码语言:txt
复制
<form action="addData.jsp" method="post">
    Name: <input type="text" name="name"><br>
    Age: <input type="text" name="age"><br>
    <input type="submit" value="Add">
</form>
代码语言:txt
复制
// addData.jsp
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));

String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, name);
    pstmt.setInt(2, age);
    pstmt.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

3. 删除数据

创建一个删除按钮,用户点击后发送请求到服务器,服务器端处理删除操作。

代码语言:txt
复制
<a href="deleteData.jsp?id=1">Delete User 1</a>
代码语言:txt
复制
// deleteData.jsp
int id = Integer.parseInt(request.getParameter("id"));

String sql = "DELETE FROM users WHERE id = ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setInt(1, id);
    pstmt.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

4. 修改数据

创建一个表单用于编辑数据,用户提交表单后更新数据库。

代码语言:txt
复制
<form action="updateData.jsp" method="post">
    ID: <input type="text" name="id" value="1"><br>
    Name: <input type="text" name="name"><br>
    Age: <input type="text" name="age"><br>
    <input type="submit" value="Update">
</form>
代码语言:txt
复制
// updateData.jsp
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));

String sql = "UPDATE users SET name = ?, age = ? WHERE id = ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, name);
    pstmt.setInt(2, age);
    pstmt.setInt(3, id);
    pstmt.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

5. 查询数据

使用JavaScript和AJAX技术实现动态查询,减少页面刷新。

代码语言:txt
复制
<input type="text" id="search" placeholder="Search...">
<div id="results"></div>

<script>
document.getElementById('search').addEventListener('input', function() {
    var query = this.value;
    fetch('searchData.jsp?query=' + encodeURIComponent(query))
        .then(response => response.json())
        .then(data => {
            var resultsDiv = document.getElementById('results');
            resultsDiv.innerHTML = '';
            data.forEach(function(user) {
                var div = document.createElement('div');
                div.textContent = user.name + ' - ' + user.age;
                resultsDiv.appendChild(div);
            });
        });
});
</script>
代码语言:txt
复制
// searchData.jsp
String query = request.getParameter("query");

String sql = "SELECT * FROM users WHERE name LIKE ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "%" + query + "%");
    ResultSet rs = pstmt.executeQuery();
    List<User> users = new ArrayList<>();
    while (rs.next()) {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setAge(rs.getInt("age"));
        users.add(user);
    }
    out.print(new Gson().toJson(users));
} catch (SQLException e) {
    e.printStackTrace();
}

优势与应用场景

优势

  • JSP:适合服务器端逻辑处理,能够直接与数据库交互,生成动态内容。
  • JavaScript:提升用户体验,实现页面无刷新更新,增强交互性。

应用场景

  • 增删改查:适用于任何需要管理数据的Web应用,如博客系统、电商网站等。
  • 实时交互:通过AJAX技术,可以实现实时搜索、即时反馈等功能。

可能遇到的问题及解决方法

问题1:数据库连接失败

  • 原因:可能是数据库服务器未启动、URL错误、用户名密码错误等。
  • 解决方法:检查数据库服务状态,确认URL、用户名和密码是否正确。

问题2:SQL注入

  • 原因:直接拼接用户输入到SQL语句中,存在安全风险。
  • 解决方法:使用PreparedStatement预编译语句,避免SQL注入。

问题3:跨域请求问题

  • 原因:浏览器的同源策略限制了不同源之间的请求。
  • 解决方法:在服务器端设置CORS(跨域资源共享)头,允许特定域名访问。

通过以上步骤和解决方案,可以有效地使用JSP和JavaScript实现Web应用中的增删改查功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MyBatis实现增删改查

    目录 新建项目 准备相关配置 新建包和相关类 增删改查实现 根据id查询用户 根据密码和名字查询用户 给数据库增加一个用户 修改用户的信息 根据id删除一个用户 小结 模糊语句 新建项目 这部分搭建环境在搭建...user: users){ System.out.println(user); } session.close(); } } 运行结果: 增删改查实现...username","愷龍"); map.put("pwd","123456"); User user = mapper.selectUserByNP2(map); 如果参数过多,我们可以考虑直接使用Map实现...不写的话不会提交到数据库 session.close(); } 运行结果: 数据库结果: 注意:增、删、改操作需要提交事务!...不写的话不会提交到数据库 session.close(); } 测试结果: 数据库结果: 小结 所有的增删改操作都需要提交事务!

    51120

    MyBatis+JSP+Servlet...MySql实现分页增删改查:代码详细有注释~

    已经可以在 控制台完成 增删改查 了,哈哈哈哈(大佬路过别笑)… 感觉还不错呢. 现在也开始学习在 CSDN上写笔记博客, 哈哈以前都是看其它大佬的....以后有时间也许会想办法吧 笔记都搬到 CSDN上来嘿嘿~ 各位大佬,多多指教; MyBatis+JSP+Servlet…MySql实现分页/增删改查: **回归主题还是继续今天的代码笔记:**对MyBatis...的总结吧:实现基本的增删改查分页… 如果有问题的朋友可以借鉴之前的笔记哦~ 初始MyBatis....-- 因为:这个where会在 查集合/查总行;都用到通过 sql标签提取出来,可以多次使用; 通过 include引用 --> JS事件;改变值并提交请求; --> <input type="hidden" name="dye" id="dye" value="1"/

    17010

    Servlet框架(servlet+jsp)+Mysql实现的增删改查+分页(功能包学生信息录入、学生信息增删改查、分页等)

    @TOC Servle框架(servlet+jsp)+Mysql实现的增删改查+分页 本系统实现了一个java的servlet框架+jsp的学生信息增删改查+分页的实例,简单易懂,特别适合刚学servlet...实现功能截图 学生信息录入 图片 录入成功 图片 学生信息列表 图片 修改学生信息 图片 修改成功 图片 下一页(分页功能) 图片 删除学生 图片 删除成功 图片 系统功能 本会议管理系统实现了以下功能...学生信息录入 2、录入成功 3、学生信息列表 4、分页 5、学生信息编辑 6、学生信息删除 使用技术 数据库:mysql 开发工具:Eclipse(Myeclispe、Idea也可以) 知识点:servlet+jsp..."+gender+"','"+major+"')"); close(stat,conn); request.getRequestDispatcher("InsertSuccess.jsp...pager); request.setAttribute("subResult", subResult); request.getRequestDispatcher("layout.jsp

    2.4K10

    MYSQL——JBDC实现增删改查

    前言 友友们大家好,我是你们的小王同学 今天给大家带来的是MYSQL——JBDC实现增删改查 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github...API概述 JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现): DriverManager:负责加载各种不同驱动程序...~ 接下来就是最精彩的CRUD辣~ 我们先在任务管理器创建一个学生表  接着在IDEA实现 往表里插入一行数据~ 新增(create) 代码附上: import com.mysql.cj.jdbc.MysqlDataSource...成功辣~~ 以上就是小王同学带给大家的通过jdbc连接IDEA来实现 CRUD 是不是很方便呢

    1.6K10

    MVC3.0+knockout.js+Ajax 实现简单的增删改查

    自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+knockout.js+webAPI来实现这个小DEMO的,无奈公司用的开发环境是...本文不讲解knockout.js和webAPI ,不了解的同学可以百度一下。下一篇博文将采用webAPI和Redis缓存作为服务端重写该项目。    ...我们采用MVC和knockout.js实现一个简单的学生信息管理,实现学生信息的增删改查功能。通过knockout.js来进行数据的绑定,你会发现代码变得很优雅。...knockout.js在Script文件夹中,只用关注带黄色底纹的文件,其他没有用。...public string Class { get; set; } } } 3、  HomeController.cs控制器 HomeController中我们定义了很多Action,实现增删改查功能

    2.4K31
    领券