Web基础知识
前后端集成开发
前端程序(html\javascript\jquery\bootstrap)和后台程序(Servlet/springmvc)在一个项目中(服务器中),启动服务就同时前端和后台程序一起运行。前端程序负责进行人机交互、显示数据、部分数据逻辑处理,后端负责数据处理、业务逻辑处理、负责页面跳转。前端和后端的耦合度非常高、传输的内容包括了数据和html页面代码。
以登录页面为例:

前后端分离开发
前端程序 和 后端程序 是两个单独的服务,前端程序负责数据展示、人机交互、跳转,后端负责数据处理、业务逻辑处理。前后端传输是json格式的数据,前端将json格式的数据发给后端,后端将处理结果的数据以json格式发给前端。优点:前后端没有耦合度,通过接口文档进行并行开发 。

MVC分层模式开发

- View负责 显示数据,人机交互
- Controller控制器 :负责接收视图层的请求参数,调用模型层,将结果传给视图层 。前后端集成模式中,控制器要进行跳转,将html和数据发给视图层;前后端分离模式,控制器将结果数据发给视图层
- Model模型层:负责数据的处理,数据处理分为了业务数据处理和数据库数据处理,因此通常将Model层进行了分层,分为:service层(业务处理层) 和 Dao层(数据访问层)
ServletAPI
提供了一套Web开发时使用的接口
- 添加pom依赖
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0</version> </dependency></dependencies>- 搭建一个Servlet程序 : Servlet程序和一个URL形成映射,客户端向URL发送请求即可执行Servlet程序中的代
@WebServlet("/test") public class TestController extends HttpServlet { //当 服务器收到了 /test的请求时,就会自动执行service方法 @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //接收 请求参数 //调用模型层 //结果响应 回浏览器 System.out.println("客户端访问了/test,执行了TestController的service方法"); } }- HttpServletRequest对象
请求对象,请求中的数据都封装到这个对象中 ,当客户端向服务器发送一个请求时,就会创建request和response对象,客户端和服务器的请求响应结束时,request和response就会被销毁
- 获取请求方法
- 获取请求的URL
- 获取请求的上下文路径
- 获取请求头中的属性值
- 获取请求参数值 、获取相同名字的 多个请求参数值
- 设置、获取request的属性值 :request中封装了一个Map,可以将一些数据、对象存储到request的Map中,只要request对象不被销毁,这些数据、对象就存在于request中,或者在传递request时,这些数据、对象也会同时被传递
request.setAttribute(“name”,value) ; request.getAttribute(“name”);
-
HttpServletResponse对象
response对象是响应对象,只要将数据写入到response对象中,数据就会响应回客户端
- 向响应体中写数据
- 设置响应头数据
-
HttpSession对象
代表浏览器和服务器的一个会话对。这个对象也是存储在服务器端,用户第一次访问服务时,创建session,再次访问服务器时,使用的还是这个session,当在一段时间(20分钟)客户端没有和服务器产生任何的请求和响应,session被销毁
通常可以向session中存储用户数据,每个页面都会用到的数据,可以存储到session中
//获取当前的session HttpSession session = request.getSession(); session.setAttribute("test", "test"); session.getAttribute("test");- Cookie对象
将一些数据存储到客户端,典型的应用是记住我(记住用户名及密码)
/* 向客户端响应cookie Cookie cookie = new Cookie("username", "tom"); cookie.setMaxAge(3600); response.addCookie(cookie); Cookie cookie2 = new Cookie("password", "123456"); cookie.setMaxAge(3600); response.addCookie(cookie2);*/ //从请求中获取Cookie数据 Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { System.out.println(cookie.getName()); System.out.println(cookie.getValue()); } }- ServletContext对象
在web服务器启动时,创建ServletContext对象;在Web服务器关闭时,ServletContext对象被销毁。每个Web服务只有一个ServletContext对象,也具有 setAtrribute和getAttribute方法 ,通常将用户共享的数据存储到ServletContext中。
this.getServletContext().setAttribute("name","abcde");Web基础
Related articles
部分信息可能已经过时