您的位置:首页 > 其它

映射的方式实现一个servlet类处理多个请求

2017-09-12 15:30 447 查看
封装一个继承类,该类继承于HttpServlet并实现service方法,请求来了后首先执行该service方法,方法内写入两种处理中文乱码的方式,一个是处理客户端发送的请求乱码问题,一个是处理服务器响应后中文乱码的问题,代码如下:
package com.yinhe.web.servlet;

import java.io.IOException;
import java.lang.reflect.Method;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String method=req.getParameter("method");

//谁继承baseservlet,this就是谁
Class clazz=this.getClass();
//找到method指定的方法
try {
Method m=clazz.getMethod(method, HttpServletRequest.class,HttpServletResponse.class);
m.invoke(this, req,resp);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

写另一个方法,该方法是请求来了后执行的方法,例如前台有<from action="category?method="...""></from>  

WEB.xml中配置有:

  <servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>CatoryServlet</servlet-name>
<servlet-class>com.yinhe.web.servlet.CatoryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CatoryServlet</servlet-name>
<url-pattern>/category</url-pattern>
</servlet-mapping>

CatoryServlet类就是处理请求的servlet类,该servlet类要继承于上述BaseServlet类才能实现自动映射匹配请求执行的方法功能

前台发送一个category请求,并传method参数,method参数就是CatoryServlet类中的方法名。

因此,解决了多个请求一个servlet类处理的问题,大大减少代码量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐