Servlet 实例
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("<h1>get=" + message + "</h1>");
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>post=" + message + "</h1>");
}
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("<h1>get=" + message + "</h1>");
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>post=" + message + "</h1>");
}
public void destroy()
{
// 什么也不做
}
}
配置web.xml
在WEB-INF目录下的web.xml中配置配置<servlet>和<servlet-mapping>标签,具体如下:
<?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
或者点击屏幕右上角 运行 按钮