Java servlet

容器和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
2
3
4
5
6
7
8
9
10
11
    //service方法调用特征
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}
//调用service之后常见的doGet doPost方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 处理
}
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
    26
        import 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
2
3
4
5
6
7
8
9
10
11
12
13
14

<web-app>
<servlet>
<description></description>
<display-name>HelloServlet</display-name>
<servlet-name>HelloServlet</servlet-name>
<jsp-file>/servlet.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
<servlet>
</web-app>

三、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类似的模板引起,语法非常像。

热评文章