Java 将数据从servlet传输到jsp页面
我想去掉servlet中的printWriter代码 基本上,我想用id输出当前客户及其各自的城市,id是索引页面上的一个隐藏字段。从那里我想能够编辑客户名称或城市,然后将其发送回索引页面,在那里信息将被更新 我该怎么做 ServletJava 将数据从servlet传输到jsp页面,java,jsp,servlets,Java,Jsp,Servlets,我想去掉servlet中的printWriter代码 基本上,我想用id输出当前客户及其各自的城市,id是索引页面上的一个隐藏字段。从那里我想能够编辑客户名称或城市,然后将其发送回索引页面,在那里信息将被更新 我该怎么做 Servlet package edu.witc.Assignment02.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; imp
package edu.witc.Assignment02.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import edu.witc.Assignment02_model.*;
/**
* Servlet implementation class CustomerServlet
*/
@WebServlet(name = "CustomerServlet", urlPatterns = {
"/customer", "/editCustomer", "/updateCustomer"
})
public class CustomerServlet extends HttpServlet {
private static final long serialVersionUID = -20L;
private List<Customer> customers = new ArrayList<Customer>();
/**
* @see HttpServlet#HttpServlet()
*/
public CustomerServlet() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void init() throws ServletException {
Customer customer1 = new Customer();
customer1.setId(1);
customer1.setName("Donald D.");
customer1.setCity("Miami");
customer1.add(customer1);
Customer customer2 = new Customer();
customer1.setId(2);
customer1.setName("Mickey M.");
customer1.setCity("Orlando");
customer1.add(customer2);
}
private void sendCustomerList(HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<html><head><title>Customers</title></head>"
+ "<body><h2>Custoemrs</h2>");
writer.println("<ul>");
for (Customer customer : customers){
writer.println("<li>" + customer.getName()
+ "(" + customer.getCity() + ") ("
+ "<a href='editCustomer?id=" + customer.getId()
+ ";>edit</a>)");
}
writer.println("</ul>");
writer.println("</body></html>");
}
private Customer getCustomer(Integer customerId){
for (Customer customer : customers) {
if(customer.getId() == customerId){
return customer;
}
}
return null;
}
private void sendEditCustomerForm(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
Integer customerId = 0;
try{
customerId = Integer.parseInt(request.getParameter("id"));
}catch(NumberFormatException e){
}
Customer customer = getCustomer(customerId);
if(customer != null){
writer.println("<html><head>"
+ "<title>Edit Customer</title></head>"
+ "<body><h2>Edit Customer</h2>"
+ "<form method = 'post' action = 'updateCustomer'>");
writer.println("<input type = 'hidden' name = 'id' value = 'customerId'/>");
writer.println("<table>");
writer.println("<tr><td>Name:</td><td>"
+ "<input name = 'name' value = '"
+ customer.getName().replaceAll("'", "'")
+ "'/></td></tr>");
writer.println("<tr><td>City:</td><td>"
+ "<input name = 'city' value = '"
+ customer.getCity().replaceAll("'", "'")
+ "'/></td></tr>");
writer.println("<tr>"
+ "<td colspan='2' style = 'text-align: right'>"
+ "<input type ='submit' value = 'Update'/></td>"
+ "</tr>");
writer.println("<tr><td colspan='2'>"
+ "<a href = 'customer'>CustomerList</a>"
+ "</td></tr>");
writer.println("</table>");
writer.println("</form></body>");
}else{
writer.println("No Customer Found");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
if(uri.endsWith("/customer")){
sendCustomerList(response);
}else if(uri.endsWith("/editCustomer")){
sendEditCustomerForm(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//update customer
Integer customerId = 0;
try{
customerId = Integer.parseInt(request.getParameter("id"));
}catch(NumberFormatException e){
}
Customer customer = getCustomer(customerId);
if(customer != null){
customer.setName(request.getParameter("name"));
customer.setCity(request.getParameter("city"));
}
sendCustomerList(response);
}
}
索引页
家
当前客户与城市
迟做总比不做好
好的,要使其工作,您应该将库添加到项目中
Servlet
@WebServlet(name = "CustomerServlet", urlPatterns = {
"/customer", "/editCustomer", "/updateCustomer"
})
public class CustomerServlet extends HttpServlet {
private static final long serialVersionUID = -20L;
private List<Customer> customers = new ArrayList<Customer>();
@Override
public void init() throws ServletException {
Customer customer1 = new Customer();
...
customers.add(customer1);
Customer customer2 = new Customer();
...
customers.add(customer2);
}
private Customer getCustomer(Integer customerId){
for (Customer customer : customers) {
if(customer.getId() == customerId){
return customer;
}
}
return null;
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
if(uri.endsWith("/customer")){
request.setAttribute("customers", customers);
request.getRequestDispatcher("/customers.jsp").forward(request, response);
}else if(uri.endsWith("/editCustomer")){
try{
customerId = Integer.parseInt(request.getParameter("id"));
}catch(NumberFormatException e){
e.printStackTrace();
}
Customer customer = getCustomer(customerId);
request.setAttribute("customer", customer);
request.getRequestDispatcher("/edit_customer.jsp").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer customerId = 0;
try{
customerId = Integer.parseInt(request.getParameter("id"));
}catch(NumberFormatException e){
}
Customer customer = getCustomer(customerId);
if(customer != null){
customer.setName(request.getParameter("name"));
customer.setCity(request.getParameter("city"));
}
response.sendRedirect("/customer");
}
}
@WebServlet(name=“CustomerServlet”,urlPatterns={
/customer“,/editCustomer“,/updateCustomer”
})
公共类CustomerServlet扩展了HttpServlet{
私有静态最终长serialVersionUID=-20L;
private List customers=new ArrayList();
@凌驾
public void init()引发ServletException{
客户customer1=新客户();
...
customers.add(customer1);
Customer customer2=新客户();
...
customers.add(customer2);
}
私有客户getCustomer(整数customerId){
用于(客户:客户){
if(customer.getId()==customerId){
退货客户;
}
}
返回null;
}
@凌驾
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
字符串uri=request.getRequestURI();
if(uri.endsWith(“/customer”)){
request.setAttribute(“客户”,客户);
request.getRequestDispatcher(“/customers.jsp”).forward(请求,响应);
}else if(uri.endsWith(“/editCustomer”)){
试一试{
customerId=Integer.parseInt(request.getParameter(“id”);
}捕获(数字格式){
e、 printStackTrace();
}
Customer=getCustomer(customerId);
request.setAttribute(“客户”,客户);
request.getRequestDispatcher(“/edit_customer.jsp”).forward(请求,响应);
}
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
整数customerId=0;
试一试{
customerId=Integer.parseInt(request.getParameter(“id”);
}捕获(数字格式){
}
Customer=getCustomer(customerId);
如果(客户!=null){
customer.setName(request.getParameter(“name”);
customer.setCity(request.getParameter(“city”);
}
响应。发送重定向(“/customer”);
}
}
customers.jsp
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<h1>Customer list</h1>
<ul>
<c:forEach var="c" items="${customers}">
<li>${c.name} (<a href="editCustomer?id=${c.id}">Edit</a>)</li>
</c:forEach>
</ul>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<h1>Edit customer</h1>
<form method="POST" action="/updateCustomer">
<input type="hidden" name="id" value="${customer.id}"/>
Name: <input type="text" name="name" value="${customer.name}"/><br/>
City: <input type="text" name="city" value="${customer.city}"/><br/>
<input type="submit" value="Save"/>
</form>
客户名单
- ${c.name}()
编辑_customer.jsp
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<h1>Customer list</h1>
<ul>
<c:forEach var="c" items="${customers}">
<li>${c.name} (<a href="editCustomer?id=${c.id}">Edit</a>)</li>
</c:forEach>
</ul>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<h1>Edit customer</h1>
<form method="POST" action="/updateCustomer">
<input type="hidden" name="id" value="${customer.id}"/>
Name: <input type="text" name="name" value="${customer.name}"/><br/>
City: <input type="text" name="city" value="${customer.city}"/><br/>
<input type="submit" value="Save"/>
</form>
编辑客户
名称:
城市:
嘿,非常感谢。。。我唯一没有得到的是${customer.name}之类的东西。有没有一个扩展的方法可以做到这一点,或者你可以广告评论。感谢${customer}是您从servlet传递到jsp的请求属性“request.setAttribute(“customer”,customer);“name,city-customer对象的字段,您应该在customer对象中有getter/setters方法。出于某种原因,它说taglib不起作用。您应该像我上面提到的那样,将jstl添加为您的库项目。如果servlet容器不包含jstl,那么也应该部署它