jsp的表单提交给servlet,如何使servlet处理完数据后再跳转回jsp

kphb123 2011-05-16 11:30:07
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.avceit.bean.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>



<%
DataBaseStudent dbs = new DataBaseStudent();
int i = 0 ;
List all = null ;
all = dbs.select();
Iterator iter = all.iterator() ;

while(iter.hasNext())
{
Student stu = (Student)iter.next() ;
i++ ;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容

%>
<form name="form1" method="post" action="servlet/StuServlet">
<table border="1">
<% int id =stu.getId();
String age = stu.getAge();
String username =stu.getUsername();%>
<tr>
<td width="98"><input type="text" name="id" value=<%=id%>></td>
<td width="146"><%=username%></td>
<td width="110"><%=age %></td>
<td width="117"><input type="hidden" name="sta" value="del">
<input type="submit" name="Submit" value="删除"></td>
</tr>
</table>
</form>
<%}
%>


</body>
</html>


Servlet:
package com.avceit.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.avceit.bean.DataBaseStudent;
import com.avceit.bean.Student;

public class StuServlet extends HttpServlet {

public StuServlet() {
super();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
response.setContentType("text/html");
response.setCharacterEncoding("GBK");
String sta = request.getParameter("sta");
DataBaseStudent dbs = new DataBaseStudent();
Student stu = new Student();
PrintWriter out = response.getWriter();
if (sta.equals("add")) {
String username = request.getParameter("username");
String age = request.getParameter("age");
stu.setUsername(username);
stu.setAge(age);
dbs.add(stu);
} else if (sta.equals("del")) {
int id = Integer.parseInt(request.getParameter("id"));
dbs.delete(id);
dbs.select();


}
response.sendRedirect("/list.jsp");
}
}

如何让Servlet处理完jsp 的删除数据处理后,再次跳转回jsp页面,为下一次删除数据做准备?谢谢。
...全文
632 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnhcd 2011-05-17
  • 打赏
  • 举报
回复
貌似没问题啊
javalhf 2011-05-17
  • 打赏
  • 举报
回复
response.sendRedirect("/list.jsp");
这个就可以跳转页面,你看看是不是路径写错了。
你也可以这样写
response.sendRedirect(request.getContextPath()+"/list.jsp");
Inhibitory 2011-05-17
  • 打赏
  • 举报
回复
AJAX啊
Spring89 2011-05-17
  • 打赏
  • 举报
回复
在Servlet中:
request.getRequestDispatcher(request.getContextPath()+"/list.jsp").forward(request, response);//请求转发
response.sendRedirect(request.getContextPath()+"/list.jsp");//重定向
lijingzhu 2011-05-17
  • 打赏
  • 举报
回复
保险点,跳转路径写绝对路径
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect(basePath+"list.jsp");
leebeen34 2011-05-17
  • 打赏
  • 举报
回复

request.getRequestDispatcher("×××.jsp").forward(request,response);
zhoumao0803 2011-05-16
  • 打赏
  • 举报
回复
外部跳转路径 这样不行吧。。路劲这样写应该要内部跳转才能跳转过去。。
Strive20101101 2011-05-16
  • 打赏
  • 举报
回复
补充:你的外部跳转路径应该有问题吧,你用的是相对路径,你跳转时的当前目录可是在servlet下的。
Strive20101101 2011-05-16
  • 打赏
  • 举报
回复
当你点击删除后,表单提交到StuServlet执行else if(sta.equals"del")后根据id进行删除,再查询,最后你不是有一句response.sendRedirect吗?你的这个servlet不管是执行添加还是删除都会执行外部跳转方法至list.jsp,你还想怎么跳转?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧