jsp--提交表单→插入数据库→成功后返回提示信息

使用Servlet处理在页面*.jsp中1.输入表单信息→insertServlet2.提交表单3.插入数据库数据若成功进入4,失败则返回错误信息4.返回页面提示成功要求... 使用Servlet处理
在页面 *.jsp 中
1.输入表单信息 → insertServlet
2.提交表单
3.插入数据库数据 若成功进入4,失败则返回错误信息
4.返回页面提示成功

要求:1.不能使用session,上下文
2.转回后的网页地址必须保持原先的网页地址

问题:1.若使用服务器内部跳转响应就变成:表单的action地址了。
2.若使用重定向就不知道插入数据是否成功。
3.若使用session与上下文会浪费服务器内存。

求高手^_^
展开
 我来答
千锋教育
2016-01-12 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

jsp通过提交表单执行到的action直接操作service进而调用dao接口插入然后返回到servlet控制状态即可。

举例:

index.jsp页面代码如下: 

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%> 
<%@ page contentType="text/html;charset=utf-8"%> 
<%  
   request.setCharacterEncoding("UTF-8");  
   response.setCharacterEncoding("UTF-8");  
   response.setContentType("text/html; charset=utf-8");  
%>  
<html> 
<head> 
<title>add message into table </TITLE> 
</head> 
<body> 
<% 
String id=request.getParameter("id"); //从表单获得 
String name=request.getParameter("name"); //从表单获得 
String sex=request.getParameter("sex"); //从表单获得 
String age=request.getParameter("age"); //从表单获得 

java.util.Date date=new java.util.Date(); 
String datetime=new Timestamp(date.getTime()).toString(); 
try 

/** 连接数据库参数 **/ 
String driverName = "com.mysql.jdbc.Driver"; //驱动名称 
String DBUser = "root"; //mysql用户名 
String DBPasswd = "123456"; //mysql密码 
String DBName = "html_db"; //数据库名 

String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd; 
Class.forName(driverName).newInstance(); 
Connection conn = DriverManager.getConnection(connUrl); 
Statement stmt = conn.createStatement(); 
stmt.executeQuery("SET NAMES UTF8"); 
String insert_sql = "insert into person_tb values('" + id + "','" + name + "','" + sex + "','" + age + "')"; 
String query_sql = "select * from person_tb"; 

try { 
stmt.execute(insert_sql); 
}catch(Exception e) { 
e.printStackTrace(); 

try { 
ResultSet rs = stmt.executeQuery(query_sql); 
while(rs.next()) { 
%> 
ID:<%=rs.getString("id")%> </br> 
姓名:<%=rs.getString("name")%> </br> 
性别:<%=rs.getString("sex")%> </br> 
年龄:<%=rs.getString("age")%> </br> </br> 
<% 

}catch(Exception e) { 
e.printStackTrace(); 

//rs.close(); 
stmt.close(); 
conn.close(); 
}catch (Exception e) { 
e.printStackTrace(); 

%> 
</body> 
</html> 

界面显示查询结果

没有响应m2
2012-05-04 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3501万
展开全部
直接提交表单到Servlet
然后在Servlet里处理表单穿进来的数据
使用一个模型类来操作数据库
然后判断是否成功插入数据到数据
把是否成功插入数据库 的状态设置到一个blooean的变量的里
然后把这个blooean的变量使用request.setAttribute()穿到jsp页面里
在jsp里设置用request.getAttribute读出这个属性
然后根据这个属性来显示是否成功把数据插入数据库(第一次打开页面的时候这个属性的值应该null 这里可以设置如果这个值是null 就什么都不做)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guolitao_2005
2012-05-04 · TA获得超过113个赞
知道小有建树答主
回答量:96
采纳率:100%
帮助的人:94.7万
展开全部
一个曲线解决方法:条件重写向,在servlet中判断数据库IO是否成功,成功就跳转到一个页面上;不成功则跳到另外一个页面上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
strreamlet
2012-05-04 · TA获得超过222个赞
知道答主
回答量:116
采纳率:0%
帮助的人:50万
展开全部
用ajax实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
推荐于2017-11-25 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1628万
展开全部
你想问什么?
就是提交表单,地址栏还不想变吗?
更多追问追答
追问
对,提交表单时,怎么让地址栏不变。
追答
用ajax不行吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式