从零开始学JAVA记录(servlet)——2019年6月5日

今天又是一个学习JAVA的好日子!
Servlet的 实现流程
1)、创建动态 web 项目
2)、新建类
3)、实现 Servlet 规范
实现 Servlet 规范,即继承 HttpServlet 类,并到如响应的包,该类中已经
完成了通信的规则,我们只需要进行业务的实现即可
4)、重写 service 方法
5)、配置 web.xml
6)、发布项目并启动服务
7)、启动项目
8)、访问并查看结果
注意 url 的 格式正确,tomcat 的端口为 8080。
http://localhost:8080/hw/helloweb
执行过程图:
在这里插入图片描述
Tomcat 与 Servlet 是如何工作的,看看下面的时序

1、Web Client 向 Servlet 容器(Tomcat)发出 Http 请求
2、Servlet 容器接收 Web Client 的请求
3、Servlet 容器创建一个 HttpRequest 对象,将 Web Client 请求的信息封
装到这个对象中

www.shsxt.com
4、Servlet 容器创建一个 HttpResponse 对象
5、Servlet 容器调用 HttpServlet 对象的 service 方法,把 HttpRequest 对
象与 HttpResponse 对象作为参数,传给 HttpServlet 对象
6、HttpServlet 调用 HttpRequest 对象的有关方法,获取 Http 请求信息
7、HttpServlet 调用 HttpResponse 对象的有关方法,生成响应数据
8、Servlet 容器把 HttpServlet 的响应结果传给 Web Client

客户端请求的方式
地址栏输入 http:// ip:port/path
超链接(a标签)
< a href=”http://www.shsxt.com”>尚学堂< /a>
Form 表单
当需要向服务器发送请求,并且传输一些用户输入的数据时

ajax
通过 ajax 发起的请求,属于异步请求,能实现局部刷新的效果,是一种比
较常用的请求方式。
通过 jQuery 中的 ajax(),get(),post(),getJSON()等方法都能发送请求

HttpServletRequest 对象
主要作用是用来接收客户端发送过来的请求信息
a、常用方法
getRequestURI():获取客户端发出请求时的完整URL
getMethod():获取客户端请求方式
getParameter(name)(重点):获取指定名称的参数
b、请求乱码问题(GET/POST、Tomcat版本)
方式一:req.setCharacterEncoding(“UTF-8”);
这种方式只针对 POST 有效(必须在接收所有的数据之前设定)
方式二:new String(req.getParameter(name).getBytes(“ISO-8859-1”));
借助了 String 对象的方法,该种方式对任何请求有效,是通用的。
Tomcat8 起,以后的 GET 方式请求是不会出现乱码的。
c、请求转发(重点)
实现方式:request.getRequestDispatcher().forward()
d、request域对象(重点)
通过该对象可以在一个请求中传递数据,作用范围:在一次请求中有效,即
服务器跳转有效。
request.setAttribute():设置域对象内容;request.getAttribute(String name):
获取域对象内容;request.removeAttribute(String name): 删除域对象内容。
request 域对象中的数据在一次请求中有效,则经过请求转发,request 域
中的数据依然 存在,则在请求转发的过程中可以通过 request 来传输/共享数据。

HttpServletResponse 对象
Web 服务器收到客户端的 http 请求,会针对每一次请求,分别创建一个用
于代表请求的 request 对象和代表响应的 response 对象。
request 和 response 对象代表请求和响应:获取客户端数据,需要通过
request 对象;向客户端输出数据,需要通过 response 对象。
HttpServletResponse 的主要功能用于服务器对客户端的请求进行响应,将
Web 服务器处理后的结果返回给客户端。 service()方法中形参接收的是
HttpServletResponse 接口的实例化对象,这个对象中封装了向客户端发送数据、
发送响应头,发送响应状态码的方法。
a、常用方法
setContentType():设置响应的MIME类型
getWriter():获取输出字符流
getOutPutStream():获取输出的字节流
刷新和页面自动跳转
resp.setHeader(“refresh”,“2”);
response.setHeader(“refresh”,“3;URL=ok.html”);
b、响应数据
字节流、字符流
接收到客户端请求后,可以通过 HttpServletResponse 对象直接进行响应,
响应时需要获取输出流,有两种形式 getWriter()获取字符流(只能响应回字符);
getOutputStream()获取字节流(能响应一切数据)。响应回的数据到客户端被浏览
器解析。注意:两者不能同时使用
eg:
PrintWriter out =resp.getWriter();
out.writer("< h1>Hello World< /h1>");

ServletOutputStream out =resp.getOutputStream();
out.write("< h1>Hello World< /h1>".getBytes());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值