Servlet的简介
Sevlet是sun公司开发动态web的一门技术
sun公司在这些API中提供一个接口叫Servlet。
实现步骤为:
1.编写一个类,实现Servlet的接口
2.把开发好的java类部署到web服务器
实现了Servlet接口的java程序叫做,Servlet
这里进入实战演示:
1.打开idea,创建一个Maven项目(普通的Maven项目即可,不需要导入模板),删掉里面的src目录。
2.百度maven仓库,导入javax servlet-api和jsp-api依赖。
代码如下:<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency>
3.在javaweb-servlet-01中建立modules:
父项目中会有
<modules> <module>javawebservlet-01</module> </modules>
子项目中会有
<parent> <artifactId>javaweb-01-Servlet</artifactId> <groupId>org.example</groupId> <version>1.0-SNAPSHOT</version> </parent>
父项目中的jar包子项目可以直接使用
这里我出现的问题:没有配置idea全局变量,创建modules是自己在创建页面改动路径,每次finish都会卡住。只要在file-setting里设置自己Maven路径就没有问题。
4.webxml最新改动,去tomcat目录中webapps中复制webxml最新4.0配置文件。
代码如下:
<?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" metadata-complete="true"> </web-app> Maven结构更改:main文件中添加java和resource文件
5.编写一个java类继承Servlet接口
代码如下:
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; //由于get或者post只是请求实现方式不同,可以相互调用 public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter writer = resp.getWriter(); writer.print("Hello,World"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
6.编写Servlet映射
为什么需要映射:我们写的是JAVA程序,但是需要通过浏览器访问,浏览器连接web服务器,我们需要在web服务器中注册我们写的Servlet,还需要给他一个浏览器能访问的路径。
代码示例:
<!--注册Servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>chs.servlet.HelloServlet</servlet-class> </servlet> <!--Servlet的请求路径--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
7.配置Tomcat,启动测试