Servlet技术实现服务端,Android平台作为客户端,实现一个个人店铺

背景:

使用Servlet技术实现服务端,使用Android平台作为客户端,实现一个个人店铺,店铺商品不限。功能要求如下:

1. 提供登录、注册功能;(10分)

2. 首页面包括“商品列表”子页面、“订单”子页面和“我的”子页面;(20分)

3. 在商品列表页点击某个商品列表项可跳转到该商品的详情页面,在商品详情页面可以实现加入购物车和购买操作;商品数据来自于服务端;(20分)

4. 订单页显示个人的订单历史记录(每个订单显示订单日期、订单总价格),点击某个订单项,可跳转到订单详情页(显示订单中的商品列表,包括商品名称、单价、数量以及订单总价格);(20分)

4. 提供购物车页面,能够对购物车中的商品进行编辑:数量的增减、商品的删除、总价格的计算等;(10分)

5. 实现我的页面,能够维护个人信息;(10分)

6. 服务器端仅需提供接口,不需实现可视化的界面;(10分)

提交附件压缩包要求:

1. 包含Android端代码,以及服务端代码(工程clean后提交),mysql导出的.sql数据库脚本文件;

2. 包含实现功能简介及必要的重要运行截图文档,word格式(也可以是录制的运行视频);

安卓展示:

1-登录和注册【这里仅展示注册】

 2-商品列表

3-商品详情

4-购物车

 5-订单

接口介绍:

 本项目部署在公网,安卓请求数据为数据库中数据,servlet后台也已经部署在公网

项目使用ecplise+servlet+apache+mysql进行开发

遇到的技术难点:

笔者表示这还是第一次用servlet成功写出一个前后端交互的项目,还是验证了java所学,比较兴奋。个人认为比较有挑战性的技术难点如下:

1-以json格式与前端交互,用到了JSONObject()

2-公网部署servlet项目以及暴露图片地址给前端访问,原以为很难,实际很简单。

3-c3p0配置以及使用QueryRunner来执行sql。这一步笔者认为比较花时间。比如下面的new BeanListHandler<Cart>(Cart.class),如果使用不同BeanListHandler,都会返回不一样的值,这里debug看的很痛苦。

//显示购物车所有信息
	public List<Cart> viewCart(int user_id) throws SQLException {
		QueryRunner query = new QueryRunner(JDBCUtils.getDataSource());
		//感觉连接建立成功了
		String sql = "select * from cart where user_id = " + user_id + " and is_delete = 0 and status = 0";
//		System.out.println(sql);
		return query.query(sql, new BeanListHandler<Cart>(Cart.class));
		
	}

4-因为要用到一些公共的包,所以笔者配置了很多jar包,jar包笔者一度也配置的很痛苦,终于知道为啥要用maven了!!!maven是在太方便了!!!!

servlet后台代码:

 

vx: zew1040994588
登录servlet
public class userLogin extends HttpServlet {

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//0、解决返回中文乱码问题
		resp.setCharacterEncoding("UTF-8");
		JSONObject web_dict = JsonObjectWeb.getJsonInfoDict(req);
		
    	String username = web_dict.getString("username");
        String password = web_dict.getString("password");
        User user = new User();//创建user对象
        user.setUsername(username);
        user.setPassword(password);
vx: zew1040994588
注册servlet
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//解决返回中文乱码问题
		resp.setCharacterEncoding("UTF-8");
		JSONObject web_dict = JsonObjectWeb.getJsonInfoDict(req);
		
    	String username = web_dict.getString("username");
        String password = web_dict.getString("password");

        User user = new User();//创建user对象
        user.setUsername(username);
        user.setPassword(password);

安卓代码:

vx :zew1040994588
regist.setOnClickListener(v -> {
            Intent intent = new Intent(this, RegiestActivity.class);
            startActivity(intent);
        });

        login.setOnClickListener(v -> {
            if (user.getText().toString().isEmpty()){
                Toast.makeText(this, "账号不可以为空!", Toast.LENGTH_SHORT).show();
            }else  if (pwd.getText().toString().isEmpty()){
                Toast.makeText(this, "密码不可以为空!", Toast.LENGTH_SHORT).show();
            }else {

                JSONObject jsonObject=new JSONObject();
                try {
                    jsonObject.put("username", user.getText().toString());
                    jsonObject.put("password", pwd.getText().toString());
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                mPresenter.startpostInfoJsonToken(Constant22.BASE_Login, LoginBean.class, jsonObject.toString(),"");
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zew1040994588

爱你!爱你!!爱你哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值