容器和Java web
一、java web容器规范
1、概念
- web容器是能部署web应用程序的环境
- Tomcat容器是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket(Java EE)技术实现
- Servlet是主要作用是给上级容器(Tomcat)等提供doGet()和doPost()等方法。其生命周期实例化、初始化、调用、销毁受控于Tomcat容器
- Java Web应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种web容器(如Tomcat)中运行。
二、Servlet
- Servlet本质上市一个java类,按照规范可以在javaweb容器中运行,对客户端的请求做出响应。
2.1、Servlet的生命周期
- init()初始化,数据初始化
- service()方法处理请求调用的实际方法,请求后把结果返回给客户端,service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。
- destory()方法结束请求
1 | //service方法调用特征 |
2.2、Servlet demo
流程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SampileServlet extends HttpServlet {
private String message;
public void init() throws ServletException
{
// 执行必需的初始化
message = " sample";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy()
{
}
}在路由层配置url映射关系,类似于spring中的RequestMapping,Python flaskweb框架中的@app.route(“/index.html”)功能
1 |
|
三、Cookie和Session
- Session保存在服务端,主要是服务端了标识用户而产生的,用于会话跟踪。
- Cookie,cookie是客户端发送给服务端的,session的跟踪主要也是用cookie来实现的。cookie信息一般保存在http报文信息中。
- 在jsp中,有Cookie对象供用户调用,可以设置服务端需要的key和value
1 | Cookie cookie = new Cookie("key","value"); |
四、JSP
- Java server pages一种根据服务端数据动态生成界面的技术,和很多前端模板引擎类似,jsp是一个servle程序。在界面中写入很多控制代码,来实现数据的动态渲染,之前学习过jinja2类似的模板引起,语法非常像。