先贴上三个servlet java类 :
package mypack;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**
* Servlet implementation class DispatchServlet*/public class DispatchServlet extends GenericServlet {
private static finallong serialVersionUID =1L;
private String target="/hello.jsp";
@Override
publicvoidservice(ServletRequest request, ServletResponse response)
throws ServletException, IOException {//TODO Auto-generated method stub
String username=request.getParameter("username");
String password=request.getParameter("password");
request.setAttribute("USER", username);
request.setAttribute("PASSWORD", password);
ServletContext context=getServletContext();
RequestDispatcher dispatcher=context.getRequestDispatcher(target);
dispatcher.forward(request, response);
}
}
上面这个类在java web第一篇文章中出现了.
packagemypack;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class HelloWorld extendsHttpServlet {privateString message;public void init() throwsServletException
{//Do required initialization
message = "Hello World";
}public voiddoGet(HttpServletRequest request,
HttpServletResponse response)throwsServletException, IOException
{//Set response content type
response.setContentType("text/html");//Actual logic goes here.
PrintWriter out =response.getWriter();
out.println("
" + message + "
");}public voiddestroy()
{//do nothing.
}
}
packagemypack;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class ResInfoServlet extendsHttpServlet {public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {//TODO Auto-generated method stub
response.setContentType("text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.println("
ResInfoServlet");out.println("
");out.println("
LocalAddr : " +request.getLocalAddr());
out.println("
LocalName : " +request.getLocalName());
out.println("
username : "+request.getParameter("username"));
out.println("");
out.close();
}
}
web.xml文件中配置如下:
helloapp
login.html
DispatchServlet
DispatchServlet
mypack.DispatchServlet
DispatchServlet
/DispatchServlet
ResInfoServlet
ResInfoServlet
mypack.ResInfoServlet
ResInfoServlet
/ResInfoServlet
HelloWorld
mypack.HelloWorld
HelloWorld
/HelloWorld
在浏览器中输入:
http://localhost:8080/helloapp/info?username=TOM
http://localhost:8080/helloapp/HelloWorld
需要注意几个细节:
<1> : extends HttpServlet 需要注意:重写doGet等方法时,需要全部去掉super.doGet(~~~)之类的,这在上一篇文中解释.
<2> : /info : http://localhost:8080/helloapp/info?username=TOM 隐蔽了真实的名.