6、Servlet
6.1、Servlet简介
- Servlet就是sun公司开发动态web的一门技术
- Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤。
- 编写一个类,实现Servlet接口
- 把开发好的java类部署到web 服务器中
把实现了Servlet接口的Java程序叫做,Servlet
6.2、HelloServlet
Servlet接口sun公司有两个默认的实现类:HttpServlet,
-
构建一个普通的Maven项目,删掉里面的src目录,以后我们学习就在这个项目里建立Moudel;这个空的工程就是Maven主工程;
-
关于Maven父子工程的理解:
父项目中会有
<name>javaweb-01-maven</name> <modules> <module>servlet-01</module> </modules>
子项目中会有
<parent> <artifactId>javaweb-01-maven</artifactId> <groupId>com.kutsu</groupId> <version>1.0-SNAPSHOT</version> </parent>
父项目中的java子项目可以直接使用
son extends father
-
Maven 环境优化
-
修改 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>hellos</servlet-name> <servlet-class>com.ku.servlet.helloworldSerlvet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hellos</servlet-name> <url-pattern>/urls</url-pattern> </servlet-mapping> </web-app>
-
将maven的结构搭建完整,导入 servlet 相关的包
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
-
-
编写一个Servlet程序
-
编写一个普通类
-
实现Servlet接口,这里我们直接继承 HttpServlet
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { //由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!你好</h1>"); out.println("</body>"); out.println("</html>"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
-
-
编写Servlet的映射
为什么需要映射:我们写的是JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务器中注册我们写的Servlet,还需给他一个浏览器访问的路径
<servlet> <servlet-name>hello1</servlet-name> <servlet-class>com.qq.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello1</servlet-name> <url-pattern>/he1</url-pattern> </servlet-mapping>
-
配置tomcat
注意:配置项目发布的路径就可以了
-
启动测试