以下代码为凑数:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<center>
<h1>商品列表</h1>
<a href="/war exploded/addCart?name=杯子">杯子</a><br>
<a href="/war exploded/addCart?name=书包">书包</a><br>
<a href="/war exploded/addCart?name=笔记本">笔记本</a><br>
</center>
</body>
</html>
package session;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;
@WebServlet(name = "GetCartServlet", urlPatterns = "/getCart")
public class GetCartServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
List<String> list=(List<String>) session.getAttribute("list");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
for (String s : list){
response.getWriter().write(s+"<br/>");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
/war exploded/addCart?name=杯子
空格和后面的中文应该是要做url编码转义的。
空格用urlencode操作后好像是%20
中文可能浏览器会自动转义。所以,你试试改成
/war%20exploded/addCart?name=杯子
一个是url编码问题,另一个是上下文context是 /war exploded么?你确定么?
搜索一下 相对路径 静下心来学习一下