1、Servlet
1.1、Servlet简介
- Sverlet就是sun公司开发动态web的一门技术。
- sun在这些API中提供一个接口,叫做:Sverlet。如果要开发一个Sverlet程序,只需两个步骤。
第一步:编写一个类,实现Sverlet接口。
第二步:把开发好的java类部署到web服务器中。
把实现了Sverlet接口的java程序叫做,Sverlet。
1.2、HelloSverlet
Servlet接口Sun公司提供了两个默认的实现类:HttpServlet,GenericServlet。
1、构建一个普通的Maven项目,删掉里面的src目录,我们以后的学习就在这个项目里面建立Moudle,这个空的工程就是Maven主工程。
2、关于Maven父工程的理解:
父工程中会有:
<modules>
<module>servlet-01</module>
</modules>
子项目中会有:
<parent>
<artifactId>javaweb-02-servlet</artifactId>
<groupId>com.ljy</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
父项目中的java程序子项目可以直接使用,相当于继承。
3、Maaven环境优化
a、修改web.xml为最新的
b、将maven的结构搭建完毕
4、编写一个servlet程序
编写一个普通类
实现Servlet接口,这里我们直接继承HttpServlet
public class HelloServlet extends HttpServlet {
//由于get或者post只是请求实现的不同方式,可以相互调用,业务逻辑一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进入doGet方法");
PrintWriter writer = resp.getWriter();//响应流
writer.print("hello,Servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
5、编写Servlet映射
为什么需要映射:我们写的是java程序,但是我们要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的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"
metadata-complete="true">
<!--注册Servlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.ljy.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
6、配置Tomcat
注意:配置项目发布的路径就可以了
7、启动测试。
1.3、Servlet原理
Servlet是由web服务器调用,web服务器在收到浏览器请求后,会
1.4、Mapping问题
1、一个Servlet可以指定一个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2、一个Servlet可以指定多个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>