一个servlet处理多个请求

方法:在servlet中利用反射来调用对应请求的处理方法。
1、index.jsp页面

<html>
  <head>
    <title>留言板</title>
  </head>
  <body>
  <div><h1>留住你心中的美好!</h1></div>
  <div>
    <a href="login.do" >登录</a>
    <a href="signIN.do">注册</a>
  </div>
  </body>
</html>

在这里插入图片描述
2、servlet(继承自Httpservlet)

public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String URL=req.getRequestURL().toString();  //获取请求的url地址信息
        String methodName=URL.substring(URL.lastIndexOf("/")+1,URL.lastIndexOf(".")); //获取方法名

        try{
            Class c=this.getClass();  //获取本类的class对象

            //获取method对象
            Method method=c.getDeclaredMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);

            method.invoke(this,req,resp);  //激活方法
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    //登录请求处理
    protected void login(HttpServletRequest req,HttpServletResponse resp){
        try {
            resp.sendRedirect( "login.jsp");  //重定向到登录页面
        }catch(IOException e){
            e.printStackTrace();
        }
    }

    //注册请求处理
    protected void signIN(HttpServletRequest req,HttpServletResponse resp){
        try{
            resp.sendRedirect("signIN.jsp"); //重定向到注册页面
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

3、web.xml配置

<servlet>
        <servlet-name>IndexServlet</servlet-name>
        <servlet-class>servlet.IndexServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>IndexServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值