Segunda semana de 2021

Cuatro aplicaciones principales de servletContext

1.
ServletContext de datos compartidos se comparte globalmente, ServletContext context = this.getServletContext ();
Básicamente no se usa en el desarrollo real, solo entiéndalo
2. Lea la configuración del parámetro de inicialización en web.xml, etc.

<!--  配置初始化参数-->
  <context-param>
    <param-name>url</param-name>
    <param-value>jdbc.mysql://localhost:3306/mybatis</param-value>
  </context-param>
public class ServletDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        获取web.xml中配置的初始化参数
        ServletContext context = this.getServletContext();
        String url = context.getInitParameter("url");
        System.out.println(url);
    }
}

3. Reenvío de solicitudes: tenga en cuenta que el reenvío es diferente de la redirección de respuestas, la ruta no cambiará

public class ServletDemo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        请求转发
        ServletContext context = this.getServletContext();
//        映射中的s5路径转发到/s3路径 转发路劲不变化 不同于重定向
        context.getRequestDispatcher("/s3").forward(req,resp);
    }
}

4. Coopere con la clase Propiedades para obtener información del archivo de configuración.
Para
ejecutar el archivo de configuración de Xinjiang en los archivos de recursos estáticos o java, el archivo de configuración correspondiente se generará en la carpeta de destino después de la ejecución final. Necesitamos usar esta ruta relativa '/ WEB-INF / classes / dp.properties' para leer la información
Inserte la descripción de la imagen aquí

public class ServletDemo03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        使用properties来读取配置文件
        InputStream rs = this.getServletContext().getResourceAsStream("/WEB-INF/classes/dp.properties");
        Properties prop = new Properties();
        prop.load(rs);
        String user = prop.getProperty("user");
        String pwd = prop.getProperty("pwd");
        resp.getWriter().print(user+";"+pwd);
    }
}

Redireccionamiento de la aplicación de respuesta

Redirigir el análisis del código fuente solo necesita dos oraciones

public class redirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        /*
        * 重定向等价代码
        * resp.setHeader("location","/s6");
        * resp.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
        * */
        resp.sendRedirect("/s6");
    }

Galleta

public class CookieDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
//        获取cookie对象
        Cookie[] cookies = req.getCookies();
        PrintWriter out = resp.getWriter();
        if(cookies!=null){
            out.write("你上一次登录浏览器时间是:");
            for (int i = 0; i < cookies.length; i++) {
                Cookie cookie = cookies[i];
                if(cookie.getName().equals("lastLoginTime")){
                    Long lastLoginTime = Long.parseLong(cookie.getValue());
                    Date date = new Date(lastLoginTime);
                    System.out.println(date.toLocaleString());
                }
            }
        }else {
            out.write("这是你第一次登陆浏览器");
        }

//        服务端存入一个cookie
        Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+"");
        resp.addCookie(cookie);

    }
}

sesión

Crear objeto de sesión y guardar contenido relevante

public class sessionDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        1.解决编码问题
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");

//        2.获取session对象
        HttpSession session = req.getSession();
        session.setAttribute("name","java工程师");
        session.setAttribute("student",new Student("黄杰",20));
        String id  =session.getId();
        if(session.isNew()){
            resp.getWriter().write("第一次");
        }else {
            resp.getWriter().write("sessionID是"+id);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

Cree una nueva clase y comparta la sesión globalmente. Puede obtener el contenido directamente a través del objeto de sesión devuelto por req.getSession ().
Preste atención a los dos tipos de parámetros de session.setAttribute (String, Object)
cuando llame a session.getAttribute ( String) Información para convertir en consecuencia;

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        1.解决编码问题
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");

//        2.获取session对象并获取内容
        HttpSession session = req.getSession();
        String name = (String) session.getAttribute("name");
        Student s1 = (Student) session.getAttribute("student");
        resp.getWriter().write("姓名是"+name);
        System.out.println(s1.toString());
    }

Cerrar sesión

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
//        注销session
        session.removeAttribute("name");  //常用
//        session.invalidate();
    }

Resuelva el problema de la exportación fallida de recursos xml por Maven

Configure el siguiente bloque de código en porm.xml

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

Configuración de tomcat clave en tiempo de ejecución

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/lwl12345678_/article/details/112791705
Recomendado
Clasificación