Servlet

servlet体系结构 一、servlet体系结构图 二、servlet/jsp的网络拓扑图 三、Servlet的开发流程(以Tomcat为例,纯手工建立) 1、在%TOMCAT_HOME%\webapps下WEB-INF的文件夹建立classes、lib目录,classes目录存放编译后的文件,lib目录存放要用到的外部库文件,另外创建一个很重要的文件:web.xml。we 阅读详情

Servlet

什么是 Servlet

  1. Servlet 是 JavaEE 规范之一。规范就是接口
  2. Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
  3. Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

手动实现 Servlet 程序

  1. 编写一个类去实现 Servlet 接口
  2. 实现 service 方法,处理请求,并响应数据
  3. 到 web.xml 中去配置 servlet 程序的访问地址

Servlet程序示例代码:

package servlet;

import javax.servlet.*;
import java.io.IOException;

/**
 * ClassName: HelloServlet
 * Description:
 * date: 2022/1/15 13:43
 *
 * @author Ekertree
 * @since JDK 1.8
 */
public class HelloServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("HelloServlet被访问了!");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

web.xml 中的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<!-- servlet 标签给Tomcat 配置Servlet 程序 -->
<servlet>
<!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
<servlet-name>HelloServlet</servlet-name>
<!--servlet-class 是Servlet 程序的全类名-->
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<!--servlet-mapping 标签给servlet 程序配置访问地址-->
<servlet-mapping>
<!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个Servlet 程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!--url-pattern 标签配置访问地址 <br/>
/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径	<br/>
/hello 表示地址为:http://ip:port/工程路径/hello	<br/>
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

url 地址到 Servlet 程序的访问

在这里插入图片描述

Servlet的生命周期

  1. 执行 Servlet 构造器方法

  2. 执行 init 初始化方法
    Servlet中的初始化方法有两个:init() , init(config)
    其中带参数的方法代码如下:

   public void init(ServletConfig config) throws ServletException {
this.config = config ;
init();
   }

另外一个无参的init方法如下:

   public void init() throws ServletException{
   }

如果我们想要在Servlet初始化时做一些准备工作,那么我们可以重写init方法
我们可以通过如下步骤去获取初始化设置的数据

  • 获取config对象:ServletConfig config = getServletConfig();
  • 获取初始化参数值: config.getInitParameter(key);
第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
  1. 执行 service 方法

第三步,每次访问都会调用。

  1. 执行 destroy 销毁方法

    第四步,在 web 工程停止的时候调用。

GET和POST请求的分发处理

public class HelloServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    public void doGet(){
        System.out.println("GET请求");
    }

    public void doPOST(){
        System.out.println("POST请求");
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        //类型转换,因为httpServletRequest有getMethod()方法
        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
        //获取请求的方式
        String method = httpServletRequest.getMethod();
        if("GET".equals(method)){
            doGet();
        }else if ("POST".equals(method)){
            doPOST();
        }
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

通过继承 HttpServlet实现 Servlet程序

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

  1. 编写一个类去继承 HttpServlet 类
  2. 根据业务需要重写 doGet 或 doPost 方法
  3. 到 web.xml 中的配置 Servlet 程序的访问地址
public class HelloServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
        System.out.println("HELLOPOST!");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
        System.out.println("HELLOGET!");
    }
}

使用 IDEA 创建 Servlet 程序

菜单:new ->Servlet 程序:

在这里插入图片描述

配置 Servlet 的信息:

在这里插入图片描述

Servlet类的继承体系

在这里插入图片描述

ServletConfig 类

ServletConfig 类从类名上来看,就知道是 Servlet 程序的配置信息类。

Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。

Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象。

三大作用

  1. 可以获取 Servlet 程序的别名 servlet-name 的值
  2. 获取初始化参数 init-param
  3. 获取 ServletContext 对象

xml:

<servlet>
        <servlet-name>HelloServlet2</servlet-name>
        <servlet-class>HelloServlet2</servlet-class>
        <init-param>
            <param-name>username</param-name>
            <param-value>passwd</param-value>
        </init-param>
    </servlet>

java

 @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        //1、可以获取Servlet 程序的别名servlet-name 的值
        System.out.println("HelloServlet 程序的别名是:" + servletConfig.getServletName());
        //2、获取初始化参数init-param
        System.out.println("初始化参数 username 的值是:" + servletConfig.getInitParameter("username"));
        //3、获取ServletContext 对象
        System.out.println(servletConfig.getServletContext());
    }

重写init方法里面一定要调用父类的init(ServletConfig)操作

ServletContext 类

什么是 ServletContext?

  1. ServletContext 是一个接口,它表示 Servlet 上下文对象
  2. 一个 web 工程,只有一个 ServletContext 对象实例。
  3. ServletContext 对象是一个域对象。
  4. ServletContext 是在 web 工程部署启动的时候创建,在 web 工程停止的时候销毁。

什么是域对象?

域对象,是可以像 Map 一样存取数据的对象,叫域对象。这里的域指的是存取数据的操作范围,整个 web 工程。

存数据取数据删除数据
Mapput()get()remove()
域对象setAttribute()getAttribute()removeAttribute()

1、2、3演示代码:

public class ContextServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获取web.xml 中配置的上下文参数context-param
        ServletContext servletContext = getServletConfig().getServletContext();
        String hello = servletContext.getInitParameter("hello");
        System.out.println("context-param 参数 hello 的值是:" + hello);
        //2.获取当前的工程路径,格式: /工程路径
        System.out.println( "当前工程路径:" + servletContext.getContextPath() );
        //3.获取工程部署后在服务器硬盘上的绝对路径
        System.out.println("工程部署的路径是:" + servletContext.getRealPath("/"));
        System.out.println("css工程部署的路径是:" + servletContext.getRealPath("/css"));
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <context-param>
        <param-name>hello</param-name>
        <param-value>world</param-value>
    </context-param>
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Servlet</servlet-name>
        <servlet-class>Servlet</servlet-class>
        <init-param>
            <param-name>username</param-name>
            <param-value>passwd</param-value>
        </init-param>
    </servlet>
    <servlet>
        <servlet-name>ContextServlet</servlet-name>
        <servlet-class>ContextServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Servlet</servlet-name>
        <url-pattern>/hello2</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ContextServlet</servlet-name>
        <url-pattern>/context</url-pattern>
    </servlet-mapping>
</web-app>

4.的演示代码:

public class ContextServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取servletcontext对象
        ServletContext servletContext = getServletContext();
        servletContext.setAttribute("key1","value1");
        System.out.println("Context1 中获取域数据 key1 的值是:"+ servletContext.getAttribute("key1"));
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

HTTP 协议

什么是 HTTP协议

什么是协议?

协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。

所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫 HTTP 协议。

HTTP 协议中的数据又叫报文。

请求的 HTTP 协议格式

客户端给服务器发送数据叫请求。服务器给客户端回传数据叫响应。

请求又分为 GET 请求,和 POST 请求两种

GET 请求

1.请求行

​ (1) 请求的方式 GET

​ (2) 请求的资源路径[+?+请求参数]

​ (3) 请求的协议的版本号 HTTP/1.1

2.请求头

​ key : value 组成 不同的键值对,表示不同的含义。

img

POST 请求

1.请求行

​ (1) 请求的方式 POST

​ (2) 请求的资源路径[+?+请求参数]

​ (3) 请求的协议的版本号 HTTP/1.1

2.请求头

​ 1)key : value 不同的请求头,有不同的含义

空行

3.请求体 ===>>> 就是发送给服务器的数据

在这里插入图片描述

常用请求头的说明

Accept: 表示客户端可以接收的数据类型

Accpet-Languege: 表示客户端可以接收的语言类型

User-Agent: 表示客户端浏览器的信息

Host: 表示请求时的服务器 ip 和端口号

哪些是 GET 请求,哪些是 POST请求

GET 请求有哪些:

1、form 标签 method=get 2、a 标签

3、link 标签引入 css

4、Script 标签引入 js 文件

5、img 标签引入图片

6、iframe 引入 html 页面

7、在浏览器地址栏中输入地址后敲回车

POST 请求有哪些:

8、form 标签 method=post

响应的 HTTP 协议格式

1.响应行

​ (1) 响应的协议和版本号

​ (2) 响应状态码

​ (3) 响应状态描述符

2.响应头

​ (1) key : value 不同的响应头,有其不同含义空行

3.响应体 ---->>> 就是回传给客户端的数据

在这里插入图片描述

常用的响应码说明

响应码含义
200表示请求成功
302表示请求重定向
404表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)
500表示服务器已经收到请求,但是服务器内部错误(代码错误)

MIME 类型说明

MIME 是 HTTP 协议中数据类型。

MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务。MIME 类型的格式

是“大类型/小类型”,并与某一种文件的扩展名相对应。

常见的 MIME 类型:

文件MIME类型
超文本标记语言文本.html,.html text/html
普通文本.txt text/plain
RTF文本.rtf application/rtf
GIF图形.gif image/gif
GIF图形.jpeg,.jpg image/jpeg
JPEG图形.au audio/basic
MIDI音乐文件mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件.ra, .ram audio/x-pn-realaudio
MPEG文件.mpg,.mpeg video/mpeg
AVI文件.avi video/x-msvideo
GZIP文件.gz application/x-gzip
TAR文件.tar application/x-tar

HttpServletRequest 类

HttpServletRequest 类有什么作用

每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息。

HttpServletRequest 类的常用方法

方法作用
getRequestURI()获取请求的资源路径
getRequestURL()获取请求的统一资源定位符(绝对路径)
getRemoteHost()获取客户端的 ip 地址
getHeader()获取请求头
getParameter()获取请求的参数
getParameterValues()获取请求的参数(多个值的时候使用)
getMethod()获取请求的方式GET 或POST
setAttribute(key, value)设置域数据
getAttribute(key)获取域数据
getRequestDispatcher()获取请求转发对象

在*IDEA* 中,使用*localhost* 访问时,得到的客户端 *ip* 地址是 *===>>>* 127.0.0.1

在*IDEA* 中,使用*127.0.0.1* 访问时,得到的客户端 *ip* 地址是 ===>>> *127.0.0.1

在*IDEA* 中,使用 真实*ip* 访问时,得到的客户端 *ip* 地址是 *===>>>* 真实的客户端 *ip* 地址

public class HttpRequestApi extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //	i.getRequestURI()	获取请求的资源路径
        System.out.println("URI => " + request.getRequestURI());
        //	ii.getRequestURL()	获取请求的统一资源定位符(绝对路径)
        System.out.println("URL => " + request.getRequestURL());
        // iii.getRemoteHost()
        System.out.println("客户端 ip 地址 => " + request.getRemoteHost());
        //	iv.getHeader()	获取请求头
        System.out.println("请求头 User-Agent ==>> " + request.getHeader("User-Agent"));
        //	vii.getMethod()	获取请求的方式GET 或POST
        System.out.println( "请求的方式 ==> " + request.getMethod());
    }

}

获取请求参数

表单:

<form action="http://localhost:8080/web/parameter" method="post">
        用户名:<input type="text" name="username"><br>
        密码:<input type="text" name="password"><br>
        兴趣:<input type="checkbox" name="hobbys" value="cpp">c++
             <input type="checkbox" name="hobbys" value="Java">Java
             <input type="checkbox" name="hobbys" value="Python">Python
        <br>
        <input type="submit">
    </form>

java:

public class parameterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String[] hobbys = request.getParameterValues("hobbys");
        List<String> hobby = Arrays.asList(hobbys);
        System.out.println("用户名:"+username+",密码:"+password+"爱好:"+hobby);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbys = req.getParameterValues("hobbys");
        List<String> hobby = Arrays.asList(hobbys);
        System.out.println("用户名:"+username+",密码:"+password+"爱好:"+hobby);
    }
}

解决中文乱码

GET
// 获取请求参数
String username = req.getParameter("username");

//1 先以iso8859-1 进行编码
//2 再以utf-8 进行解码
username = new String(username.getBytes("iso-8859-1"), "UTF-8");
POST
// 设置请求体的字符集为UTF-8,从而解决post 请求的中文乱码问题
//一定要在获取任意参数之前调用才有用,不是在获取乱码参数之前调用就可以了
req.setCharacterEncoding("UTF-8"); 

请求的转发

什么是请求的转发?

请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。

在这里插入图片描述

Servlet1 代码:

public class Servlet1 extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 获取请求的参数(办事的材料)查看
String username = req.getParameter("username");
System.out.println("在 Servlet1(柜台 1)中查看参数(材料):" + username);

// 给材料 盖一个章,并传递到Servlet2(柜台 2)去查看
req.setAttribute("key1","柜台 1 的章");

// 问路:Servlet2(柜台 2)怎么走
/**
* 请求转发必须要以斜杠打头,/ 斜杠表示地址为:http://ip:port/工程名/ , 映射到IDEA 代码的web 目录
<br/>
*
*/
RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
//	RequestDispatcher requestDispatcher = req.getRequestDispatcher("http://www.baidu.com");

// 走向Sevlet2(柜台 2)
requestDispatcher.forward(req,resp);
	}
}

Servlet2 代码:

public class Servlet2 extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取请求的参数(办事的材料)查看
String username = req.getParameter("username");
System.out.println("在 Servlet2(柜台 2)中查看参数(材料):" + username);

// 查看 柜台1 是否有盖章
Object key1 = req.getAttribute("key1"); System.out.println("柜台 1 是否有章:" + key1);

// 处理自己的业务
System.out.println("Servlet2 处理自己的业务 ");
}
}

base标签的作用

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--base 标签设置页面相对路径工作时参照的地址
href 属性就是参数的地址值
-->
<base href="http://localhost:8080/07_servlet/a/b/">
</head>
<body>
这是 a 下的 b 下的 c.html 页面<br/>
<a href="../../index.html">跳回首页</a><br/>
</body>
</html>

Web 中的相对路径和绝对路径

在 javaWeb 中,路径分为相对路径和绝对路径两种:

相对路径是:

  • . 表示当前目录
  • … 表示上一级目录
  • 资源名 表示当前目录/资源名

绝对路径:

http://ip:port/工程路径/资源路径

在实际开发中,路径都使用绝对路径,而不简单的使用相对路径。

  1. 绝对路径
  2. base+相对

web 中 / 斜杠的不同意义

在 web 中 / 斜杠 是一种绝对路径。

/ 斜杠 如果被浏览器解析,得到的地址是:http://ip:port

<a href="/">斜杠</a>

/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径

  • <url-pattern>/servlet1</url-pattern>
  • servletContext.getRealPath(“/”);
  • request.getRequestDispatcher(“/”);

特殊情况:

response.sendRediect(“/”);

把斜杠发送给浏览器解析。得到 http://ip:port

HttpServletResponse 类

HttpServletResponse类的作用

HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会创建一个Response 对象传递给 Servlet 程序去使用。HttpServletRequest 表示请求过来的信息,HttpServletResponse 表示所有响应的信息,我们如果需要设置返回给客户端的信息,都可以通过 HttpServletResponse 对象来进行设置.

两个输出流的说明

流方法用途
字节流getOutputStream()常用于下载(传递二进制数据)
字符流getWriter()常用于回传字符串(常用)

两个流同时只能使用一个,使用了字节流,就不能再使用字符流,反之亦然,否则就会报错。

如何往客户端回传数据

public class ResponseIOServlet extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//	要求: 往客户端回传字符串数据。
PrintWriter writer = resp.getWriter(); writer.write("response's content!!!");
}
}
响应的乱码解决
解决响应中文乱码方案一(不推荐使用)
// 设置服务器字符集为UTF-8
resp.setCharacterEncoding("UTF-8");
// 通过响应头,设置浏览器也使用UTF-8 字符集
resp.setHeader("Content-Type", "text/html; charset=UTF-8");
解决响应中文乱码方案二(推荐)
// 它会同时设置服务器和客户端都使用UTF-8 字符集,还设置了响应头
// 此方法一定要在获取流对象之前调用才有效
resp.setContentType("text/html; charset=UTF-8");

请求重定向

请求重定向,是指客户端给服务器发请求,然后服务器告诉客户端说。我给你一些地址。你去新地址访问。叫请求 重定向(因为之前的地址可能已经被废弃)。

在这里插入图片描述

请求重定向的第一种方案:

// 设置响应状态码302 ,表示重定向,(已搬迁)
resp.setStatus(302);
// 设置响应头,说明 新的地址在哪里
resp.setHeader("Location", "http://localhost:8080");

请求重定向的第二种方案(推荐使用):

resp.sendRedirect("http://localhost:8080");
Servlet的起源以及Servlet到底是什么 详细介绍了Java Web中的Servlet的概念以及Servlet的发展历程。 1 Java Web概述 Java EE全名为Java Platform Enterprise Edition,即Java平台企业版。JavaEE以JavaSE作为语法基础,可以看作一个大的框架,提供了的一系列使用Java语言进行企业级应用开发的组件和API标准,没有提供具体的实现(也就是接口)。比如常见的Servlet、JDBC、EJB、JNDI、Servlet、JSP等等都是它制定的企业级应用程序开发的规范或者标准. 阅读详情

相关推荐

STM32F407+LAN8720A+LwIP实战:FreeModbus TCP从机功能开发指南

本文详细介绍了基于STM32F407和LAN8720A硬件平台,结合LwIP协议栈实现FreeModbus TCP从机功能的开发指南。内容涵盖硬件连接、LwIP移植、FreeModbus TCP从机实现、任务调度及调试技巧,为工业控制领域的以太网通信开发提供实用参考。

weixin_29190651的博客 545

尚硅谷JavaWeb——121 Servlet

1. Servlet 技术 a) 什么是 Servlet Servlet 是 JavaEE 规范之一。规范就是接口。 Servlet 是 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。 Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。 b)手动实现 Servlet 程序 编写一个类去实现 Servlet 接口。 实现 service 方法,处理请求,并响应数据。 到 we

qq_33790600的博客 391

基于STM32控制直流电机加减速正反转仿真设计

*单片机设计介绍,基于STM32控制直流电机加减速正反转仿真设计。

2201_75940997的博客 1602

(尚硅谷)javaweb学习笔记02-------JSP部分

什么是JSP,它有什么用? jsp的全称是java server pages。java的服务页面。 jsp的主要作用是代替Servlet程序回传html页面的数据。 因为Servlet程序回传html页面数据是一种非常繁琐的事情。开发成本和维护成本都极高。 那为什么我们说用Servlet程序回传html页面数据的成本极高呢? 我们先用Servlet去回传一下html页面: ...

weixin_52618349的博客 1022

UVM仿真卡住了?别慌!手把手教你定位并解决PH_TIMEOUT超时错误

本文详细解析了UVM仿真中常见的PH_TIMEOUT超时错误,提供了从错误诊断到解决方案的完整指南。通过理解错误机制、分析调试技巧和常见问题场景,帮助验证工程师快速定位并解决这一棘手问题,同时分享了预防措施与最佳实践,提升仿真效率。

weixin_28683065的博客 367

cesium单向流动线效果

在学材质的路上一去不复返了属实是,难也难在这。还请各位大佬多多指教~

就zhei? 688

【Java Web】@WebServlet详解

Servlet3.0里引入了注解 注解@WebServlet用来定义Web应用程序中的一个Servlet。 @WebServlet注解属性 asyncSupported:声明Servlet是否支持异步操作; description:Servlet的描述信息; displayName:Servlet的显示名称; initParams:Servlet的初始化参数; name:Servlet的名称; urlPatterms:Servlet的访问URL; value:Servlet的访问URL;

Shino_jie的博客 1万+

【RH850/U2A】:功能安全

功能安全相关

3130

【JavaWeb】Servlet详解

Servlet是JavaWeb开发非常重要的知识,本文从Servlet概念出发,从一个基础Servlet的程序解析了Servlet的工作原理及流程,还介绍了请求和响应的Servlet API,使用这些API可以解析请求和设置响应内容,在文章最后,实现了用户登陆功能......

X_H学Java的博客 5665

OpenClaw实战系列06:持久记忆与RAG知识库构建——让AI真正“记住”你

本文介绍了OpenClaw AI助理的持久记忆与RAG知识库构建功能。OpenClaw采用"文件即真理"的独特设计,所有记忆都以Markdown文件形式存储,支持直接编辑和Git版本管理。记忆系统分为三层:长期精炼记忆(MEMORY.md)、日常日志(按日期存储)和归档记忆。文章详细说明了环境配置步骤,包括安装必要组件、创建目录结构、设置API密钥,并提供了OpenClaw主配置文件的完整参数说明。该系统实现了跨会话、跨平台的持久化记忆,使AI助理能真正理解用户需求。

PeterPan的博客 1171

记录:解决Ubuntu20.04安装ros报错E: Unable to locate package ros-kinetic-desktop-full【亲测有效】

报错:E: Unable to locate package ros-kinetic-desktop-full.尝试好久一直都无法下载,最后得知真相的我眼泪哗哗的直流。

**My Coding Family** 6万+

【JavaWeb】Servlet学习

Servlet是Java Web开发中的一个重要组件,它是在Web服务器中运行的Java程序,用于处理客户端请求并生成响应。Servlet通常用于构建动态Web应用程序,如电子商务网站、社交媒体平台、在线银行服务等。

qq_52276674的博客 2115

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 958

什么是servlet ,servlet的作用

什么是servlet ,servlet的作用 1、简单来说servlet是运行在服务器上的java程序 servlet由servlet容器管理,servlet容器也叫 servlet引擎,是servlet的运行环境,给发送的请求和响应之上提供网络服务 2、servlet的作用 通俗来讲servlet专门用来接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果 浏...

吴大盖的博客 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Servlet及Tomcat的配置

servlet 动态网页 1、访问web服务器上的某个页面,访问的内容会发生变化 2、动态网页和动态HTML页面的区别 3、动态网页的源文件会随网页的变化而变化,而动态HTML页面的源文件不会发生变化 动态网页程序与引擎 1、首先使用某种编程语言编写出相应的动态网页程序 2、然后由一个专门的web服务程序模块(引擎)来解释执行 3、引擎是动态网页程序和浏览器之间的桥梁 4、浏览器、引擎、API、动...

渣渣瑞 2397

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《Java Servlet编程》笔记(Servlet简介)

         在校图书馆偶看到《JAVA SERVLET编程》(OREILLY)如获至宝,遂借之,转而续借,决心把它好好的看一下。于是便有以下的学习笔记。        这本书共有二十章,分别从现在SERVLET的应用的不同方面对SERVLET的编程进行了讲解,是不一本不错的好书。在下边的笔记里,分别对这二十章进行总结。Java Servlet? VS CGI ===========

null 2095

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java 调用servlet_[Java Servlet]调用 Servlet

要调用 Servlet 或 Web 应用程序,请使用下列任一种方法:由 URL 调用、在 标记中调用、在 标记中调用、在 JSP 文件中调用、在 ASP 文件中调用。1. 由 URL 调用 Servlet这里有两种用 Servlet 的 URL 从浏览器中调用该 Servlet 的方法:(1) 指定 Servlet 名称:当用 WebSphere应用服务器 管理器来将一个 Servlet 实例添...

weixin_30253289的博客 1670

Servlet系列之Servlet3异步

入门案例;

lonelymanontheway的博客 1355

Servlet与Servlet、JSP与Servlet的跳转

Servlet与Servlet之间的跳转 Servlet和Servlet之间的跳转,可以通过请求转发来实现,即RequestDispatcher对象的forward方法;也可以使用重定向方法,即HttpServletResponse对象的sendRedirect方法。 ...

lanadelrey13的博客 3374

SERVLET 高效总结

SERVLET 高效总结 一、Servlet简介 Servlet是JavaWeb或者JavaEE基础、学会了servlet, 你就入了Javaweb开发的门。Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司提供了一套标准的ServletAPI, Servlet开发有二个步骤(1)书写servlet代码 (2) 部署到应用服务器上(Tomcat等)。同样servlet使用Java语言、具有Java语言的优点,如跨平台。 在文章之前推荐一本工具书--《head first

weixin_42177713的博客 746

什么是Servlet?

大家好,我是IT修真院武汉分院第14期的学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,修真院官网JAVA任务2的知识点——Servlet1.什么是SERVLET?Servlet是用Java编写的服务器端程序, 其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一...

u010420197的博客 3335

Servlet技术简介之 Servlet的配置

总的说来Servlet的配置包括Servlet的名字,Servlet的类(如果是JSP,就指定JSP文件),初始化参数,启动装入的优先级,servlet的映射,运行的安全设置。 下面举例介绍其配置:一个完整的servlet配置如下: Study Servlet Config HelloWorld Config HelloWorld jp.co.

1万+

配置Servlet 容器

SpringBoot默认使用Tomcat作为嵌入式的Servlet容器; 1、如何定制和修改Servlet容器的相关配置; 1、修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】); server.port=8081 server.context‐path=/crud serve...

weixin_30508309的博客 652

Servlet开发之实现Servlet接口

安装好Tomcat后 在tomcat>lib下面的 这个servlet-apt.jar jar包需要导入到项目中. 第一步、创建java文件并实现Servlet接口: public class Hello implements Servlet{ // 该函数用于初始化该servlet(类似类的构造函数) // 这个函数只会被调用一次 (当用户第一次访问该serv...

weixin_43770982的博客 3479

Servlet 规范笔记—servlet概念及结构

Servlet, 这个词对java程序员并不陌生,我想几乎每个java程序员在学习J2EE知识时,首先学习的就是servlet,这是一种正确的学习方式,在我看来Servlet是J2EE的基础,要熟练的掌握J2EE,必须深刻的了解Servlet的原理,因为你想想,现在只要是web相关的技术或框架,无论是开源的、非开源的,哪个和Servlet没有关系? Spring MVC、Struts、WebW

XTU_xiaoxin的专栏 1万+

Servlet与SpringBoot的前世今生

Servlet与SpringBoot的前世今生个人分为了4个阶段原始的servlet,servlet中维护service(手动new),service中维护dao(QueryRunner等DbUtils),此时在web.xml中配置好url映射与servlet的关系,在tomcat接收到请求时,根据匹配的servlet,通过反射创建servlet对象,执行doGet或doPost方法。一般需要手动设置一些响应头信息。此时有了spring框架,通过spring的ioc容器,可方便的创建出service层以及d

qq_43750656的博客 2785
上一篇: HTML、CSS、Javascript、jQuery、Xml
下一篇: JavaEE 项目的三层架构
Sancean
博客等级 码龄6年 0粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值