编写一个类实现Servlet程序,并实现service方法,处理请求,并响应数据
package com.eastwind;
/*
@author zhangJH
@create 2023-05-25-14:33
*/
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
// 1.可以获取Servlet程序的别名servlet-name的值
System.out.println(servletConfig.getServletName());
// 2.获得初始化参数init-param
System.out.println(servletConfig.getInitParameter("姓名"));
System.out.println(servletConfig.getInitParameter("url"));
// 获得ServletContext对象
System.out.println(servletConfig.getServletContext());
}
@Override
public ServletConfig getServletConfig() {
return null;
}
// service方法是用来处理和响应请求的
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 当网页被访问后输出该语句
System.out.println("Servlet被访问了");
// 由于ServletRequest是一个接口,所以只能由它的子类来获取请求方式
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
// getMethod()方法可以得到请求方式get or post
String method = httpServletRequest.getMethod();
System.out.println(method);
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
去web.xml文件中配置servlet程序的访问地址
<?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>com.eastwind.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping标签是给servlet程序配置访问地址-->
<servlet-mapping>
<!-- servlet-name标签的作用是告诉服务器,我当前的配置的地址给哪个Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!-- url-pattern标签配置在访问地址时,斜杠会被解析为/hello-->
<!-- 因此地址会被解析为http://localhost:8080/工程路径/hello-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<!-- 初始化参数,以键值对的形式-->
<init-param>
<param-name>url</param-name>
<param-value>com.eastwind</param-value>
</init-param>
<init-param>
<param-name>姓名</param-name>
<param-value>张三</param-value>
</init-param>
</web-app>
因为我们设置了url-pattern,所以访问地址如下
注意_Servlet是工程名,是当前工程名,如果是模块的话,是当前模块(Module)名
后面的/hello是访问地址
最开始是init(加载方法)开始执行
输出Servlet程序的别名servlet-name的值
然后输出了两个初始化参数的值init-param
ServletContext对象后面会出一期单独的来讲,目前只需要知道它是管理web.xml上下文的,以及存取数据和获取工程路径的即可
这里只是在init方法中,简单的输出了一下当前对象,获取后可以进行操作
init方法执行完成后,再对service方法进行解析
网页被访问,输出了:Servlet被访问了
这里默认是GET,可以对请求方式进行调整,此时拿到的数据就不一样了
这样,我们一个简单的Servlet程序就完成了
主要分为三个步骤
1.编写一个类实现Servlet程序
2.实现service方法,处理请求,并响应数据
3.配置xml文件