JAVA和jsp修改数据库数据_jsp+servlet+jdbc对数据库的增删改查

本文介绍了如何使用jsp、servlet和jdbc进行数据库操作,包括从jsp页面获取用户输入,通过Action.java处理POST请求,将数据保存至数据库。在实现过程中遇到了jsp提交数据未触发doPost方法的问题,通过检查Request URL和按钮绑定发现并解决了问题,最终实现了数据的正常存取。
摘要由CSDN通过智能技术生成

项目结构:

af7f62a4b172

image.png

jsp(最后正确的)写法:

pageEncoding="UTF-8"%>

String path = request.getContextPath();

%>

--%>

数据库增删改查

function dosubmit() {

var th = document.form1;

if (th.id.value == "") {

alert("用户名不能为空");

th.id.focus();

return;

}

if (th.username.value == "") {

alert("姓名 不能为空");

th.username.focus();

return;

}

if (th.age.value == "") {

alert("密码不能为空");

th.age.focus();

return;

}

th.action="/xxx/Action"

th.submit();

}

ID:

姓名:

年龄:

数据从jsp页面输入,点击“确定”后触发dosubmit()提交输入信息到Action.java。

Action.java片段:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String path = request.getContextPath();

request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8");

PrintWriter out = response.getWriter();

String id = request.getParameter("id");

String username = request.getParameter("username");

String age = request.getParameter("age");

System.out.println("id = " + id + " username = " + username + " age = " + age);

List params = new ArrayList();

params.add(id);

params.add(username);

params.add(age);

boolean flag = service.registerUser(params);

if(flag){

out.println("注册成功");

response.sendRedirect(path + "/success.jsp");

}else{

out.println("注册失败");

response.sendRedirect(path + "/fail.jsp");

}

out.flush();

out.close();

}

通过request.getParameter获取信息,然后通过Service接口调用Dao,通过jdbc向数据库里存数据。

遇到的问题:

最开始1.jsp里的确定按钮是这样写的:

Action.java里加断点,然后params参数里直接传数据,可以保存成功。但从1.jsp里输入的时候就保存不成功,并且没有走到doPost方法里。证明从servlet-->Dao-->jdbc是通的,但jsp-->servlet不通。所以浏览器进入F12模式检查post的数据和Request URL是否正确。检查结果post数据没有问题,但Request URL是localhost:8080/Data。jsp里的路径写的是/xxx/Action,和web.xml里url pattern一致,证明jsp里并没有触发dosubmit()里的th.action,锁定问题范围:检查确定按钮和dosubmit()有没有绑定。目测标签和标签是绑定不了的?所以改成了:

最后测试成功。

假如1.jsp写成这样:

ID:

姓名:

年龄:

那么信息可以存入数据库,但不是经过dosubmit(),所以姓名或年龄可以为空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值