6:Servlet
6.1: Servlet简介
- Servlet就是sun公司开发动态web的一门技术
- Sun在这些API中提供一个接口叫做: Servlet,如果你想开发一个Servlet程序,
- 只需要完 成两个小步骤:。【重点】
1:编写一个类,实现Servlet接口
2:把开发好的Java类部署到web服务器中。
Servlet是javaWeb程序的三大组件之一:Servlet程序,Filter过滤器,Linstener监听器
把实现了Servlet接口的Java程序叫做,Servlet
6.2:HelloServlet
1:构建一个Maven项目:删除里面的src 目录,学习练习就在这个里面建造Moudel, 这个空的工程就是父工程;
2:关于Maven父工程的理解:
夫工程会有:
<modules>
<module>servlet-01</module>
<module>servlet-02</module>
<module>response</module>
</modules>
这里面就是你编写子工程目录,父工程管理的子工程。
3:子项目会有:继承父工程
<parent>
<artifactId>javaweb-02-study</artifactId>
<groupId>com.kuang</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
父项目中的子项目就可以使用了:
6.3:Servlet原理
Servlet是由Web服务器调用,web服务器在收到请求之后,会:
6.4:实现一个HelloServlet
1:编写一个类,实现Servlet接口;
- 重写方法
public class HelloServlet extends HttpServlet {
@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);
}
}
- 把开发好的Java类部署到web服务器中。
在web.xml中配置Servlet
<!--注册Servlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求方式-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
在注册Servler时,请求路径是hello,输入hello后,就会响应给你自己写的实体类的对象信息!
6.5:Mapping问题
1:一个Servlet可以指定一个映射路径;
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2:一个Servlet可以指定多个映射路径;
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
这里请求hello1和hello2, 都可以被映射到,,从而实现一个Servlet可以指定多个映射路径;
3:一个Servlet可以指定通用映射路径;
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
4:一个Servlet可以自定义请求映射路径;
<!--可以自定义后缀实现请求映射-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.hanshuo</url-pattern>
</servlet-mapping>
5:默认请求路径(直接进入的是Servlet,尽量不要这么写)
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
6:优先级的问题
- 指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求:
- 当我们的配置有明确的表示应该是由谁映射,或者是谁去访问的话,就是谁去访问。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71924.html