JavaWeb网上图书商城完整项目--BaseServlet
1、以前进行操作的时候,例如我们进行登陆操作我们使用LoginServlet进行处理,进行注册操作我们使用RegisterServlet,很多业务的操作的时候我们就要定义很多个Servlet
有了BaseServlet我们可以把业务操作都放在一个Servlet中进行处理
通常,写一个项目可能会出现N多个Servlet,而且一般一个Servlet只有一个方法(doGet或doPost),如果项目大一些,那么Servlet的数量就会很惊人。为了避免Servlet的“膨胀”,我们写一个BaseServlet。它的作用是让一个Servlet可以处理多种不同的请求。不同的请求调用Servlet的不同方法。我们写好了BaseServlet后,让其他Servlet继承BaseServlet,例如CustomerServlet继承BaseServlet,然后在CustomerServlet中提供add()、update()、delete()等方法,每个方法对应不同的请求。并且每个方法放回一个字符串,指出它重定向或转发请求的路径,BaseServlet获得这个路径,再帮助子类转发请求或重定向到特定的页面。
见下图:
我们知道,Servlet中处理请求的方法是service()方法,这说明我们需要让service()方法去调用其他方法。例如调用add()、mod()、delele()、findAll()等方法!具体调用哪个方法需要在请求中给出方法名称!然后service()方法通过方法名称来调用指定的方法。
1、第一我们要创建的servlet必须继承BaseServlet
我们来看下程序的代码:
package com.weiyuan.test; import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import cn.itcast.servlet.BaseServlet; /**
* Servlet implementation class ListServlet
*/
@WebServlet("/ListServlet")
public class ListServlet extends BaseServlet {
private static final long serialVersionUID = 1L; public String login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("login is called");
return"f:/index.jsp";
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet is called");
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost is called");
} }
我们客户端如果要访问login这样业务操作必须写成:
写成这样会报错http://localhost:8080/BaseServlet/ListServlet
必须写上你要访问的方法
http://localhost:8080/BaseServlet/ListServlet?method=login
如何要增加注册业务操作:只需要在定义
public String register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("login is called");
return"f:/index.jsp";
}
/**
* 请求处理方法的参数都与doGet()和doPost()相同,即request和response
* 但请求处理方法有String类型的返回值,而doGet()和doPost()没有返回值。
* 在请求本方法时需要给出method=regist参数!
*/
BaseServlet中的请求处理方法有一个String类型的返回值,返回值表示转发或重定向的目标页面。例如:
l f:/index.jsp:其中f:表示转发,即forward的意思,/index.jsp表示转发到/index.jsp页面;
l r:/index.jsp:其中r:表示重定向,即redirect的意思,/index.jsp表示重定向到/index.jsp页面。
l null:表示不转发也不重定向;
最新文章
- 1,字符是否为空,2,比较两个字符大小。String.Compare(String, String)。string.IsNullOrEmpty(string)
- mysql 查看语句的执行效率
- 打印心形---print 的基础使用
- thinkphp框架中session常识
- IoTimerInLineHook
- 2.CentOS更换阿里源
- HDU4451Dressing(计数)
- C语言学习之插入排序
- 使用C#+socket实现用移动设备控制的虚拟手柄
- ELK简单安装
- Java中的异常处理与抛出
- 【angularJs】阻止默认事件
- Nancy的基本用法
- Java面试基础知识(2)
- advertisingIdentifier
- SharePoint 会话(Session)状态和状态服务
- cmake-mark_as_advanced
- eclipse工具的安装配置
- Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)
- 爬虫之Xpath详解
热门文章
- Java中的集合(二)单列集合顶层接口------Collection接口
- volatile关键字与内存可见性&;原子变量与CAS算法
- tomcat漏洞利用总结
- JavaWeb项目:旅游网站【涉及各种知识】
- 实战| 配置DataDog监控Apache Hudi应用指标
- Window10:不能建立到远程计算机的连接,你可能需要更改此连接的网络设置。
- Java并发编程 (五) 线程安全性
- MyBatis(二)参数传递和自定义结果集
- Java实现 LeetCode 784 字母大小写全排列(DFS)
- 第三届蓝桥杯JavaB组国(决)赛真题