@WebServlet(value = "/index", loadOnStartup = 1) public class IndexServlet extends HttpServlet { @Override public void init() throws ServletException { Product p1 = new Product("1", "huawei_mate50", 5999.0, "new huawei"); Product p2 = new Product("2", "iphone13", 5899.0, "new iphone"); Product p3 = new Product("3", "mi10", 5555.0, "mi"); Product p4 = new Product("4", "onePlus10", 5000.0, "one"); Product p5 = new Product("5", "oppo", 5000.0, "one"); List<Product> productList = new ArrayList<>(); productList.add(p1); productList.add(p2); productList.add(p3); productList.add(p4); productList.add(p5); getServletContext().setAttribute("products", productList); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); List<Product> productList = (List<Product>) getServletContext().getAttribute("products"); for (Product product : productList) { String item = response.encodeURL(request.getContextPath() + "/item?id=" + product.getId()); response.getWriter().println("<a href='" + item + "'>" + product.getName() + "</a>"); } response.getWriter().println("浏览足迹为:"); History.showRecentViews(request, response); } }
时间: 2024-04-28 22:21:43 浏览: 12
这段代码是一个 Java Servlet,它的作用是在访问 /index 页面时,在页面上展示一些商品链接,并显示用户的浏览足迹。在 init() 方法中,创建了一个包含 5 个产品的 List,然后将其存储在 ServletContext 中,以便在整个应用程序中共享。在 doGet() 方法中,获取存储在 ServletContext 中的产品列表,遍历每个产品,生成商品链接并输出到页面上。最后,调用历史记录类 History 的 showRecentViews() 方法,展示用户最近浏览过的商品。这段代码有些问题,比如没有处理异常等,但是主要功能已经实现。
相关问题
@WebServlet(name = "login", value = "*.action") public class CenterController extends HttpServlet
这是一个名为 CenterController 的 Servlet,它会处理所有以 ".action" 结尾的 URL 请求。其中,name 属性为 "login",表示这个 Servlet 的名字是 "login"。Servlet 是 Java Web 应用程序中的一个组件,它可以接收 HTTP 请求并生成 HTTP 响应,通常用于处理动态网页。在这个 Servlet 中,我们可以编写代码来处理用户的登录请求。
@WebServlet(name = "deleteServlet", value = "/deleteServlet") public class deleteServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request,response); } }在这个页面填好
这个 Servlet 是一个空实现,需要根据具体需求进行修改。以下是一个简单的删除操作的示例:
```java
@WebServlet(name = "deleteServlet", value = "/deleteServlet")
public class deleteServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
// 根据具体需求进行删除操作,以下是一个示例代码
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBUtil.getConnection();
String sql = "DELETE FROM user WHERE id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.executeUpdate();
response.sendRedirect("userList.jsp");
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, ps, null);
}
}
}
```
该 Servlet 接收一个 POST 请求,从请求参数中获取一个 `id` 值,然后连接数据库,执行 SQL 语句删除对应的行,并重定向到用户列表页。需要注意的是,这里使用了一个 DBUtil 类来获取数据库连接和关闭资源,可以根据自己的情况进行修改。另外,需要将 SQL 语句中的 `user` 替换成实际的表名。