目录
Servlet
HTTP 请求的 GET 与 POST 方式的区别
什么是 servlet
Servlet 的生命周期
Servlet 的基本架构
什么情况下调用 doGet()和 doPost()
Servlet
HTTP 请求的 GET 与 POST 方式的区别
1. get 是从服务器上获取数据,post 是向服务器传送数据
2. 请求的时候参数的位置有区别:get 的参数是拼接在 url 后面,用户在浏览器地址栏可以看到;post 是放在 http 包的包体中
3. 能提交的数据有区别,get 方式能提交的数据只能是文本,且大小不超过 1024 个字节,而 post 不仅可以提交文本还有二进制文件。所以说想上传文件的话,那我们就需要使用 post 请求方式
4. get 安全性非常低,post 安全性较高;比如说用户注册,不能把用户提交的注册信息用 get 的方式,会把用户的注册信息都显示在Url 上,是不安全的
什么是 servlet
Servlet 是服务器端的程序,动态生成 html 页面发送到客户端,但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很乱,所以后来 sun 公司推出了 JSP.其实 JSP 就是 Servlet,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成.class文件运行。有了 jsp,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流转
Servlet 的生命周期
Servlet 生命周期包括三部分:
初始化:Web 容器加载 servlet,调用 init() 方法
处理请求:当请求到达时,运行其 service() 方法。service() 自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法
销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet
Servlet 的基本架构
package com.jiangzhen.demo;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/userController")
public class UserServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
什么情况下调用 doGet()和 doPost()
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()
1. get 是从服务器上获取数据,post 是向服务器传送数据
2. 请求的时候参数的位置有区别:get 的参数是拼接在 url 后面,用户在浏览器地址栏可以看到;post 是放在 http 包的包体中
3. 能提交的数据有区别,get 方式能提交的数据只能是文本,且大小不超过 1024 个字节,而 post 不仅可以提交文本还有二进制文件。所以说想上传文件的话,那我们就需要使用 post 请求方式
4. get 安全性非常低,post 安全性较高;比如说用户注册,不能把用户提交的注册信息用 get 的方式,会把用户的注册信息都显示在Url 上,是不安全的
什么是 servlet
Servlet 是服务器端的程序,动态生成 html 页面发送到客户端,但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很乱,所以后来 sun 公司推出了 JSP.其实 JSP 就是 Servlet,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成.class文件运行。有了 jsp,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流转
Servlet 的生命周期
Servlet 生命周期包括三部分:
初始化:Web 容器加载 servlet,调用 init() 方法
处理请求:当请求到达时,运行其 service() 方法。service() 自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法
销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet
Servlet 的基本架构
package com.jiangzhen.demo;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/userController")
public class UserServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
什么情况下调用 doGet()和 doPost()
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()
Servlet 是服务器端的程序,动态生成 html 页面发送到客户端,但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很乱,所以后来 sun 公司推出了 JSP.其实 JSP 就是 Servlet,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成.class文件运行。有了 jsp,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流转
Servlet 生命周期包括三部分:
初始化:Web 容器加载 servlet,调用 init() 方法
处理请求:当请求到达时,运行其 service() 方法。service() 自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法
销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet
Servlet 的基本架构
package com.jiangzhen.demo;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/userController")
public class UserServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
什么情况下调用 doGet()和 doPost()
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()



