web编程

一、servlet

1.web即网页的意思,B/S架构;分静态资源(css/html/js),动态资源servlet/jsp。jsp就是java+html,jsp本质就是servlet。jsp语法:<%   %>会翻译成service中的内容。<%=   %>输出,<%!   %>声明变量。

2.http协议,请求响应,TCP长连接,三次握手四次挥手。 三次握手分别是:A向B发送SYN包(seq序列号),B接受到后返回A一个ACK+SYN包,此时表明A的发送能力和接收能力,B的接受能力没有问题,但是B自己不知道自己的发送能力是否有问题,因为A没回复我,所以就需要第三次握手,A再向B发送一个ACK确认包即可。  四次挥手:A发送一个FIN包告诉B我的数据发送完毕准备关闭连接了,请问你接收完毕了吗?B先返回一个FIN包表示等一下,还没完;随后资源接收完毕后再次发送一个FIN包表示我已经完了,你可以关闭了。最后A收到B的报文后返回一个FIN包表示我知道了。ACK是个确认信号,seq是序列号,记录数据的位置的,可以知道数据在传输的过程中从哪开始,中途是否有数据包丢失了。

3.服务器:资源在硬盘上你是无法对外提供访问的,所以要加载到服务器中,再由服务器来对外提供访问。电脑+mysql/tomcat/nginx软件就是各种服务器。发布应用到tomcat略,后面通过IDEA来运行tomcat了。

4.get/post请求

5.Servlet入门:是运行在服务端的小程序,是一种动态资源,是tomcat和java程序沟通的桥梁,是一套规范(规定我们的java程序如何运行在tomcat上)。客户端----tomcat-----servlet----java程序;tomcat负责接收客户端的请求,同时响应数据给客户端;而tomcat又通过servlet把请求交给java程序处理,同时把java程序的处理结果返回给tomcat服务器。servlet必须实现servlet接口,它本身也是java代码。

  1. 创建一个web工程,包含src下的动态资源,web下的WEB-INF静态资源。同时别忘了配置web.xml文件,主要是配置访问路径,用于拦截请求;这也可注解配置@WebServlet("/demo02")。
  2. src下写个类FirstServlet,实现servlert接口,在重写的service方法中写代码。
  3. 启动tomcat然后在浏览器访问即可:http://localhost:8080/day22/demo02

6.setvlet进阶:继承HttpServlet来实现接口,dopost/doget方法,request/response。ServletContext对象全应用全局对象。

7.后面我们的spring项目用到@controller看似servlet不见了,但是其实是核心控制器disPatchServlet会扫描带包下带有@controller注解的所有类,得到其下的方法对象和@requestMapping映射地址封装起来,然后解析请求路径通过反射的方式对方法进行调用,然一路执行下去service--dao--dao.xml。

二、request/response

1.Web服务器【tomcat】收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。(request对象和response对象是由Web服务器tomcat 创建的).

2.一堆方法自己去看,就是操作请求消息和响应消息的

3.请求转发@WebServlet("/request07")----->  request.getRequestDispatcher("request08").forward(request,response);

重定向: response.sendRedirect("/day23/response03");请求转发就一次请求,地址栏地址不变,重定向是两次请求,请求地址发生改变。

三、会话技术cookie/session

1.一次会话:打开浏览器到关闭浏览器,期间可发送多个请求;cookie将会话过程中的数据保存到客户端(键值对形式),session保存到服务端。

2.cookie通过new出来,response响应给浏览器,可设置有效时间。第一次请求,通过request.getSession()创建session对象;创建完session对象时,会生成sessionId,保存到cookie中响应给客户端浏览器;第二次请求时,客户端浏览器会携带sessionId到服务器,服务器就根据sessionId找到对应的session对象使用。

四、三层架构

1.所有的代码都在jsp中 会存在大量代码冗余 不利于代码维护修改。jsp已经属于上个时代的技术了 过时了 jsp执行效率非常低 jsp-->翻译成java代码-->编译class文件-->执行。

2. JSP【html】 + Servlet + JavaBean 称为MVC的开发模式。web层写servlert,抓请求;获取请求参数,调用service业务层(new service层类),响应给前端。service层new  dao层,dao层查询数据库获取结果。

五、filter/listener

filter:就是一个类,和Serrvlet差不多,先于它执行罢了。

1.一个实现了Filter接口的java类,重写doFilter()拦截执行过滤操作,filterChain.doFilter(res,resp)放行。要么在web.xml中配置拦截路径,要么注解配置@WebFilter("/*")。过滤器其实也算是运行在服务器的一个程序了,过滤Servlet、jsp、html。

2.默认拦截直接访问和重定向的请求,转发的请求不拦截,但可以设置,但一般不这样做。

3.过滤器链:挨个执行直到web资源

Listenter:也是一个java类,监听其他javaBean的变化

1.监听三个域对象的状态,request/session/servletContext(application).

2.事件源(目标明星),监听器对象(狗仔),事件(婚外恋),注册:将监听器对象注册给事件源,狗仔跟踪明星。三类8个监听器类型

  1. MyListener  implements ServletContextListener{重写方法}
  2. web.xml配置<listenter>  </listenter>或@WebListener

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值