欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Servlet学习笔记(一)

程序员文章站 2022-06-21 22:33:12
...

Servlet概述

Jsp的前身就是Servlet。
Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模式来访问的这个驻留在服务器内存里的Servlet程序。

Tomcat容器等级

四个等级。 Containner,Engine,HOST,Servlet,Context(上下文)
Servlet容器管理Context容器,一个Context对应一个Web工程

编写一个Servlet

  1. 创建一个自己的Servlet类,继承HttpServlet
  2. 重写doGet()或者doPost()方法。具体重写哪个取决去提交请求的方式。
  3. 在web.xml中注册Servlet
    主要是以下两个标签
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>servlet.HelloServlet</servlet-class>
  1. 通过web页面就可以进行Servlet的访问

举例:

//HelloServlet.java
package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("处理get请求");//打印到控制台,
        resp.setCharacterEncoding("utf-8");//注意编码问题,转换成UTF-8,否则会出现乱码
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out = resp.getWriter();
        out.println("<strong>欢迎光临</strong><br>");//输出到web页面
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //doPost也一样,就不重复写了
        super.doPost(req, resp);
    }

}
<--web.xml--!>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ServletDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>
</web-app>
<--index.html--!>
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <h1>my first Servlet</h1>
    <hr>
    <a href="servlet/HelloServlet">get()请求‚HelloServlet</a>
</body>
</html>

注意事项:

  1. 记得转换编码为UTF-8
  2. xml文件中的 servlet-class 和 url-pattern必须与index中的链接地址一样,指向servlet类的全地址,src为项目根目录.