![](https://img-blog.csdnimg.cn/20190420135024966.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420135224228.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/2019042014100223.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420141234870.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
servlet工作原理
![](https://img-blog.csdnimg.cn/20190420142042754.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420142127597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420142508429.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420142555956.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
创建一个简单的servlet项目,实现验证用户登录
1.创建一个Dynamic Web Project,取名为myservlet
![](https://img-blog.csdnimg.cn/20190420160718184.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420161020444.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
2.创建一个myservlet的package,在package中创建一个名字为LoginServlet的servlet文件,默认勾选doget()和dopost()
![](https://img-blog.csdnimg.cn/20190420161415200.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
3.重写doget()方法
package myservlet;
import java.io.IOException;
import javax.servlet.ServletConfig;
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
//1.设置页面请求与响应的编码格式
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//2.利用request对象调用getParameter方法获取表单传送来的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//3.利用response对象调用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
doGet(request, response);
}
}
4.配置web.xml文件,加入红色框内的代码
![](https://img-blog.csdnimg.cn/20190420161729736.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
5.创建名为servletdemo的jsp页面
![](https://img-blog.csdnimg.cn/20190420161911371.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
6.运行
![](https://img-blog.csdnimg.cn/20190420162054369.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
下面我们就doGet()和doPost()做一下比较
1.首先当上述项目不变,将其中jsp页面中form标签中的method属性值为post时,在运行后的浏览器url中不显示其用户名和密码。
![](https://img-blog.csdnimg.cn/2019042016334447.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190420163216218.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
2.现在我们来重写一下LoginServlet.java中的doPost()方法,运行后会发现,当method="get"时,servlet运行doGet()方法,当method="post"时,servlet运行doPost()方法。
![](https://img-blog.csdnimg.cn/20190420163837979.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/2019042016400977.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAzODkw,size_16,color_FFFFFF,t_70)