举例说明:
现在的方法是get
注意观察运行结果地址
修改源代码,get改为post
运行结果:
LoginServlet.java
把doGet中的语句复制到doPost覆盖选中语句,username改为password
完整代码:
package myservlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
//1.设置页面请求与响应的编码格式
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//2.利用request对象调用getParamter方法获取表单传送来的用户名和密码
String username=request.getParameter("username");
String password=request.getParameter("password");
//3.利用reponse对象调用getWriter方法获得输出流,再利用该输出流的println方法向页面传送html标记
response.getWriter().println("<html>");
response.getWriter().println("<head>");
response.getWriter().println("<title>登录信息</title>");
response.getWriter().println("</head>");
response.getWriter().println("<body>");
response.getWriter().println("欢迎【"+username+"】用户登录成功!");
response.getWriter().println("</body>");
response.getWriter().println("</html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//1.设置页面请求与响应的编码格式
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//2.利用request对象调用getParamter方法获取表单传送来的用户名和密码
String username=request.getParameter("username");
String password=request.getParameter("password");
//3.利用reponse对象调用getWriter方法获得输出流,再利用该输出流的println方法向页面传送html标记
response.getWriter().println("<html>");
response.getWriter().println("<head>");
response.getWriter().println("<title>登录信息</title>");
response.getWriter().println("</head>");
response.getWriter().println("<body>");
response.getWriter().println("欢迎【"+password+"】用户登录成功!");
response.getWriter().println("</body>");
response.getWriter().println("</html>");
}
}
对于此servlet文件,doGet方法,主要是向页面传送用户名,doPost方法向页面传送密码
保存
运行servletdemo.jsp
输入的密码是1234
登录
现在显示的是密码,原因是现在在LoginServlet.java中,doGet方法和doPost方法分别编写了不同的处理过程,所以在运行时,表单如果是post方式,显示的登录信息就是密码,如果表单响应方式是get方式,那么就显示用户名
再修改表单显示方式,servletdemo.jsp的post改为get,保存
结果:
通过此例子,利用doGet和doPost方法,即可以进行相同的处理,也可以进行不同的处理