我遇到了两个servlet的问题。基本上我得到了一个jsp页面的表单,当我点击提交,我需要得到所有的变量从这个jps,以便注入到第二个上(输入type=“隐藏”),为最终提交所有一起。
我的servlet 1(添加客户端)
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("salut 1 ");
request.getRequestDispatcher("/JSP/Template/BankAdvisor/AddClient.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String email = request.getParameter("email");
String address = request.getParameter("address");
String city = request.getParameter("city");
String zipcode = request.getParameter("zipcode");
String phone = request.getParameter("phone");
if (firstname != null && lastname != null && email != null && address != null && city != null && zipcode != null && phone != null) {
if (!lastname.isEmpty() && !firstname.isEmpty() && !email.isEmpty() && !address.isEmpty() && !city.isEmpty() && !zipcode.isEmpty() && !phone.isEmpty()) {
request.setAttribute("firstname", firstname);
request.setAttribute("lastname", lastname);
request.setAttribute("email", email);
request.setAttribute("address", address);
request.setAttribute("city", city);
request.setAttribute("zipcode", zipcode);
request.setAttribute("phone", phone);
request.getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);
} else {
response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
}
} else {
response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
}
}我的servlet 2(添加帐户)
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/JSP/Template/BankAdvisor/AddAccount.jsp").forward(request, response);
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String email = request.getParameter("email");
String address = request.getParameter("address");
String city = request.getParameter("city");
String zipcode = request.getParameter("zipcode");
String phone = request.getParameter("phone");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String email = request.getParameter("email");
String address = request.getParameter("address");
String city = request.getParameter("city");
String zipcode = request.getParameter("zipcode");
String phone = request.getParameter("phone");
//The two news variables
String accountName = request.getParameter("accountname");
String accountType = request.getParameter("accounttype");
if (firstname != null && lastname != null && email != null && address != null && city != null && zipcode != null && phone != null) {
if (!lastname.isEmpty() && !firstname.isEmpty() && !email.isEmpty() && !address.isEmpty() && !city.isEmpty() && !zipcode.isEmpty() && !phone.isEmpty()) {
// ACTION
} else {
response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
}
} else {
response.sendRedirect(getServletContext().getContextPath() + "/BankAdvisor/AddClient");
}
}谢谢
发布于 2012-02-25 07:05:45
在servlet 1中,您应该使用:
getServletContext().getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);而不是:
request.getRequestDispatcher("/BankAdvisor/AddAccount").forward(request, response);因为对于ServletRequest#getRequestDispatcher(java.lang.String),如果路径以"/“开头,它将被解释为相对于当前上下文根(即当前请求的上下文路径)。
http://test/myapp/toto上收到请求,它将在http://test/myapp/toto/BankAdvisor/AddAccount上转发
而对于ServletContext#getRequestDispatcher(java.lang.String),路径被解释为相对于当前上下文根(即,当前web应用的上下文路径)。
http://test/myapp/toto上收到请求,如果webapp上下文根是http://test/myapp,则它将在http://test/myapp/BankAdvisor/AddAccount上转发
https://stackoverflow.com/questions/9439212
复制相似问题