servlet |
您所在的位置:网站首页 › java后端接收文件 › servlet |
web开发概述
Web服务器是指驻留于因特网上某种类型计算机的程序 可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览; 它是一个容器,是一个连接用户与程序之间的中间件 Web服务器有很多,流行的WEB服务器有Tomcat 、 WebSphere 、 WebLogic、Jboss等。 web前端:html,css,javascript,vue.js,ElementUI web程序:网页(界面)服务器 前端作用1.让用户输入数据 2.显示数据 web开发环境搭建 步骤1.搭建后端服务器 2.前端向后端发送请求 3.后端处理,向前端进行响应 4.在前端动态显示数据 搭建后端服务器以前的java程序都是在本地运行,在idea执行main()开始运行 从javaEE开始,后端程序都运行在服务器上 现在电脑上安装一个web服务器,把开发的java程序部署在服务器中,从前端通过网络访问 服务器广义上讲:硬件+软件 狭义上讲:软件,是一款程序,里面部署资料(网页,java) 外界可以访问服务器中的文件,访问到之后,就可以向访问者响应文件 安装一款免费的有apache提供的服务器--tomcat服务器下载 解压 配置环境变量(JAVA_HOME,可以自动根据JAVA_HOME自动找到jdk) 进入tommcat安装文件的bin目录,找到startup.bat启动tomcat 创建一个web后端项目,并将项目部署到tomcat中1.创建一个java项目 2.为项目添加web功能 3.在idea中集成tomcat进来,并将web后端的项目部署到tomcat中 创建web后端程序(javaEE)HttpServlet是javaEE中的一个类,servlet处理类必须继承此类,这样就具备了servlet程序功能,启动服务器时就会加载这些类 Servler创建和使用-Servlet配置Servlet是Server Applet的简称,意思为用Java编写的服务器端的程 序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调 用Servlet方法。 Servlet的作用: 1.接收用户发送的请求数据 2.调用其他的java程序来处理请求 3.根据处理结果,将结果响应给客户 搭建servlet程序: 1.搭建一个类集成HttpServlet 2.重写方法 3.在web.xml文件中配置servlet 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被 外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文 件中使用元素和元素完成 元素用于注册Servlet,它包括两个主要的子元素 和,分别用于设置Servlet的注册名称和完整类名 一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定 Servlet的注册名称和Servlet的对外访问路径。 url-pattern配置模式:”/”代表当前web应用的根目录 Web.xml文件为web应用的配置文件,它必须放在web应用目录WEB-INF目录下。 Web.xml文件用于对web应用下的web资源进行配置,服务器在启动时会读取web.xml文件中的内容 Servlet生命周期 实例化无参构造方法,初始化创建的对象 在第一次访问这个servlet时或服务器启动时,被调用,只调用了一次 初始化init方法:在构造方法执行后,紧接着来实行,用来初始化servlet,只调用了一次,如果没有初始化需要,也可以不重写,会调用父类中的init方法 服务service方法:提供服务,每次访问servlet程序都会执行,多次执行,提供一个用来封装请求和一个用来封装响应的对象 消亡destory方法:在服务器关闭时会被调用,可以在服务器关闭时执行一些必要的操作,此方法在我们的类中可以不重写(调用父类中的destory方法) http协议超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本 到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于 定义客户端浏览器和服务器之间交换数据的过程 HTTP是一个基于TCP/IP通信协议来传递数据,客户端与服务器交互必须建立连接 HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统. 浏览器连接服务器时,向服务器发送请求,称为http请求 一个http请求包含三个部分 请求行:请求的地址,http版本,状态码,都是由浏览器自动处理 请求头:包含主机地址,客户端的一些环境信息,以键值对的形式传递 请求体:表单post方式提交的数据区域,以键值形式传递 http请求分为GET请求方式和POST请求方式 GET:超链接请求,地址栏直接访问,主要用于从服务器端获取数据,向服务器端传输数据量小,且在地址栏显示 POST:表单post方式提交数据,主要用于从前端向后端传输大量数据(可上传文件),数据存放在请求体中,相对安全 请求和响应是Web交互最基本的模式,在Servlet中,用HttpServletRequest 来表示请求。HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息 getParameter(name) --- String 通过name获得值 getParameterValues --- String[ ] 通过name获得多值 处理中文乱码 post setCharacterEncoding(编码格式) getMethod()得到客户机请求方式 getScheme()请求协议 getRemoteAddr()返回发出请求的客户机的IP地址 getServerName()服务器名(ip或域名) getServerPort()服务器端口 http响应一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。 响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。 HTTP/1.1 (协议版本) 200(状态吗) OK(状态码描述) 状态码:服务器和浏览器用于确定状态的固定数字号码 200:请求成功 302:请求重定向 400:语义有误,当前请求无法被服务器理解或请求参数有误 404:请求资源不存在,通常是路径写错了或者服务器资源删除了 500:服务内部错误(代码异常) 响应头用于描述服务器的基本信息,以及数据描述 响应体代表服务器向客户端浏览器回送的正文 Web服务器收到客户端的http请求,会针对每一次请求,分别创建 一个代表响应的HttpServletResponse对象。 HttpServletResponse对象代表响应 用getWriter()获得一个PrintWriter字符输出流输出数据 response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。 response.setContetnType("text/html;charset=utf-8");方法 可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码 过滤器Filter也称之为过滤器,在请求进入servlet之前,可以配置那些请求进入到指定的过滤器,完成一些公共的处理,对服务器web资源进行拦截(权限控制,通过拦截资源进行权限控制,是否可以访问) Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实 现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人 员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截 Servlet API 中,与过滤器有关的API共有三个接口,分别是 Filter FilterChain FilterConfi Filter接口是过滤器类必须实现的接口,该接口中有三个方法。 init(FilterConfig filterConfig):该方法是对filter对象进行初始化 的方法,仅在容器初始化filter对象结束后被调用一次。参数 FilterConfig可以获得filter的初始化参数。 doFilter(ServletRequest request, ServletResponse response, FilterChain chain):该方法是filter进行过滤操作的方法,是最重 要的方法。过滤器实现类必须实现该方法。方法体中可以对request 和response进行预处理。其中FilterChain可以将处理后的request 和response对象传递到过滤链上的下一个资源。 destroy():该方法在容器销毁过滤器对象前被调用 该接口类型作为Filter接口中doFilter方法的参数使用。FilterChain接 口中有一个方法 doFilter(ServletRequest request,ServletResponse response), 该方法可以将当前的请求和响应传递到过滤链上的下一个资源,可能 是下一个过滤器,也可能是目标资源 作用过滤器用来实现通用的功能,减少代码冗余,提高可维护性 一个过滤器可以配置给多个资源使用 一个资源也可以配置多个过滤器,按照配置顺序调用 前端发送请求1. 表单向后端发送请求,属于同步请求 同步:发送一个请求,给一个回应,会用回应的内容覆盖掉浏览器中原来的内容 这样会打断前端其他的正常操作,在现在的前端中不太友好 2. 异步请求 异步:不同步 前端正常输入时可以同时与后端进行交互,后端相应的数据不会影响前端正常操作 可以使用一个js中提供的对象,向后端发送请求,服务器响应的内容,会被js对象接收 然后在js中,用接收到内容的,局部的更新网页,这样整个过程页面不会出现刷新,覆盖操作,不会打断页面的正常操作 前后端交互中出现一个跨域问题: 在前端的服务页面中(8848),接受后端服务器(8080)响应的数据 使用ajax技术前后端交互,前端默认会阻止,不让前端的服务接收其他后端的数据 为了安全性 协议,域名,端口有一个不相同就是跨域问题 跨域问题解决:前端解决,后端解决:在响应头中设置说明,告知浏览器,此次的响应是安全的 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |