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

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

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

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

具体操作

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





Insert title here%MINIFYHTML2e79d74f1b6335a522373e28ac7d278c2%

用户

删除学生
%MINIFYHTML2e79d74f1b6335a522373e28ac7d278c3%%MINIFYHTML2e79d74f1b6335a522373e28ac7d278c4%

新建一个包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向服务端发起请求

源码下载

[dm href=’https://www.jikewenku.com/product/1700.html’]下载地址[/dm]

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Javaweb网上商城项目实战(2)通用Servlet实现-版本1

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多