javaFx , java swing 图形化的程序
完成了简单的java web开发
服务端程序和客户端程序,可以不在同一个设备上。
因为,通过 tcp/ip 连接的。 Socket(“ip”, port)
底层通讯原理: tcp/ip + socket编程。
如果按照这样的思路写java web程序。
按照“面向对象”方式,写“页面” 工作量极大!
组件(样式,大小,属性设定,事件绑定,容器的位置)代码量很大。
xml的格式解析比较好些。html + css
java写“纯服务器”好写吗?很难写。因为有很多底层(基础性的与业务关系不大)工作要做。
- 建立网络连接,socket的标志
- 在很多业务中(下载)由于在服务器开销很大,一般需要异步的处理(开新线程)。
- 解析客户端发来的数据(解析需要哪些服务, 查询,修改。。。)
====================================================
java web的项目,不用第三方技术。纯java手写 java.net, java.lang.Thread… - 需要写2个程序(客户端,服务端)架构: c/s client/server
- 客户端,需要写页面(样式)
- 服务端,有很多底层。
====================================================
有没有“简化”的开发方式。
架构 b/s browser/server
browser也是一个软件!可以充当java中的客户端的角色。
因为浏览器,主要作用发起网络中请求(数据)发送到指定网络中的地址(服务器)
服务器,进行相应的处理,把浏览器(看得懂)的数据发回给浏览器。
浏览器进行“呈现”
浏览器看得懂什么? html, css, javascript (前端三剑客)
浏览器为我们做什么事情。协议 http
浏览器说的语言html, css, javascript, jquery, ajax, json, xml
前端开发工程师
java web开发工程师 (全栈)
c/s, lol, qq,
优点:
- 安全!
- 资源存储本地
b/s的区别 (管理系统)browser
- 通用
- 方便,不要额外安装程序
chrome, firefox, opera, safari, edge, IE
====================================================
服务端
java写“纯服务器”好写吗?很难写。
因为有很多底层(基础性的与业务关系不大)工作要做。
java web 把主要的工作放在 “业务实现”。
底层的工作:
- 连接
- 线程
- 解析
- 映射
- 配置
浏览器发起http请求的方式,到服务器。
形成“规范” javaee, java enterprise edition
servlet + jsp
第二阶段
- 前端内容:html, css, javascript, jquery, ajax, json, xml
- 后端内容:servlet + jsp规范在开发java web程序。
那么我们需要自己写一个“web服务器”吗?
可以利用“别人写好的服务器”,遵循servlet + jsp规范,重点放在“业务代码上”。
“别人写好的服务器”帮助我们完成(底层工作)
学习:服务器的工作原理,在基础上如何开发业务(项目)
- 浏览器
- tomcat服务器
- java web项目
tomcat(web服务器, 容器) 程序(java程序)
按照javaee规范(servlet+jsp)编写java web项目,部署到tomcat服务器中,
启动tomcat,tomcat就可以成为,能够管理“java web项目”的服务了。
客户(浏览器)通过“地址”(url)发送数据给tomcat服务器,tomcat服务器解析接收到的内容
分析,是访问哪个java web项目。再调用相应的“java的程序”把结果,返回给浏览器。
实验:
手动地开发java web项目,部署到tomcat
-
新建一个文件夹,项目名作为文件夹的名称 web0228
在文件夹中,创建WEB-INF 注意:命名一致 -
tomcat如何管理java web项目的呢?
配置文件DD deployment descriptor (部署描述文件) xml格式
在WEB-INF文件夹中创建web.xml(DD) -
编写web.xml
xml的头信息,通过拷贝其他项目的web.xml文件。
<servlet>
<servlet-name>helloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloWorld</servlet-name>
<url-pattern>/hw</url-pattern>
</servlet-mapping>
-
编写java程序
HelloWorld.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("hello web!!!");
}
}
-
编译HelloWorld.java源文件
javac -cp D:\tomcat\apache-tomcat-8.5.86\lib\servlet-api.jar HelloWorld.java
注意:传入“servlet-api.jar”到classpath路径中! -
编译后得到的HelloWorld.class文件放在
WEB-INF/classes文件夹中 -
启动tomcat
-
在浏览器访问:
http://localhost:8080/web0228/hw
http: 协议
localhost: 服务器地址
8080 : 端口
/web0228 : 项目名称
/hw : 项目中的资源“配置路径”