javaEE(一)
用SE写的在本地安装运行的,不能通过远程访问
java企业版 把写好的程序部署到服务器上,用户可以通过浏览器远程访问服务器,让服务器去调用部署在服务器中的java程序,然后java程序去处理用户发送的请求(与数据库的连接)
前端的作用:1.用户交互,用户输入数据;2.显示数据
SE是最基础的语法,贯穿于整个java始终。
javaEE:核心就是servlet,即服务器端的程序。接收请求中的数据,处理,响应。
电脑上程序大致分为:web程序:网页(界面)+服务器 即B/S架构==浏览器(Browser)+服务器(Server) 不需要在电脑安装特定客户端,只需要有浏览器就可以。
GUI客户端+服务器 C/S架构==特定客户端(Client)+服务器(Server),必须下载安装客户端。在本地进行一些处理。
程序开发的四个核心步骤
1.前端发请求
2.后端接收
3.处理以及向前端响应
4.前端显示
本阶段要实现的问题,如何搭建后端服务器以及如何开发后端服务器程序,实现前后端的交互,开发第一个web应用程序
1.服务器
广义上来讲,就是计算机的硬件+软件,因为服务器要在电脑上运行,所以一般把运行服务器的电脑就叫服务器。
狭义上来讲,就是计算机的软件,是一款能够放置文件,并且可以对外提供服务的软件,可以把一些文件部署到服务器上,通过地址访问,服务器就会作出响应。
使用的是Apache(非盈利性的组织)的 tomcat,端口默认为8080
也就是说idea是用来开发一个后端程序,部署用服务器tomcat部署该程序
2.创建一个web后端项目,并将其部署到tomcat中
1.创建一个java项目
2.为项目添加web功能
3.将tomcat集成到idea中,(在serve菜单里面配置)
并将web后端项目部署到tomcat中去。(在Deployment部署)
流程:servlet–>javaEE–>java后端程序,
运行在服务器中,服务器启动时就会加载java程序,通过前端发送请求,先到达服务器再由服务器根据地址调用对应的项目组件程序,服务器就是客户和程序之间的桥梁。
3.HttpServlet
HttpServlet是javaEE中的一个类,我们的servlet处理类必须继承此类,这样就具备了Servlet程序功能,启动服务器时,就会加载这些继承了HttpServlet的类。
3.1流程
1.创建一个类继承HttpServlet 2.重写方法 3.进行配置
3.1.1重写四个方法
1.默认无参构造方法 2.重写三个固定方法service(),destroy(),init()。
无参构造方法,第一次访问Servlet或服务器启动时时被调用,只调用了一次。
默认为访问。
配置在启动时创建对象,里面的内容大于等于0即可
1
方法init():初始化,构造方法执行完成后紧接着执行,用来初始化Servlet,只调用一次。可不重写,会调用父类的init方法。
方法service两个参数:一个请求,一个响应。提供服务,每次访问Servlet程序,该方法都会执行,每次访问都会调用。
方法destroy():销毁,服务器关闭时会被调用执行一些必要操作。可不重写,会调用父类destroy方法。
3.2xml文件
xml文件:和html文件类似,都属于标记即标签语言。
xml主要是用来在项目中存储配置信息,有固定的格式。
web.xml文件:web项目中的配置文件。里面配置servlet,过滤器。在服务器启动时,由tomcat加载读取里面的配置数据。放在WEB-INF目录下面。
4.Servlet生命周期
创建(两种创建,访问或启动时)–>初始化(init)–>服务(service)–>消亡(destroy)
5.HTTP协议
超文本传输协议,用来规定浏览器和服务器之间如何传输超文本内容。
基于tcp/ip协议,客户端与服务器之间交互必须是建立连接。
浏览器连接到服务器后,向服务器发送的请求,称为http请求。
一个http请求包含三个部分
请求行:请求的地址,http版本,状态码,都是由浏览器自动处理
请求头:客户端的一些信息,都是由浏览器自动处理
请求体:表单post方式提交的数据区域。
两种请求:post(提交表单),get(点击超链接)。
http请求:get请求和post请求
get: 超链接请求,地址栏直接访问;从服务器端获取数据,向服务器端传输数据量小,因为地址栏有数据长度限制;并会在地址栏显示出来,。 网址后面加?加键值对的形式
如:?name=JIM&&age=20
post: 表单的method改为post;主要从前端向后端传输大量数据(可以上传文件),数据存放在请求体中,相对安全。
响应的格式设置:格式为html文本格式,编码为utf-8
resp.setContentType(“text/html;charset=utf-8”);