配置web.xml里面的servlet的三种方式

@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>
经验分享 程序员 微信小程序 职场和发展