Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。
Hello World 示例代码
下面是 Servlet 输出 Hello World 的示例源代码:
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
-
- public class test extends HttpServlet {
- private String message;
-
- public void init() throws ServletException
- {
- // 执行必需的初始化
- message = "Hello World,java";
- }
-
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException
- {
- // 设置响应内容类型
- response.setContentType("text/html");
-
- // 实际的逻辑是在这里
- PrintWriter out = response.getWriter();
- out.println("
get="
+ message + ""); - }
-
- protected void doPost(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException
- {
- // 设置响应内容类型
- response.setContentType("text/html");
-
- // 实际的逻辑是在这里
- PrintWriter out = response.getWriter();
- out.println("
post="
+ message + ""); -
- }
-
- public void destroy()
- {
- // 什么也不做
- }
- }
Web工程设置
设置
(1)在WEB-INF目录下点击右键,选择New-->Driectory,分别创建 classes 和 lib两个目录
(2)左上角选择 File-->Project Structure...,进入Project Structure,选择Modules-->选择项目"servletTest02"-->切换到Paths选项卡-->勾选"Use module compile output path",将“Output path”和"Test output path"都改为之前创建的classes目录。设置好后 先别关掉该窗口,下面一步还得用到
(3)在同样的界面,选中Dependencies选项卡-->点击右边的 “+”,选择"JARs or directories...",选择创建的lib目录,选择Jar Direcotry。
测试运行JSP
在index.jsp中的body中输入 Hello world字符串:
然后点击屏幕右上角 运行 按钮
在浏览器中输入 http://localhost:8080就能看到运行效果了:
以上就是一个简单的JavaWeb工程,下面介绍在这个工程上面创建一个Servlet
创建Servlet
在src目录下新建test类,让它继承HttpServlet,并且实现doGet方法,在方法内部中写返回数据
代码:
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
-
- public class test extends HttpServlet {
- private String message;
-
- public void init() throws ServletException
- {
- // 执行必需的初始化
- message = "Hello World,java";
- }
-
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException
- {
- // 设置响应内容类型
- response.setContentType("text/html");
-
- // 实际的逻辑是在这里
- PrintWriter out = response.getWriter();
- out.println("
get="
+ message + ""); - }
-
- protected void doPost(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException
- {
- // 设置响应内容类型
- response.setContentType("text/html");
-
- // 实际的逻辑是在这里
- PrintWriter out = response.getWriter();
- out.println("
post="
+ message + ""); -
- }
-
- public void destroy()
- {
- // 什么也不做
- }
- }
配置web.xml
在WEB-INF目录下的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>
- <servlet-name>hello</servlet-name>
- <servlet-class>test</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>hello</servlet-name>
- <url-pattern>/hi</url-pattern>
- </servlet-mapping>
-
- </web-app>
测试验证
在浏览器中输入http://localhost:8080/hi
这里的端口后面的 /hi 就是刚才在web.xml中配置的servlet-mapping
或者点击屏幕右上角 运行 按钮