java web中购物车功能的实现。如何实现上面的加减删 *** 作

java web中购物车功能的实现。如何实现上面的加减删  *** 作,第1张

如果不使用 Ajax 技术,可以在后台做三个 action 分别是 add(),sub() 和 delete() 分别表示加、减、删。

然后前台针对这三个 *** 作做三个链接:

youproject/add?id=1

youproject/sub?id=1

youproject/delete?id=1

如果是要做 REST 风格的链接,可以这样:

youproject/add/1

youproject/sub/1

youproject/delete/1

后台 action 接收到请求后,处理购物车数据,处理完成后返回前台,刷新页面。

文件太大 上传不了。。。。我给你看下部分代码

public class CommentServlet extends HttpServlet {

private static final long serialVersionUID = -2540110714710583202L

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response)

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//获取从放入request中的method的值

request.setCharacterEncoding("UTF-8")

String method = request.getParameter("method")

if (method == null) {

method = ""

}

//判断method的值调用不同方法

if (method.equals("add")) {

add(request, response)

} else if (method.equals("admin")) {

admin(request, response)

} else if (method.equals("delete")) {

delete(request, response)

} else {

admin(request, response)

}

}

public void add(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String name = request.getParameter("name")

String content = request.getParameter("content")

String blog_id = request.getParameter("blog_id")

if (name == null | name.equals("")) {

name = "匿名"

}

String sql = "insert into comment (username,content,blog_id,createdtime) values(?,?,?,now())"

String params[] = { name, content, blog_id }

QueryRunner qr = DbHelper.getQueryRunner()

try {

qr.update(sql, params)

} catch (SQLException e) {

e.printStackTrace()

}

response.sendRedirect("/blog/servlet/HomeServlet?method=display&id="

+ blog_id)

}

public void admin(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

HttpSession session = request.getSession()

User user = (User) session.getAttribute("user")

if (user == null) {

response.sendRedirect("/blog")

} else {

String sql = "select c.id,username,c.content,c.createdtime,title from comment c,blog b where blog_id=b.id order by c.id desc"

QueryRunner qr = DbHelper.getQueryRunner()

List list = null

try {

list = (List) qr.query(sql, new BeanListHandler(Comment.class))

} catch (SQLException e) {

e.printStackTrace()

}

request.setAttribute("list", list)

request.getRequestDispatcher("/admin/adminCommentList.jsp")

.forward(request, response)

}

}

public void delete(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

HttpSession session = request.getSession()

User user = (User) session.getAttribute("user")

if (user == null) {

response.sendRedirect("/blog")

} else {

String id = request.getParameter("id")

String ctid = request.getParameter("ctid")

String id2 = (String) request.getParameter("id2")

System.out.println(id2)

if (ctid != null) {

id = ctid

}

String sql = "delete from comment where id=" + id

QueryRunner qr = DbHelper.getQueryRunner()

try {

qr.update(sql)

} catch (SQLException e) {

e.printStackTrace()

}

if (ctid == null) {

response.sendRedirect("CommentServlet?method=admin")

} else {

request.setAttribute("id2", id2)

request.getRequestDispatcher("HomeServlet?method=display")

.forward(request, response)

}

}

}

}

下面这个类是连接数据库的

package cn.com.jobedu.blog

import javax.naming.Context

import javax.naming.InitialContext

import javax.naming.NamingException

import javax.sql.DataSource

import org.apache.commons.dbutils.QueryRunner

public class DbHelper {

public static QueryRunner getQueryRunner() {

// 数据源对象可以理解为连接池的管理者,通过他可以获取数据库的链接

DataSource ds = null

Context context

try {

// 通过在context.xml文件,设定的数据源对象的名字,获取数据源对象

context = new InitialContext()

ds = (DataSource) context.lookup("java:comp/env/jdbc/mysqlds")

} catch (NamingException e) {

System.out.println("获取数据源失败!")

}

QueryRunner qr = new QueryRunner(ds)

return qr

}

}

你需要的是基于gui界面的还是javaweb的呢?

这两种项目有共性也有区别, 比如在数据层的部分可以统一的抽象出来公用。

但是在view层差别还蛮大的, swing是各种基于listener来触发业务逻辑, 与javaweb开发不太一样, 我最近两种都有实现, 感受是还算简单。

希望能够帮助你


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11446643.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存