Servlet
服务器端小程序,处理请求,返回响应。
servlet, jsp, el, 都属于java ee
tomcat 服务器
1.前提条件: a. 要安装jdk b. 要配置JAVA_HOME 环境变量
2.启动:bin/startup.bat (windows下)
3.停止:bin/shutdown.bat (windows下)
4.用浏览器检查它是否真正启动:
http://localhost:8080
- 在idea 中配置tomcat
编写Servlet程序
1. 继承 HttpServlet父类
2. 使用注解 @WebServlet(urlPatterns = "浏览器访问路径")
3. 覆盖父类中 service 方法
4. Request : 请求
Response : 响应
@WebServlet(urlPatterns = "/servlet")
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("你好,我最美");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().println("<html><body>你好,你真美</body></html>");
}
}
1.浏览器发送请求
http://ip地址:端口号/servlet地址
2.服务器获取请求参数
String 值 = request.getParameter("请求参数名");
request.getParameter()返回的是字符串
- 处理请求
request.setCharacterEncoding("utf-8");
request.getParameter("参数名");
- 返回响应
response.setContentType("text/html;charset=utf-8");
PrintWriter w = response.getWriter();
w.println("html代码");
5.请求类型
get请求和post请求的区别:
1) get请求不适合发送敏感信息
post请求不会把请求参数跟在地址栏之后
2)post请求不一定安全
http 是不安全的,都是明文发送给服务器的
https 是安全的,会把信息发送给服务器的过程中进行加密
https 和post结合可以保证向服务器传输数据的安全性
3) get请求传输的数据有限制, post请求没有限制
4) get 意味着获取信息(对应查询操作)
post 意味着增,改,删等操作
6.post请求,会有中文乱码问题
解决方法是调用:
手工进行解码, 放在所有 req.getParameter()方法之前调用
req.setCharacterEncoding("utf-8");
servlet 的生命周期
整个生命周期中,servlet只有一个实例(单例的)
- 构造方法首先执行(执行一次)
- 初始化方法init (执行一次)
- 服务方法 service (反复被执行)来一次请求执行一次
- 销毁方法 destroy (执行一次)在服务器停止前,或重新部署时