• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Javaweb网上商城项目实战(2)通用Servlet实现-版本1

项目实战 Geekerstar 11个月前 (05-16) 361次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

为什么要编写一个通用Servlet呢?

本节内容与项目无关,只是为了说明编写通用Servlet的目的以及实现,如果比较熟悉Javaweb了可以跳过

我们对数据做增删改查,需要多个Servlet,增删查各一个,改需要两个,一个模块就用了五个Servlet,如果我们这个项目也这样,那显然不合理。所以通过编写通用的Servlet,我们可以减少Servlet的数量。每次传递一个数据时可以提供一个额外的键值对,通过判断值的不同内容来判断要做什么事情。

具体操作

新建一个DynamicWebProject,在项目下建立index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
</head>
<body>
<form action="/BaseServlet/ServletDemo01?method=addStu" method="post">
	用户<input type="text" name="username"/><br/>
	<button>提交</button>
</form>
<br/>
<a href="/BaseServlet/ServletDemo01?method=delStu">删除学生</a><br/>
<button onclick="fn()">按钮</button>
<script>
function fn(){
	$.post("/BaseServlet/ServletDemo01",{"method":"checkStu","user":"tom"},function(data){
		alert(data);
	});
}
</script>
</body>
</html>

新建一个包com.geekerstar.servlet,创建一个Servlet,ServletDemo01.java

package com.geekerstar.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo01 extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取客户端提交到服务端的method对应的值
		String md=request.getParameter("method");
		//定义变量,存放功能执行完毕之后要转发的路径
		String path=null;
		
		//通过判断md中不同的内容来决定本次功能
		if("addStu".equals(md)){
			path=addStu(request, response);
		}else if("delStu".equals(md)){
			path=delStu(request, response);
		}else if("checkStu".equals(md)){
			path=checkStu(request, response);
		}else if("".equals(md)){
			
		}
		if(null!=path){
			//服务端的转发
			request.getRequestDispatcher(path).forward(request, response);
		}
		
	}

	protected String addStu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("添加学生");
		return "/test.html";
		
	}
	protected String delStu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("删除学生");
		return "/test.html";
		
	}
	protected String checkStu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("检查学生");
		response.getWriter().println("DDDDDD");
		return null;
	}
		
}

运行程序,可以执行对应的操作。

总结

原理:

  • 从客户端向服务端发起请求,每次都要传递额外的键值对的数据method=””
  • 服务端获取到method对应的内容之后,通过判断不同的内容调用不同的功能

从客户端向服务端发起请求,调用功能方式:

  1. 通过表单向服务端发起请求
  2. 通过链接向服务端发起请求
  3. Ajax向服务端发起请求

源码下载

下载地址
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Javaweb网上商城项目实战(2)通用Servlet实现-版本1
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00