Servlet(1)

1.什么是Servlet?
sun公司制定的一种用来扩展web服务器功能的组件规范。
(1)扩展web服务器功能
web服务器只能够处理静态资源的请求(需要事先将html文件写好),不能够处理动态资源的请求
(需要计算生成html),所以,需要扩展。可以使用Servlet来扩展web服务器功能,当web服务器收到请求之后,
如果需要进行业务处理,则交给Servlet返回客户端动态页面。

注:
常见的web服务器有apache、iis、nginx、Tommcat等。
(2)组件规范
1)什么是组件?
符合规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。
Servlet就是一个组件,需要部署到Servlet容器里面才能运行。
2)什么是容器?
符合规范,提供组件的运行环境的程序。
Tomcat就是一个Servlet容器,为Servlet提供运行环境(提供网络相关的服务)。
3)什么是Http协议?
HyperText Transfer Protocol
是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式.
1.建立连接
2.打包,发送请求
3.打包,发送响应
4.关闭连接
一次请求一次连接 Web服务器可以利用有限的连接为尽可能多的客户端服务
(参照http协议数据格式.jpg)
在这里插入图片描述
如何控制通信数据
1.当web容器收到一个HTTP请求时,通信数据由Web容器负责封装和提供,这些信息被解释为两个对象
2.与请求数据对应的是HttpServletRequest类型的对象
3.与响应数据对应的是HttpServletResponse类型的对象
创建类继承HttpServlet & Web.xml
在这里插入图片描述
Servlet输出中文,如何处理?
(1)为什么会产生乱码?
out.println方法默认会使用"iso-8859-1"来编码(不支持中文)。
(2)如何处理?
response.setCharacterEncoding(“utf-8”);
servlet输出动态网页,当前系统时间
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException {
//向浏览器页面输出一个helloworld
//response.setCharacterEncoding(“GBK”);
response.setContentType(“text/html;charset=gbk”);
PrintWriter out = response.getWriter();
out.println("" );
out.println("" );
out.println(“hello world” );
out.println("" );
out.println("" );
Date date = new Date();
SimpleDateFormat sdF=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
String strdate = sdF.format(date);
out.println("

“+ strdate+”

" );
out.println("" );
out.println("" );
out.close();
}
}
如何读取请求参数值?
(1) 返回值类型 方法名 参数名(表单中的name)
String request.getParameter(String paramName);
案例1:通过表单发送请求给Servlet响应结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页