@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String serlvetPath = req.getServletPath();
String methodName = serlvetPath.substring(serlvetPath.lastIndexOf("/") + 1);
try {
Method method = this.getClass().getDeclaredMethod(methodName,
new Class[] { HttpServletRequest.class, HttpServletResponse.class });
if (method != null) {
method.invoke(this, req, resp);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//后面写具体方法 便可自动识别并执行
/*web.xml中 必须严格按照方法初始化配置*/
<servlet>
<servlet-name>StoreUserServlet</servlet-name>
<servlet-class>com.sts.servlet.StoreUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StoreUserServlet</servlet-name>
<url-pattern>/StoreUserServlet/login</url-pattern>
<url-pattern>/StoreUserServlet/regist</url-pattern>
</servlet-mapping>
方法二
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取method值,
String methodName = request.getParameter("method");
if ("registUI".equals(methodName)) {
registUI(request, response);
}else if ("loginUI".equals(methodName)) {
loginUI(request, response);
}else if ("regist".equals(methodName)) {
regist(request, response);
}else if ("active".equals(methodName)) {
active(request, response);
}else if ("login".equals(methodName)) {
login(request, response);
}else if ("homepage".equals(methodName)) {
homepage(request, response);
}else if ("myfile".equals(methodName)) {
myfile(request, response);
}
}
该方法需要在请求Servlet时指明method
<li><a href="${pageContext.request.contextPath }/notice?method=findAll" class="notice">通知</a></li>
同时web.xml里面配置servlet只需要如下即可
<servlet>
<servlet-name>NoticeServlet</servlet-name>
<servlet-class>com.itheima.web.servlet.NoticeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NoticeServlet</servlet-name>
<url-pattern>/notice</url-pattern>
</servlet-mapping>
方法三:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String requestURI = req.getRequestURI();
System.out.println(requestURI);
if (requestURI.endsWith(Protocol.reg_user)) {
this.registerUser(req, resp);
} else if (requestURI.endsWith(Protocol.login_user)) {
this.loginUser(req, resp);
}
}
web.xml如下
<!-- 1 -->
<servlet-mapping>
<servlet-name>student</servlet-name>
<url-pattern>/student/*</url-pattern>
</servlet-mapping>
<!-- 2 -->
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/user/register</url-pattern>
<url-pattern>/user/login</url-pattern>
</servlet-mapping>
<!-- 3 -->
<servlet-mapping>
<servlet-name>valid</servlet-name>
<url-pattern>/valid</url-pattern>
</servlet-mapping>