方法:在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>