目录
一、概述
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成 动态Web内容。这个过程为:
1,客户端发送请求至服务器端
2,服务器将请求信息发送至 Servlet
3,Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
4,服务器将响应返回给客户端
Servlet 看起来像是通常的 Java 程序。Servlet 需要导入特定的属于 Java Servlet API 的包。
二、准备工作
-1.在IDEA里创建一个web工程
1,File- New- Project- 选择Java Enterprise并在右侧勾选Web Application(web.xml)- 输入工程名称-Finish
2,需要下载IDEA的童鞋,可以访问网址:http://doc.canglaoshi.org/
去找到[常用下载] ,
下载[IntelliJ IDEA Ultimate 终极版 Windows 官网下载 百度云盘 密码:125m]
-2.整理web工程目录结构
在WEB-INF里,创建两个文件夹classes 和 lib
-3.修改资源输出位置
-4.修改jar包存放位置
-5.配置Tomcat服务器
详情可见Tomcat服务器的内容
三、注解方式开发Servlet程序
-1.创建新的web工程,创建Servlet
选中src-右键-New-Create New Servlet-输入Servlet类的名字和包名-ok
package cn.tedu.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*1.这是新版本的Servlet提供的注解开发方式,更好更简单,否则自己写配置文件
*参数是,规定了浏览器的地址栏到底怎么写才能访问到我这个Servlet类*/
@WebServlet("/ServletDemo1")
/*2.ServletDemo1 是子类,可以使用父类的所有资源(除了私有的,构造方法)
* 3.Servlet规定了自定义Servlet的规则:
* 方式一:extends HttpServlet--推荐使用
* 方式二:extends GenericServlet--了解
* 方式三:implements Servlet--了解
*/
public class ServletDemo1 extends HttpServlet {
/*4.继承了父类,但是想改父类原有的功能时,就重写
* 5.不论调用doPost()还是doGet(),都是由Servlet来调用的
* 6.当用户用post方式提交请求时(form表单提交),Servlet来调用doPost()*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("欢迎来到servlet");
response.getWriter().write("hello servlet!!");
}
/*6.当用户用get方式提交请求时(form表单提交),Servlet来调用doGet()
* (在地址栏拼接数据 + form没改method的值)*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
-2.访问Servlet
运行Tomcat进行测试:
http://localhost:8080/cgb2109javaweb_war_exploded/ServletDemo1
四、配置方式开发Servlet程序
–1,创建Servlet类
package cn.tedu.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//使用配置方式开发Servlet程序
public class ServletDemo2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost()成功的被Servlet调用!");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//默认执行doGet()方法,只有form表单调用doPost(),doPost才会执行
System.out.println("doGet()成功的被Servlet调用!");
}
}
–2,配置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类的访问信息-->
<servlet>
<!--给Servlet设置一个名字(一般和类名相同)
细则:名字可以自定义,但是必须唯一,不能和别的servlet的名字相同-->
<servlet-name>ServletDemo2</servlet-name>
<!--指定Servlet类的全路径(包名.类名)-->
<servlet-class>cn.tedu.servlet.ServletDemo2</servlet-class>
</servlet>
<!--指定浏览器的访问规则-->
<servlet-mapping>
<!--即将根据指定的名字,去找到一个要被访问的Servlet类-->
<servlet-name>ServletDemo2</servlet-name>
<!--指定了浏览器的访问方式 ,
细则:值可以自定义,但是浏览器必须是一样的写法才能访问Servlet
否则404:找不到你要访问的资源-->
<url-pattern>/ServletDemo2</url-pattern>
</servlet-mapping>
</web-app>
–3,测试
http://localhost:8090/cgb2109javaweb03_war_exploded/ServletDemo2
-4.写个HTML网页测试也可以的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>前后端 安排起来</title>
</head>
<body>
<!-- 点击超链接跳转到Servlet -->
<a href="http://localhost:8090/cgb2109javaweb03_war_exploded/ServletDemo3">点我,访问Servlet</a>
</body>
</html>