Servlet
1、Servlet简介
- sun公司开发动态web的技术
- sun在这些API中提供了一个接口叫 Servlet,如想开发Servlet程序,只需要:
- 编写一个类,实现Servlet接口
- 把开发好的java类部署到web服务器中
2、HelloServlet
- 构建普通Maven项目,删掉里面的src,之后可在此项目下建立module,之后这个工程就是maven的主工程
- Maven父子项目的理解,父项目中的jar包子项目可以直接继承
-
Maven环境优化
- 修改web.xml为最新的:将tomcat的web.xml文件复制过来
- 将maven的结构搭建完整:键java和resource文件夹
-
编写一个Servlet程序
- 编写一个普通类
- 实现Servlet接口,直接继承HttpServlet
package com.lucas.servlet; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class HelloServlet extends HttpServlet { // 由于get或post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //ServletOutputStream outputStream = resp.getOutputStream(); PrintWriter writer = resp.getWriter();//相应流 writer.print("hello"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
-
编写Servlet的映射
写的java程序要通过浏览器访问,而浏览器要连接web服务器,所以需要在web服务中注册写的Servlet,还需要给他一个浏览器能够访问的路径。
<!--注册servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.lucas.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
-
配置Tomcat
-
运行
3、Servlet原理
Servlet是由Web服务器调用,web服务器在收到浏览器请求后,会调用Servlet中Service方法,可以重写Service方法。
4、ServletContent对象
web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,代表当前web应用
4.1、共享数据
在一个Servlet中保存的数据,可以在另外一个servlet中拿到
4.2、读取初始配置
读取xml中中的初始化配置
4.3、请求转发
4.4、读取资源文件
.properties资源文件文件
4.5、HttpServletResponse
web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse对象
- 获取客户端请求过来的参数:HttpServletRequest
- 给客户端响应一些信息:HttpServletResponse
常见应用
- 向浏览器输出消息
- 下载文件
- 重定向
4.6、HttpServletRequest
HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中的所有信息会被封装到HttpServletRequest,通过HttpServletRequest的方法,可以获得客户端的信息
常见应用:
- 获取前端传递的参数
st,通过HttpServletRequest的方法,可以获得客户端的信息